当vim遇上C++
来源:互联网 发布:深圳网络维护 编辑:程序博客网 时间:2024/06/10 17:28
俗话说,“工欲善其事,必先利其器“,好的开发工具可以帮我们大大地提高开发效率。用vim在linux下写C++有一段时间了,这里想把自己正在用的一些vim插件和大家分享一下
1. Alternate (http://www.vim.org/scripts/script.php?script_id=31)
在对应的头文件和代码文件中快速地切换
安装:
(1) 下载a.vim到~/.vim/plugin目录,alternate.txt到~/.vim/doc目录
(2) 进入vim,执行:helptags ~/.vim/doc/ (注:Ubuntu8.10自带的vim不支持helptags命令,需要重新sudo apt-get install vim)
常用命令:
(1):A 在.h和.cpp文件间切换
(2):AS 纵向切分.h和.cpp文件
(3):AV 横向切分.h和.cpp文件
(4):AT 在新Tab中打开对应的.h或.cpp文件
2. OmniCppComplete (http://www.vim.org/scripts/script.php?script_id=1520)
自动补全
安装:
(1) 下载最新的omnicppcomplete zip文件到~/.vim目录
(2) 进入vim,执行:helptags ~/.vim/doc/
(3) 然后执行:h omnicppcomplete,参考installation里的步骤继续安装
(a) 在~/.vimrc文件中加入:set nocp和filetype plugin on
(b) 在~/.vimrc文件中加入一行:map <C-F12> :!ctags -R --c++-kinds=+p--fields=+iaS --extra=+q.<CR>,这样只要在vim中按下Ctrl+F12,就能生成当前目录以及子目录下所有C/C++程序的ctags数据库(在当前目录下生成一个名为tags的文件)
(c) omnicppcomplete会自动查找当前目录下的tags文件,如果想查找其他目录下的tags文件(比如/opt/ACE_wrappers/tags),可以在~/.vimrc文件中加入
set tags+=/opt/ACE_wrappers/tags
常用命令:
(1) 输入.或->或<C-X><C-O>时会自动弹出可能的补全选项(可以用上下箭头选择)
(2) 输入<C-N>自动补全
3. ctags
前面omnicppcomplete用到了ctags,其实ctags还有很多功能。最方便的功能是把光标定位在某个变量或函数,按下Ctrl+],这样vim就能直接跳到这个变量或函数定义的源文件中,Ctrl+T是Ctrl+]的反操作,可以退回原来的地方,我们可以连续按N次Ctrl+]查找变量或函数,然后再按N次Ctrl+T返回开始的地方
4. Supretab (http://www.vim.org/scripts/script.php?script_id=1643)
按下tab键完成insert completion (:help ins-completion),与omnicppcomplete配合使用,效果更佳
安装:下载supertab.vim到~/.vim/plugin目录下
5. csupport (http://www.vim.org/scripts/script.php?script_id=213)
这个插件用得还不是很熟,总体感觉很好很强大,很多功能有待好好挖掘
安装:
(1) 下载cvim.zip到~/.vim目录,unzip
(2) 阅读README.csupport,需要进行的修改主要包括
(a) 修改c-support/templates/Templates
(b) 修改c-support/templates目录下的c.*.template文件中的代码风格
(c) 修改~/.vimrc文件,加入filetype plugin on
(d) a)进入vim,执行:helptags ~/.vim/doc/
(3) :h csupport-vim-usage获得帮助
- 当vim遇上C++
- 当vim遇上C++
- 当vim遇上C++
- 当多态遇上数组 ... [C++] (Rewritten)
- 当C/C++后台开发遇上Coroutine
- C学习笔记--当memset遇上strlen
- 【步兵 c++】当模版遇上二进制
- 当多态遇上数组 ... [C++, C++/CLI, C#]
- 不一样的C语言-当sizeof遇上数组名
- 当管理者遇上技术
- 当Hibernate遇上Spring
- 当 Hibernate 遇上 Spring
- 当Hibernate遇上Spring
- 当美女遇上变形金刚
- 当黑客遇上菜鸟
- 当GPL遇上MP
- 当 Hibernate 遇上 Spring
- 当爱情遇上房子
- 通信毕业生求职
- Vegamap移植小结
- WordPress开发者文档
- 注意InnoDB的记录长度,控制Blob字段的数量
- 利用伪造内核文件来绕过IceSword的检测
- 当vim遇上C++
- 需求评审与需求测试
- 开篇之作
- Java各种排序算法实现与探讨
- MMX技术
- log4j简单配置解释
- PDSN
- cout输出问题
- 【原创】基于3G网络的区域型无线多媒体广告发布系统