vim + ctags + taglist配置和使用
vim +ctags + taglist ,ctags+cscope 安装配置和使用
内容:VIM下ctags和taglist的安装配置方法;一键安装 ctags和cscope的方法 ;vim语法高亮,自动缩进,python 自动缩进设置,下面将逐个介绍安装和配置使用方法,仅供参考:
1, vim + ctags + taglist配置和使用
taglist依赖于ctags,所以要先装ctags,否则taglist装了也没法用!
1、首先安装ctags
首先是ctags的安装,推荐使用exuberant ctags,我们可以从其官方网站上下载它的源码包,进行解压缩,编译,安装即可。
1)ubuntu安装
sudo apt-get install exuberant-ctags
( 或者下载 手动安装 download ctags-5.8.tag.gz (地址)
tar xzvf ctags-5.8.tag.gz
cd ctags-5.8
./configure
sudo make
sudo make install
)
至此,ctags的安装已经完成,可以使用ctags命令来检测时候完成安装。
检测:
在自己的项目文件夹下执行 $ctags -R * (不执行就起不到效果)
注:“-R”表示递归创建,也就包括源代码根目录(当前目录)下的所有子目录。“*”表示所有文件。这条命令会在当前目录下产生一个“tags”文件, 当用户在当前目录中运行vi时,会自动载入此tags文件。
然后就可以入手了。
常用的命令:
熟练的使用ctags仅需记住下面七条命令:(很简单吧,呵呵)
1. $ ctags –R * ($ 为Linux系统Shell提示符)
2. $ vi –t tag (请把tag替换为您欲查找的变量或函数名)
3. :ts (ts 助记字:tags list, “:”开头的命令为VI中命令行模式命令)
4. :tp (tp 助记字:tags preview)---此命令不常用,可以不用记
5. :tn (tn 助记字:tags next) ---此命令不常用,可以不用记
6. Ctrl + ]
7. Ctrl + T
-------------------------------------------------------------------------------------------------
2、安装taglist
下面我们来进行taglist的安装,同ctags的安装一样这里我们也是去其官方网站下载解压其源码包。
也可以这样 配置
$cd taglist/
$cp doc/taglist.txt /usr/share/vim/vim72/doc/
$cp plugin/taglist.vim /usr/share/vim/vim72/plugin/
基本上配置完成
启动vim,用 “:helptags .”来配置好帮助文件
重启vim,用“:TlistToggle”来打开和关闭taglist窗口。
可以用“:help taglist”来获得更多帮助信
若要默认打开taglist,_vimrc中加入
let Tlist_Auto_Open=1
set tags=tags;
set autochdir;
注意第一个命令里的分号是必不可少的。这个命令让vim首先在当前目录里寻找tags文件,如果没有找到tags文件,或者没有找到对应的目标,就到父目 录中查找,一直向上递归。因为tags文件中记录的路径总是相对于tags文件所在的路径,所以要使用第二个设置项来改变vim的当前目录。
具体 vim 高阶应用见 http://easwy.com/blog/archives/advanced-vim-skills-catalog/
第一步要达到效果是不是很麻烦,下面介绍一种简单的方法
2, 一键安装 ctags和cscope的方法
用vim的插件搭建一个类似sourceinsight的vi,同时加了一些vim及脚本,最近看到很多人想要有sourceinsight功能的vim,由于整个配置还是有点麻烦,于是将配置的vim发上来,只需一条命令,就可安装完ctagslist,cscope,fielexporeer等插件,达到sourceinsight的效果。
安装过程:
大家下载附件,然后解压
然后切到解压后的文件夹,
执行sudo ./install即可
然后执行sudo apt-get install vim
或者这样安装:
#Clone repository:
git clone https://github.com/ustcdane/vim_install.git
#install
cd vim_install
sudo ./install
可能会出现错误:
"Taglist: Exuberant ctags (http://ctags.sf.net) not found in PATH.
Plugin is not loaded."
没有关联Ctags和Taglist
在~/.vimrc中加入 : let Tlist_Ctags_Cmd='/usr/bin/ctags'
其实我已经在 install 中加入了,如果还是出现错误,则找到你的可执行程序ctags 所在处手动的在~/.vimrc中加入let Tlist_Ctags_Cmd='你的ctags路径'
使用指南:
当我们需要阅读代码时,必须先生成tags文件和cscope.out文件,这个可以通过已安装程序中的脚本自动生成
比如你要阅读source文件夹下的代码就使用cs source
当source下有文件更新了,你可以使用 cs source -u来更新
常用命令:
进入vim后
wm打开ide界面,再次wm就关闭了
ctrl+w在各个窗口切换
ctrl+h切换到左边的窗口
ctrl+j切换到下面的窗口
ctrl+l切换到右边的窗口
ctrl+k切换到上面的窗口
ctrl+]函数跟踪
快捷键 cs f s/g/....
s: 查找C语言符号,即查找函数名、宏、枚举值等出现的地方
g: 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能
d: 查找本函数调用的函数
c: 查找调用本函数的函数
t: 查找指定的字符串
e: 查找egrep模式,相当于egrep功能,但查找速度快多了
f: 查找并打开文件,类似vim的find功能
i: 查找包含本文件的文
当然在底行模式下介键入 help 会弹出 vim的帮助。
使用cscope查找do_fork函数的定义:
在vim命令行下执行:
:cs f g do_fork
就可以查看do_fork的全局定义了。
cscope常用快捷键:
先按 ctrl+\ 然后 再按以下键:
ctrl+]:在函数调用的地方跳转到函数定义的地方
ctrl+t:返回上一个查找的地方
这个方法是从网上学到的,并作了部分修改
3, 设置vim语法高亮显示和自动缩进
1、配置文件的位置在目录 /etc/vim 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc” , (如果你使用第二步中的一键安装 ctags和cscope的方法 建议 在自己的家目录下的.vimrc 作相应修改) 。例如,/root目录下,通常已经存在一个.vimrc文件。
2、设置语法高亮显示
1) 打开vimrc,添加以下语句来使得语法高亮显示:
syntax on
2) 如果此时语法还是没有高亮显示,那么在/etc目录下的profile文件中添加以下语句:
export TERM=xterm-color
3、设置Windows风格的C/C++自动缩进(添加以下set语句到vimrc中)
1)设置(软)制表符宽度为4:
set tabstop=4
set softtabstop=4
2)设置缩进的空格数为4
set shiftwidth=4
3)设置自动缩进:即每行的缩进值与上一行相等;使用 noautoindent 取消设置:
set autoindent
4)设置使用 C/C++ 语言的自动缩进方式:
set cindent
5)设置C/C++语言的具体缩进方式(以我的windows风格为例):
set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s
6)如果想在左侧显示文本的行号,可以用以下语句:
set nu
7)最后,如果没有下列语句,就加上吧:
if &term=="xterm"
set t_Co=8
set t_Sb=^[[4%dm
set t_Sf=^[[3%dm
endif
总结, 需要添加的内容:
A,语法高亮在/etc目录下的profile文件中添加以下语句:
export TERM=xterm-color
B,其它 在 /etc/vim/vimrc的 添加:
- syntax on
- set nu
- set tabstop=4
- set softtabstop=4
- set shiftwidth=4
- set cindent
- set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s
- if &term=="xterm"
- set t_Co=8
- set t_Sb=^[[4%dm
- set t_Sf=^[[3%dm
- endif
- hi Comment ctermfg=6
Other: vim python 的自动缩进设置方法。
缩进设置最常用的是:
:filetype indent on 它将开启针对文件具体类型的缩进