配置vim环境

来源:互联网 发布:sqlserver 随机排序 编辑:程序博客网 时间:2024/06/08 10:15

1、在用户目录下的~/.vimrc文件添加以下几行命令

set autoindent             设置自动对齐(缩进):即每行的缩进值与上一行相等;使用 noautoindent 取消设置
set smartindent          智能对齐方式
set tabstop=4             设置制表符(tab键)的宽度
set softtabstop=4      设置软制表符的宽度
set shiftwidth=4         (自动) 缩进使用的4个空格
set showmatch          设置匹配模式,显示匹配的括号
set tabstop=4             设置制表符(tab键)的宽度
set softtabstop=4       设置软制表符的宽度   
set previewwindow    标识预览窗口
set incsearch             输入字符串就显示匹配点
set hlsearch               开启搜索结果的高亮显示
map 9 $                      通过9跳转到行末尾,0默认跳转到行首

set mouse=a            使用鼠标

"显示TAB健 和空格
set list
set listchars=tab:>-,trail:-

2. 安装ctags插件

tar -xzvf ctags-5.5.tar.gz

cd ctags-5.5

./configure

make

sudo make install

ctrl + ] 可以跳转到光标所指函数的定义之处

ctrl + t 可以退回到光标所指的地方

3. 安装taglist插件

unzip taglist_46.zip

cp ./taglist_46/plugin/taglist.vim ~/.vim/plugin

cp ./taglist_46/doc/taglist.txt~/.vim/doc

vim命令行上:helptags ~/.vim/doc生成帮助标签,:help taglist.txt查看帮助文档

在~/.vimrc里面设置taglist:
let Tlist_Show_One_File=1       显示当前文件的taglist
let Tlist_Exit_OnlyWindow=1

在vim的命令行下输入:Tlist可以打开taglist

若在set mouse=a的时候,双击tag可以跳转到函数定义的位置。否则,两次ctrl+w切换到taglist窗口中,光标指到要查看的函数,按<CR>(回车)就能跳转到光标所指的函数定义的位置。

u   可以 更新taglist窗口中的tag

map <F1> :Tlist<CR>       F1键可以打开taglist

imap <F1> <ESC>:Tlist<CR>  F1键可以打开taglist

4. 安装cscope

tar -xf cscope-15.8b.tar

cd cscope-15.8b

./configure

make

sudo make install

在文件目录下cscope -Rbq生成3个文件cscope.out  cscope.in.out  cscope.po.out

在vim命令行中:cs add ./cscope.out  ./      将cscope数据库载入Vim。

在vimrc中set cscopequickfix=s-,c-,d-,i-,t-,e-设置使用 quickfix 窗口来显示 cscope 结果
scope的主要功能是通过同的子命令"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查找包含本文件的文件如果自动跳转的位置你不满意, 想看其他的结果, 可以用下面的命令打开QuickFix窗口:
:cw

在vimrc里面加上: 按ctrl+\ 然后g等就可以查找

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>

  1. find `pwd` -name "*.[ch]" -o -name "*.cpp" > cscope.files  
  2. cscope -bR -i cscope.files<span style="" lang="EN-US"><span style="font-family:Times New Roman;"><span style="font-size:13px"></span></span></span>  

上述命令中使用`pwd`取得绝对路径名,以防止使用cscope时出现找不到文件的情况;

命令cscope中的-i参数可以去掉,因为cscope缺省就是从当前目录的cscope.files中查找文件列表。


还有一个简洁的办法实现在当前目录下建立cpp文件和c文件混合的cscope.out;

在~/.bashrc中添加如下alias:

  1. alias mkcscopefile='find `pwd` -name "*.[ch]" -o -name "*.cpp" > cscope.files'  
  2. alias mktag='ctags -R;cscope -bR'

然后,在terminal中source ~/.bashrc,就可以使用mkcscopefile;mktag命令来生成cscope.out和tags文件了。

如果路径中含有空格,需要使用sed对生成的cscope.files文件进行处理,命令:

sed -i ‘s/^/"/;s/$/"/' cscope.files


5. 折叠的使用

有 6 种方法来选定折叠:
manual           手工定义折叠
indent             更多的缩进表示更高级别的折叠
expr                用表达式来定义折叠
syntax             用语法高亮来定义折叠
diff                  对没有更改的文本进行折叠
marker            对文中的标志折叠

set foldmethod=indent "set default foldmethod
"zi 打开关闭折叠
"zv 查看此行
zm 关闭折叠
zM 关闭所有
zr 打开
zR 打开所有
zc 折叠当前行
zo 打开当前折叠
zd 删除折叠
zD 删除所有折叠

0 0
原创粉丝点击