vim配置

前辈经验:

《构建真正的IDE环境》—http://www.cnblogs.com/CGDeveloper/articles/1941373.html

《手把手教你把 Vim 改装成一个 IDE 编程环境》- 吴垠, 吴的blog:http://blog.csdn.net/wooin

 《vim使用进阶: 使用vim提高你的文本编辑效率》-Easwy Yang,其bolg:http://easwy.com/blog/

Ctrl-h 显示隐藏文件夹


将vim变成一个IDE

1)在vim环境下使用   :help 查看所有帮助文档

                                        :help [对应条目]  查看相应的帮助文档(usr_28.txt  和 usr_29.txt 对编程人员较重要)


2)安装ctags后,sudo  apt-get install ctags

   在shell环境中,

    >ctags *.c    产生当前目录下所有C文件的tags文件,(后缀可以变化.cpp  .cxx等)

   注意:使用ctags -R才能将所有变量,宏等也都写入tags,这样才能支持其他变量,宏的查找。

不过还有一个小瑕疵, 你修改程序后, 比如增加了函数定义, 删除了变量定义, tags文件不能自动rebuild, 你必须手动再运行一下命令:

$ ctags -R
使tags文件更新一下, 不过让人感到欣慰的是vim不用重新启动, 正在编写的程序也不用退出, 马上就可以又正确使用<C-]>和<C-T>了.

    在vim中以后,

    使用:tag startlist    跳转到startlist函数下

    CTRL-] 可以跳转到光标所在函数中,CTRL-t 可以返回;

    :tags   查看刚才跳转的过程

    :tag    直接到最内层的函数中(堆栈顶部)


3)安装taglist

    

下载地址http://www.vim.org/scripts/script.php?script_id=273
版本4.5
安装在 ~/.vim 目录下解压taglist_xx.zip
使用vim打开源文件,

使用 :Tlist就可以打开分栏显示,使用 CTRL-ww(使用两个w)可以进行切换,左边一栏为目录。使用回车查看相应varialbe,function等的内容。

使用:help taglist 查看其他帮助信息(注意不要在后面加上.txt后缀,帮助文件存储在.txt文件中,但是查看只需要文件名即可)


4)文件浏览器和窗口管理器WinManager

  回想一下,我们用vim打开文件夹时,vim会自动列出该文件夹下的内容。这其实也是通过netrw.vim插件来实现,不过它已经作为标准插件被自动安装了。

  这里主要是通过WinManager插件来将TagList窗口和netrw窗口整合起来

 这时使用   :WMToggle 回车    可以打开窗口文件,但是明显命令太过麻烦,使用如下映射:

let g:winManagerWindowLayout='FileExplorer|TagList'
nmap wm :WMToggle<cr>


5)自动补全

这部分参见链接:http://easwy.com/blog/archives/advanced-vim-skills-omin-complete/  ,这个介绍的非常详细

5.1 omni智能补全

你还需要在~/.vimrc文件中增加下面两句:

filetype plugin indent on
打开文件类型检测, 加了这句才可以用智能补全
set completeopt=longest,menu
关掉智能补全时的预览窗口


这时就可以完成C程序的自动补全了,此使用Ctrl-X Ctrl-O在插入模式下进行自动补全。此时有一些快捷键可以用:

Ctrl+P向前切换成员
Ctrl+N向后切换成员
Ctrl+E表示退出下拉窗口, 并退回到原来录入的文字
Ctrl+Y表示退出下拉窗口, 并接受当前选项


注意:要支持C++的全能补全,需要到vim主页下载OmniCppComplete插件,链接如下:

    http://www.vim.org/scripts/script.php?script_id=1520

确保你已关闭了vi兼容模式,并允许进行文件类型检测:

set nocp
filetype plugin on 

接下来,使用下面的命令,为C++文件生成标签文件,假定你的文件在src目录树下:

ctags -R --c++-kinds=+p --fields=+iaS --extra=+q src 

在对C++文件进行补全时,插件需要tag文件中包含C++的额外信息,因此上面的ctags命令不同于以前我们所使用的,它专门为C++语言生成一些额外的信息,上述选项的含义如下:

--c++-kinds=+p  : 为C++文件增加函数原型的标签
--fields=+iaS   : 在标签文件中加入继承信息(i)、类成员的访问控制信息(a)、以及函数的指纹(S)
--extra=+q      : 为标签增加类修饰符。注意,如果没有此选项,将不能对类成员补全 
在输入 . 或 ->  后 ,OmniCppComplete会自动补全,一般使用缺省设置即可。

5.2 其他补全方式

先给链接:http://easwy.com/blog/archives/advanced-vim-skills-auto-complete/

除智能补全外,最常用的补全方式应该是CTRL-NCTRL-P补全了。它们会在当前缓冲区、其它缓冲区,以及当前文件所包含的头文件中查找以光标前关键字开始的单词。智能补全不能对局部变量进行补全,而CTRL-NCTRL-P补全则可以很好的胜任

vim中其它的补全方式包括:

整行补全                        CTRL-X CTRL-L
根据当前文件里关键字补全        CTRL-X CTRL-N
根据字典补全                    CTRL-X CTRL-K
根据同义词字典补全              CTRL-X CTRL-T
根据头文件内关键字补全          CTRL-X CTRL-I
根据标签补全                    CTRL-X CTRL-]
补全文件名                      CTRL-X CTRL-F
补全宏定义                      CTRL-X CTRL-D
补全vim命令                     CTRL-X CTRL-V
用户自定义补全方式              CTRL-X CTRL-U
拼写建议                        CTRL-X CTRL-S 

你可以在vimrc中设置这两个变量,例如:

let g:SuperTabRetainCompletionType = 2
let g:SuperTabDefaultCompletionType = "<C-X><C-O>" 

现在你可以使用TAB来进行补全了,就像在shell中那样,方便了很多!



6.源文件和头文件间的相互切换——插件: A

下载地址http://www.vim.org/scripts/script.php?script_id=31
:A在新Buffer中切换到c/h文件
:AS横向分割窗口并打开c/h文件
:AV纵向分割窗口并打开c/h文件
:AT新建一个标签页并打开c/h文件
在~/.vimrc中增加了一句:
nnoremap <silent> <F12> :A<CR>

这样就可以直接使用F12从一个切换到另一个


7.快速浏览和操作Buffer——插件:MiniBufExplorer

下载地址http://www.vim.org/scripts/script.php?script_id=159
<Tab>向前循环切换到每个buffer名上
<S-Tab>向后循环切换到每个buffer名上
<Enter>在打开光标所在的buffer
d删除光标所在的buffer


8.QuickFix窗口

   这是现在vim默认自带的插件,在外部写好make文件,然后在vim环境中,在命令行下运行make,就可以实现文件的编译。

  :cw   调出错误窗口

  :cn        // 切换到下一个结果
  :cp        // 切换到上一个结果


9.还未安装的插件

  以下几个也不错,但是现在还不想装。。

   Cscope,一个比ctags更加强大的插件;

  VisualMark,关于书签的都没有做

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值