一、关于如何搭建成IDE可以参考下面两篇文章
2.VI/VIM使用进阶:目录
add 把vim打造成IDE(整理,修订)
从Source Insight到Vim
二、新建一个工程需要执行的操作
1.cscope -Rbq----------生成cscope.in.out,cscope.out和cscope.po.out
ctags -R---------------- 生成tags
执行下面的脚本
#!/bin/sh
# generate tag file for lookupfile plugin
echo -e "!_TAG_FILE_SORTED\t2\t/2=foldcase/" > filenametags
find . -not -regex '.*\.\(png\|gif\)' -type f -printf "%f\t%p\t1\n" | \
sort -f >> filenametags
-------------------------------生成filenametags
2.在工程根目录下输入vim
在末行模式输入
(如果上次退出vim时保存了会话信息
source ./Session.vim
rviminfo ./my.viminfo
)
添加数据库连接
cs add ./cscope.out ./
供LookupFile插件按文件名索引文件
:let g:LookupFile_TagExpr = '"./filenametags"' (可以通过:echo g:LookupFile_TagExpr查看变量是否定义成功)
工作完成后,保存会话信息
mksession-----生成Session.vim
wviminfo my.viminfo------生成my.vimfinfo
退出VIM
:qa
三、其他一些小技巧
1. *:读取光标处的字符串,并且移动光标到它再次出现的地方。(相当于SI中的SHIFT+F3)
#:和上面的类似,但是是往反方向寻找。(相当于SI中的SHIFT+F4)
2.自动补全:定位到要补全的词尾-->进入insert mode -->按下ctrl+n,会列出候选词,在候选词中通过ctrl+n(向下移动)或ctrl+p(向上移动)选择你要匹配的词。
按 <Esc> 拒绝候选单词,退出补全模式并留在 insert 模式下,再按一次 <Esc> 才会退出 insert 模式,回到 normal 模式
3.c{motion}:删除 motion 命令跨过的字符,并且进入插入模式。比
如:c$,这将会删除从光标位置到行尾的字符并且进入插入模式。
ct!,这会删除从光标位置到下一个叹号(但不包括),然后进入插入模式。
d3w:删除光标后3个单词,被删除的字符被存在剪切板里面,并且可以再粘贴出来(进入命令模式后按下p)。
d{motion}:和上面差不多,但是不进入插入模式。
yw:复制当前词,进行此操作后,直接按键下p(粘贴)和直接按下u(undo)作用相同。
%:跳转到对应的(/)或#if/#endif
`a:到书签 a 处。注意这个不是单引号,它一般位于大部分键盘的 1 的左边。
`.:到你上次编辑文件的地方。这个命令很有用,而且你不用自己去标记它。
gd :跳到局部变量的定义处(如果装了ctags,就不许要用这个了直接ctrl+]可以跳转到任何tag的定义处)
'' :跳转到光标上次停靠的地方, 是两个', 而不是一个"
ctrl-]:跳转到symble的定义处,当有多个定义时,直接跳转到第一个匹配项,切换到后续匹配项需要通过显式地输入:tnext来完成,想要改变这种行为,有多个定义时列出,用户选择跳转到哪个定义,进行如下设定set cscopetag或set cst
末行模式命令:
: set ic 搜索时不区分大小写
: set noic
:f 显示编辑的文件的名字
: e file_name (edit)编辑不同档案