个人爱好vim使用配置

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值