保存一份在工作常用配置.vimrc
安装了 ctags cscope 两个插件
代码所在路径下,执行以下命令:
ctags -R
find . -name "*.[ch]" > cscope.files
cscope -bkq -i cscope.files
cscope 参数,根据需要添加
- -R: 在生成索引文件时,搜索子目录树中的代码
- -b: 只生成索引文件,不进入cscope的界面
- -q: 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
- -k: 在生成索引文件时,不搜索/usr/include目录
- -i: 如果保存文件列表的文件名不是cscope.files时,需要加此选项告诉cscope到哪儿去找源文件列表。可以使用”-“,表示由标准输入获得文件列表。
- -Idir: 在-I选项指出的目录中查找头文件
- -u: 扫描所有文件,重新生成交叉索引文件
- -C: 在搜索时忽略大小写
- -Ppath: 在以相对路径表示的文件前加上的path,这样,你不用切换到你数据库文件所在的目录也可以使用它了。
.vimrc
syn on
set helplang=cn "ʹ°
set backspace=2
set tabstop=4
set softtabstop=4
set shiftwidth=4
set autoindent "¶¯½
set cindent
set number
set showmatch
set mouse=a
set ruler "½¾¹λ
set showcmd "ʾδµ
set incsearch "µַַʱ¾Ϳªʼ¾µIJ¿·
set nowrap " һ¾»£¬±ªµ½µڶþȥ
set sidescroll=1 "Ļ·Ų»ʱ£¬°´һ´»¶¯һ¸
set whichwrap=b,s,<,>,[,] "¿ƶ¯
set cscopequickfix=s-,c-,d-,i-,t-,e-
set hlsearch
set paste
"set list "±¿ɼ
"set listchars=tab:>.,trail:-
filetype plugin indent on "¶¯ʶ±ļþM£¬¼þ↓ugin½ű¾£¬ʹ½轾
"slet g:netrw_winsize = 20et guioptions+=b " µĹ毿ª
"set backup "¸ļþʱ±¸·
"set path=.,/usr/include,/$HOME/.vim,
"ѡ´
¶¯vimʱ²»Ҫ¶¯µþ´
"""""""""""""
" map
"""""""""""""
"imap <C-P> <C-X><C-P>
"imap <C-F> <C-X><C-F>
"imap <C-I> <C-X><C-I>
"imap <C-D> <C-X><C-D>
"imap <C-L> <C-X><C-L>
set completeopt=longest,menu
vnoremap p <Esc>:let current_reg = @"<CR>gvs<C-R>=current_reg<CR><Esc> "p¹¼аϵ´»¹ѡµ
nmap <F2> :nohlsearch<CR>
map <F3> :copen<CR>:grep -R
map <F7> :w<CR><CR>:copen<CR>:make<CR><CR>
imap <F7> <Esc>:w<CR><CR>:copen<CR>:make<CR><CR>
map <F8> :cclose<CR>
map <F9> :TlistToggle<CR>
""""""""""""""""""""""""""""""
" netrw setting
"""""""""""""""""""""""""""""""
let g:netrw_winsize = 20
"nmap <silent> <leader>fe :Sexplore!<cr>
map <silent> <F5> : Vexplore<CR> "¿ªfileexploer£¬S´�ǰ·ָ»¸괰¿ڣ¬V´
"""""""""""""""""""""""
"Tag Lisg(ctags)
"""""""""""""""""""""""
au BufWritePost *c,*cpp,*h !ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .
let Tlist_Ctags_Cmd = 'ctags'
"let Tlist_Show_One_File = 1
let Tlist_Auto_Open = 1
let Tlist_Exit_OnlyWindow = 1
let Tlist_Use_Lift_Window = 1
let Tlist_WinWidth = 25
set tags=./tags,/usr/include/tags,$HOME/.vim/gtk_tags/tags_glib_gobject,$HOME/.vim/gtk_tags/tags_gdk_xlib,$HOME/.vim/gtk_tags/tags_gtk,$HOME/.vim/gtk_tags/tags_gdk,$HOME/.vim/gtk_tags/tags_glib_gio,$HOME/.vim/gtk_tags/tags_glib_glib,$HOME/.vim/gtk_tags/tags_gdk_pixbuf,$HOME/.vim/gtk_tags/tags_cairo,$HOME/.vim/gtk_tags/tags_pango,
filetype plugin indent on
" % (º¥
" gd תµ½¾ֲ¿±¿¶¨
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" cscope setting
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
if has("cscope")
set csprg=/usr/bin/cscope
set csto=1
set cst
set nocsverb
" add any database in current directory
if filereadable("cscope.out")
cs add cscope.out
endif
set csverb
set cscopequickfix=c-,d-,e-,g-,i-,s-,t- "在quickfix窗口查看
endif
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><CR>
自动更新cscope数据库
cscope 不会自动更新数据库,所以使用以下脚本自动更新:
#!/bin/bash
cd $1
while true
do
rm ./cscope.out
if test -e ./cscope.files
then
cscope -bkq -i cscope.files
else
cscope -Rbqk
fi
cp cscope.out cscope_bak.out
sleep 300;
done
vim 控制台下复制:
- 按住shift,然后鼠标选择复制;