我听说 Vim 内置了对用各种编程语言编写的文件的折叠支持。特别是我对 cpp、h、hpp 文件感兴趣。当所有函数定义默认折叠在每个新打开的源文件中时,我想实现 Vim 的这种行为。我不想手动创建每个折叠zF
。
我在文件末尾添加了以下几行~/.vimrc
(继承自spf13-vim 发行版):
set foldenable
autocmd FileType c,cpp,h,hpp setlocal foldmethod=syntax
不幸的是,这并没有导致预期的行为。所有文件看起来都一样,我尝试使用zc
组合隐藏函数会导致错误:
E490: 未找到折叠
如果有人能解释如何在 Vim 7.4 中默认启用折叠,我会很高兴。
UPD:上面的代码运行良好,但最近打开的文件仍然存在问题。假设我们正在处理名为 'sc-client-server' 的项目,我们刚刚将这两行附加到 ~/.vimrc 中,现在准备返回最后编辑的文件:
$ vim ~/.vimrc //Modify config
$ reboot
$ vim ~/progs/sc-client-server/src/st.cpp //No fold found. BUT:
$ cp ~/progs/sc-client-server/src/st.cpp /tmp
$ vim /tmp/st.cpp //Auto fold works fine. OR:
$ cd ~/progs/sc-client-server/src/ && mv src source
$ vim ~/progs/sc-client-server/source/st.cpp //Auto fold works fine.
Vim 内部是否有任何类型的缓存或内存阻止所需的文件表示?
回答
从文件夹中删除所有(或特定于您的)文件~/.vimviews
。