【问题标题】: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】:

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

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

      nnoremap &lt;space&gt; 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 文件中。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-06-13
          • 1970-01-01
          • 1970-01-01
          • 2015-11-04
          • 2010-10-22
          • 1970-01-01
          • 2014-02-25
          • 2012-06-02
          相关资源
          最近更新 更多