【问题标题】:how to activate vim folding markers?如何激活vim折叠标记?
【发布时间】:2014-01-12 12:39:11
【问题描述】:
我继承了一些带有基于 vim 的折叠标记的 c++ 代码,如下所示:
// CONSTRUCTORS/DESTRUCTORS /*{{{*/
Foo::Foo()
{
}
Foo::~Foo()
{
}
/*}}}*/
我需要在我的 .vimrc 中添加什么来启用 zm 和空格键之类的折叠切换?
在我当前的设置下,当我在里面按空格键或 zm 时,vim 什么都不做。
【问题讨论】:
标签:
vim
configuration
folding
【解决方案1】:
好的,在谷歌搜索了一下之后,我发现这似乎有效:
set foldmethod=marker
nnoremap <space> za
【解决方案2】:
折叠的默认键绑定是za 或zm(虽然zm 我认为只关闭折叠,而za 切换它们),所以你应该将以下行添加到你的.vimrc:
set foldmethod=marker 启用由标记触发的折叠(代码中的 {{{ 事物)
nnoremap <space> za 启用space 在正常模式下触发折叠。
但是!如果您不确定是否要在其他文件中启用折叠,可以使用autocmds,如下所示:
autocmd FileType vim,c++,txt setlocal foldmethod=marker这将确保折叠仅适用于 vim、c++ 和文本文件。
顺便说一句,你发布的只是 vim 大师 Steve Losh 在this article 中提到的一种折叠。阅读它以了解有关折叠的更多信息。太酷了。
【解决方案3】:
如果您只有几个文件,或者您只想控制每个文件的选项,您可能需要使用modeline。当我下载一个 z-shell 脚本时,我对折叠的介绍出现了,当我打开它时,惊讶地发现所有东西都折叠了。在文件末尾找到这样的东西:
# vim:ts=4:sw=4:ai:foldmethod=marker:foldlevel=0:
更改注释以匹配您的代码类型,并确保单词 vim 之前有一个空格。一如既往的好起点::help modeline 和 :help folding。如果在构建时未设置 modeline,您可能需要将 set modeline 添加到您的 .vimrc 文件中。