如何激活vim折叠标记?

时间:2013-12-24 09:12:06

标签: vim configuration folding

我继承了一些基于vim的折叠标记的c ++代码,如下所示:

// CONSTRUCTORS/DESTRUCTORS /*{{{*/
Foo::Foo()
{
}
Foo::~Foo()
{
}
/*}}}*/

我需要在.vimrc中添加什么才能启用zm和space-bar等折叠切换?

使用我当前的设置,当我点击空格键或zm时,vim什么都不做。

3 个答案:

答案 0 :(得分:6)

折叠的默认键绑定是zazm(虽然zm我认为只关闭折叠,而za切换它们,所以你应该添加以下行你的.vimrc:

set foldmethod=marker启用由标记触发的折叠(代码中的{{{内容)

nnoremap <space> za使space能够在正常模式下触发折叠。

但是!如果您不确定是否要在其他文件中启用折叠,可以使用autocmd,如下所示:

autocmd FileType vim,c++,txt setlocal foldmethod=marker这将确保折叠仅适用于vim,c ++和文本文件。

顺便说一下,你发布的内容只是vim guru Steve Losh在this article中提到的一种折叠。阅读它以了解有关折叠的更多信息。这太酷了。

答案 1 :(得分:0)

好吧,在谷歌搜索了一下后,我发现这似乎有效:

set foldmethod=marker                                                                 |~
nnoremap <space> za

答案 2 :(得分:0)

如果您只有几个文件,或者您只想基于每个文件控制选项,则可能需要使用modeline。当我下载一个z-shell脚本时,我的折叠介绍来了,当我打开它时,惊讶地发现所有东西都折叠了。在文件末尾找到类似的内容:

# vim:ts=4:sw=4:ai:foldmethod=marker:foldlevel=0:

更改评论以匹配您的代码类型,并确保在单词vim之前有空格。一如既往的好地方::help modeline:help folding。如果在构建时未设置set modeline,则可能必须将modeline添加到.vimrc文件中。