您的位置:首页 > 其它

个人爱好vim使用配置

2010-11-16 10:09 375 查看
1年不用,都记得差不多了。再拿起来,呵呵......

ubuntu 10.04系统

安装插件(用vim-addons命令安装):

一、bufexplorer:快捷键为/be(只有一个buffer的时候不会出现)

二、taglist:命令是,Tlist开启,TlistClose关闭

三、alternate:也是A.vim,头文件和实现文件切换.快捷健A

四、cscope使用:

添加cscope_maps.vim插件

先在~/vimrc中增加一句:

:set cscopequickfix=s-,c-,d-,i-,t-,e-

这个是设定是否使用 quickfix 窗口来显示 cscope 结果。

$ cd /home/wooin/vim71/

$ cscope -Rbq

# 此后会生成三个文件

$ ll cscope.*

-rw-rw-r-- 1 wooin wooin 1.1M 2007-09-30 10:56 cscope.in.out

-rw-rw-r-- 1 wooin wooin 6.7M 2007-09-30 10:56 cscope.out

-rw-rw-r-- 1 wooin wooin 5.1M 2007-09-30 10:56 cscope.po.out

# 打开文件, 开始Coding

$ cd src

$ vi main.c

进入vim后第一件事是要把刚才生成的cscope文件导入到vim中来, 用下面的命令:

:cs add /home/wooin/vim71/cscope.out /home/wooin/vim71

上面这条命令很重要, 必须写全, 不能只写前半句:

:cs add /home/wooin/vim71/cscope.out

因为源码是多级目录的, 如果这样写, cscope是无法在子目录中的源码中工作的, 当然, 如果你的源码都

在同一级目录中就无所谓了. 如果你要经常用cscope的话, 可以把上面那句加到~/.vimrc中去

cscope的主要功能是通过同的子命令"find"来实现的

"cscope find"的用法:

cs find c|d|e|f|g|i|s|t name

0 或 s 查找本 C 符号(可以跳过注释)

1 或 g 查找本定义

2 或 d 查找本函数调用的函数

3 或 c 查找调用本函数的函数

4 或 t 查找本字符串

6 或 e 查找本 egrep 模式

7 或 f 查找本文件

8 或 i 查找包含本文件的文件

如果每次查找都要输入一长串命令的话还真是件讨人厌的事情, Cscope的帮助手册中推荐了一些快捷键的用法, 下面是其中一组, 也是我用的, 将下面的内容添加到~/.vimrc中, 并重启vim:

nmap <C-/>s :cs find s <C-R>=expand("<cword>")<CR><CR>

nmap <C-/>g :cs find g <C-R>=expand("<cword>")<CR><CR>

nmap <C-/>c :cs find c <C-R>=expand("<cword>")<CR><CR>

nmap <C-/>t :cs find t <C-R>=expand("<cword>")<CR><CR>

nmap <C-/>e :cs find e <C-R>=expand("<cword>")<CR><CR>

nmap <C-/>f :cs find f <C-R>=expand("<cfile>")<CR><CR>

nmap <C-/>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>

nmap <C-/>d :cs find d <C-R>=expand("<cword>")<CR><

set cst "和tags一起用

set cscopequickfix=s-,c-,d-,i-,t-,e-

五、ctags使用:

$ cd /home/wooin/vim71

$ ctags -R

此时在/home/wooin/vim71目录下会生成一个 tags 文件, 现在用vim打开 /home/wooin/vim71/src/main.c

$ vim /home/wooin/vim71/src/main.c

再在vim中运行命令:

:set tags=/home/wooin/vim71/tags

该命令将tags文件加入到vim中来, 你也可以将这句话放到~/.vimrc中去, 如果你经常在这个工程编程的话.

按下<C-]>, 光标会自动跳到光标所在函数的定义处,如果此时你还想再跳回刚才的位置, 你还可以按<C-T>, 这样又跳回了。

* :tag 关键字(跳转到与“关键字”匹配的标记处)

* :tselect [关键字](显示与“关键字”匹配的标记列表,输入数字跳转到指定的标记)

* :tjump [关键字](类似于“:tselect”,但当匹配项只有一个时直接跳转至标记处而不再显示列表)

* :tn(跳转到下一个匹配的标记处)

* :tp(跳转到上一个匹配的标记处)

* Ctrl-](跳转到与光标下的关键字匹配的标记处;除“关键字”直接从光标位置自动获得外,功能与“:tags”相同)

* g](与“Ctrl-]”功能类似,但使用的命令是“:tselect”)

* g Ctrl-](与“Ctrl-]”功能类似,但使用的命令是“:tjump”)

* Ctrl-T(跳转回上次使用以上命令跳转前的位置)

六、omnicppcomplete使用

七、lookupfile使用(需要genutils)

项目文件查找:按”<F5>“或输入”:LookupFile“

缓冲区查找:”:LUBufs“命令开始在缓冲区中查找

浏览目录:使用”:LUWalk“打开lookupfile窗口后

八、配置文件

"""""""""""""""""""""""

" xunchen's vimrc

"""""""""""""""""""""""

set nocompatible "不要vim模仿vi模式,否则会有很多不兼容的问题

set noedcompatible "去掉输入错误提示声音

syntax on "语法高亮显示

filetype on "打开文件类型自动检测

filetype plugin on "打开插件类型自动检测

set number "显示行号

set nobackup "不添加备份文件

set autoread "当文件外部修改时,自动重新读取

set tabstop=4 "Tab键的宽度

"统一缩进为4

set softtabstop=4

set shiftwidth=4

set autoindent "自动缩进

set cindent "支持c/c++缩进

" for cscope

set cst "和tags一起用

set cscopequickfix=s-,c-,d-,i-,t-,e-

" for taglist plugin

let Tlist_Ctags_Cmd = 'ctags'

let Tlist_Show_One_File = 1 "不同时显示多个文件的tag,只显示当前文件的

let Tlist_Exit_OnlyWindow = 1 "如果taglist窗口是最后一个窗口,则退出vim

let Tlist_Use_Right_Window = 1 "在右侧窗口中显示taglist窗口

" for lookupfile

if filereadable("./filenametags") "设置tag文件的名字

let LookupFile_TagExpr = '"./filenametags"'

endif

let LookupFile_MinPatLength = 2 "最少输入2个字符才开始查找

let LookupFile_PreserveLastPattern = 0 "不保存上次查找的字符串

let LookupFile_PreservePatternHistory = 1 "保存查找历史

let LookupFile_AlwaysAcceptFirst = 1 "回车打开第一个匹配项目

let LookupFile_AllowNewFiles = 0 "不允许创建不存在的文件

" 生成C/C++ tags cscope

map <F12> :call Build_TagFile()<CR>

function Build_TagFile()

if has("cscope")

silent! execute "cs kill -1"

endif

if(executable('ctags'))

silent! execute "!ctags -R --c-types=+p --fields=+S *"

silent! execute "!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q ."

execute "set tags+=tags"

endif

if(executable('cscope') && has("cscope"))

silent! execute "!find . -name '*.h' -o -name '*.c' -o -name '*.cpp' > cscope.files"

silent! execute "!cscope -Rbq"

execute "normal :"

if filereadable("cscope.out")

execute "cs add cscope.out"

endif

endif

silent! execute "!~/.vim/loookupfile.sh"

endfunction
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: