在使用 vim 和 python-mode / rope 和 SimpylFold 进行重构后,如何防止自动重新折叠 python 代码
How do I prevent automatic re-folding of python code after refactoring using vim with python-mode / rope and SimpylFold
我正在使用 vim 创建和编辑 python 代码。我安装了 python-mode,它提供(除其他外)通过绳索进行重构。我还安装了 SimpylFold 来提供代码折叠。
除了一件烦人的小事外,一切都很好...
当我进行重构操作时,所有折叠立即自动关闭。这非常烦人,因为我将折叠设置为适合我当时正在处理的内容的各种打开/关闭状态,而这会撤消它,所以我必须重新打开我正在处理的折叠。
有谁知道/有谁能想出办法防止这种情况发生,以便我进行分解操作并且折叠保持原样吗?
干杯:)
是的!我做到了!
我的解决方案是:
安装 FastFold (https://github.com/Konfekt/FastFold)[1]
安装vim-停留(https://github.com/kopischke/vim-stay)[2]。我不确定这个插件是否是这个解决方案 100% 必需的,但它似乎非常有用(例如保存、关闭和重新打开后仍然存在折叠)。
使用 vim-stay 的推荐设置,即将 set viewoptions=cursor,folds,slash,unix
添加到 .vimrc
。
通过将可选的快速折叠设置 let g:fastfold_savehook = 0
添加到 .vimrc
来设置它。这似乎是最终让它发挥作用的关键步骤。
快乐的日子!享受吧!
更新: 如果您更改自打开文件后打开/关闭的折叠,则必须保存 视图 (不是文件)使用 :mkview
使这些折叠在重构 [3].
后保持不变
脚注:
[1] 我使用 Vundle (https://github.com/VundleVim/Vundle.vim) 所以对我来说这只是将 Bundle 'Konfekt/FastFold'
添加到我的 .vimrc
、保存、关闭、重新打开和然后是 运行 :BundleList
然后是 :BundleInstall
.
[2] 安装与上面相同,但将 kopischke/vim-stay
替换为 Konfekt/FastFold
。
[3] 我发现映射到键时更容易,在我的例子中 <F9>
我正在使用 vim 创建和编辑 python 代码。我安装了 python-mode,它提供(除其他外)通过绳索进行重构。我还安装了 SimpylFold 来提供代码折叠。
除了一件烦人的小事外,一切都很好...
当我进行重构操作时,所有折叠立即自动关闭。这非常烦人,因为我将折叠设置为适合我当时正在处理的内容的各种打开/关闭状态,而这会撤消它,所以我必须重新打开我正在处理的折叠。
有谁知道/有谁能想出办法防止这种情况发生,以便我进行分解操作并且折叠保持原样吗?
干杯:)
是的!我做到了!
我的解决方案是:
安装 FastFold (https://github.com/Konfekt/FastFold)[1]
安装vim-停留(https://github.com/kopischke/vim-stay)[2]。我不确定这个插件是否是这个解决方案 100% 必需的,但它似乎非常有用(例如保存、关闭和重新打开后仍然存在折叠)。
使用 vim-stay 的推荐设置,即将
set viewoptions=cursor,folds,slash,unix
添加到.vimrc
。通过将可选的快速折叠设置
let g:fastfold_savehook = 0
添加到.vimrc
来设置它。这似乎是最终让它发挥作用的关键步骤。
快乐的日子!享受吧!
更新: 如果您更改自打开文件后打开/关闭的折叠,则必须保存 视图 (不是文件)使用 :mkview
使这些折叠在重构 [3].
脚注:
[1] 我使用 Vundle (https://github.com/VundleVim/Vundle.vim) 所以对我来说这只是将 Bundle 'Konfekt/FastFold'
添加到我的 .vimrc
、保存、关闭、重新打开和然后是 运行 :BundleList
然后是 :BundleInstall
.
[2] 安装与上面相同,但将 kopischke/vim-stay
替换为 Konfekt/FastFold
。
[3] 我发现映射到键时更容易,在我的例子中 <F9>