为C+配置Vim+; 我想把VIM作为我的C++编辑器。我几乎没有使用它的经验 并且需要帮助配置VIM来与C++一起工作。 我需要这样的功能 代码完成(对于stl和my类) 在.cc和.h文件之间切换 也许你还有更多的技巧,C++和VIM大师,有。 你可以提供一些配置(解释),或者教程,我可以使用插件,

为C+配置Vim+; 我想把VIM作为我的C++编辑器。我几乎没有使用它的经验 并且需要帮助配置VIM来与C++一起工作。 我需要这样的功能 代码完成(对于stl和my类) 在.cc和.h文件之间切换 也许你还有更多的技巧,C++和VIM大师,有。 你可以提供一些配置(解释),或者教程,我可以使用插件,,c++,vim,configuration,C++,Vim,Configuration,我用 vim < /代码>作为我的C++编辑器,但是我没有使用很多“异国情调”的东西。 关于完成,我使用的是非上下文的^P和^N >p>我有一组用户定义的缩写,用于我的C++使用,例如: abbreviate bptr boost::shared_ptr abbreviate cstr const std::string & function! IncludeGuard() let basename = expand("%:t:r") let includeGuard =

我用<代码> vim < /代码>作为我的C++编辑器,但是我没有使用很多“异国情调”的东西。
  • 关于完成,我使用的是非上下文的
    ^P
    ^N
  • >p>我有一组用户定义的缩写,用于我的C++使用,例如:

    abbreviate bptr boost::shared_ptr
    abbreviate cstr const std::string &
    
    function! IncludeGuard()
      let basename = expand("%:t:r")
      let includeGuard = '__' . basename . '_h__'
      call append(0, "#ifndef " . includeGuard)
      call append(1, "#define " . includeGuard)
      call append(line("$"), "#endif /* !" . includeGuard . " */")
    endfunction
    
  • 我有几个用于“代码段”的函数,例如:

    abbreviate bptr boost::shared_ptr
    abbreviate cstr const std::string &
    
    function! IncludeGuard()
      let basename = expand("%:t:r")
      let includeGuard = '__' . basename . '_h__'
      call append(0, "#ifndef " . includeGuard)
      call append(1, "#define " . includeGuard)
      call append(line("$"), "#endif /* !" . includeGuard . " */")
    endfunction
    
  • 我唯一真正离不开的插件是(需要ruby支持)

  • 为了便于
    .cc
    .h
    切换,您可以尝试
NERDTree

丰富的CTAG(vim已经在本地支持热键)

标签列表:

snipmate:

我不只是做一般的工作,但谷歌有很多资源可以利用。

  • 代码完成:或
  • 实时语法检查:
  • 在源文件和头文件之间切换:
  • 片段:或
  • 搜索变量、函数、类等的引用:
  • 转到定义:或上述部分
  • 重构工具:
  • 有用的文本对象:和
  • 不是C++特定的,但我也推荐或用于文件导航。使用这两个选项中的任何一个,您甚至不需要选项卡(对于10个以上的文件不可缩放)来管理您的项目
  • 类导航:或

编辑:自2013年7月起更新

+1,纯粹是因为想将vim用作IDE的自虐:)vim有它的用途(以我的经验,尤其是在远程编辑文件时),但是任何想用它来编辑代码的人在我看来都是胆大包天的。@sgolodetz:那么有相当多的人是胆大包天的。@Jefromi:是的,我确实意识到:)但对我来说,这似乎总是像受虐狂……有点令人敬佩。回想起来,我想,这相当于“我对维姆有点怀疑“在一篇可能经常被许多vim爱好者浏览的帖子上,这可能有点挑衅性——这是一篇开玩笑的评论,而不是一场争论的开始。我确实给出了一篇最初仅限于C开发的文章。但是我说的每一件事情都是C++的,我已经把链接固定到了C+C++ FTTPULIN套件。感谢您的“广告”:)我也可能推荐使用FSwitch插件而不是插件。Luc的lhCpp与vundle不兼容(我认为是因为svn repo),并且我个人不喜欢安装过程-建议签出+1一个非常完整(最新)的答案,很高兴看到一些比较隐秘的成员发布了这些很棒的答案。你的答案有多彻底,是非常有帮助的,但同时也不会让人不知所措,甚至对一个新的vim用户来说也是如此?它对C++代码导航很有帮助,具有重命名功能。