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的安装一样这里我们也是去其官方网站下载解压其源码包。
解压文件
# unzip -d taglist taglist_45.zip // 解压到 taglist
也可以这样 配置
$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的当前目录。

使用ctr 和两次w在侧窗口和主窗口之间进行切换


有时我们想察看的函数在其他代码文件中定义,这是我们只要将光标定位到想察看的函数上,然后按ctr+]键就可以进行察看了,按ctr+O可以跳回到源文件中。
具体 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 on2) 如果此时语法还是没有高亮显示,那么在/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-colorB,其它 在 /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
它将开启针对文件具体类型的缩进
vim + ctags + taglist配置和使用的更多相关文章
- 第21月第9日 windows下使用vim+ctags+taglist
1. windows下使用vim+ctags+taglist 最近在公司的同事指导下,学会使用这个东西编写代码,效率提高了不少.所以记录下来,方便大家使用. 1. 下载gvim74.exe文件,并安装 ...
- Vim+Ctags+Taglist组合:
Ctags 1,sudo apt-get install Ctags //会提示最新版本的名字:Exuberant Ctags 2,在源码的最上层目录执行:ctags -R //会在当前目录先生成一个 ...
- 快速配置vim+ctags+taglist
实验平台:centos 7 1.安装vim编辑器 点击(此处)折叠或打开 $sudo yum install vim 并编辑配置文件.vimrc文件,放在主目录下/home/developer 参考配 ...
- windows下使用vim+ctags+taglist
最近在公司的同事指导下,学会使用这个东西编写代码,效率提高了不少.所以记录下来,方便大家使用. 1. 下载gvim74.exe文件,并安装.注意一般安装的路径中不要存在空格 2. 下载taglist_ ...
- Ubuntu vim+ ctags(包含系统函数) + taglist 配置 分类: vim ubuntu 2015-06-09 18:19 195人阅读 评论(0) 收藏
阅读大型代码,我们经常需要打开很多的代码文件,搜索各种定义.windows下用惯了ide的朋友,转战Linux的时候可能会觉得很难受,找不到合适的阅读工具.其实万能的vim就可以实现.下面介绍一下vi ...
- Ubuntu vim+ ctags(包括系统函数) + taglist 配置
阅读大型代码,我们常常须要打开非常多的代码文件,搜索各种定义.windows下用惯了ide的朋友.转战Linux的时候可能会认为非常难受,找不到合适的阅读工具. 事实上万能的vim就能够实现. 以下介 ...
- 【linux】vim编辑器vim+taglist+ctags的配置
很多linux软件开发实际上并不实在X window的情况下进行的,这时我们不可能启动基于X window的图形化窗口,在这一情况下我们所能使用的主要的编辑器是vim和emacs.(ps:emacs和 ...
- 将Vim改造为强大的IDE—Vim集成Ctags/Taglist/Cscope/Winmanager/NERDTree/OmniCppComplete(有图有真相)(转)
1.安装Vim和Vim基本插件首先安装好Vim和Vim的基本插件.这些使用apt-get安装即可:lingd@ubuntu:~/arm$sudo apt-get install vim vim-scr ...
- ctagst简单应用,将Vim改造:Ctags,Taglist,Cscope,OmniCppComplete,SuperTab,Winmanager,NERDTree,MiniBufExplorer,vimrc
vim + ctags $ ctags #给同一个目录下的所有文件建立tags 这时在tags文件所在的目录下打开源文件阅读,vim就会自动调用tags文件.如果tags文件不在当前目录下,能在命令模 ...
随机推荐
- jquery双向列表选择器DIV模拟版
前段时间项目需要用到双向列表选择,想直接用select,结果发现某些样式不支持,只好用div模拟了以下,功能基本实现能用了,需要其他功能自己加上,譬如列表里展示多列数据等. select版链接:htt ...
- (八)map,filter,flatMap算子-Java&Python版Spark
map,filter,flatMap算子 视频教程: 1.优酷 2.YouTube 1.map map是将源JavaRDD的一个一个元素的传入call方法,并经过算法后一个一个的返回从而生成一个新的J ...
- 一道关于java序列化的问题,看大家知多少————
问题先放在这里,稍后我会做出解答 已知类有Test和Test2,问两次主程序的输出结果是多少(SerializeUtil只是序列化的工具类) 类Test public class Test imple ...
- MySQL 主从复制
1 复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重 ...
- POJ 3370. Halloween treats 抽屉原理 / 鸽巢原理
Halloween treats Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7644 Accepted: 2798 ...
- 跳跃的舞者,舞蹈链(Dancing Links)算法——求解精确覆盖问题
精确覆盖问题的定义:给定一个由0-1组成的矩阵,是否能找到一个行的集合,使得集合中每一列都恰好包含一个1 例如:如下的矩阵 就包含了这样一个集合(第1.4.5行) 如何利用给定的矩阵求出相应的行的集合 ...
- Re 模块
re模块提供方法如compile, search, findall, match和其他的方法.这些函数是使用REGEX语法建立了一个模式来处理文本的. 第一个方法:search. 一个基本的搜索工作原 ...
- 做了一个sublime text插件
做了一个sublime text插件,可以方便地查看C++/python的调用图.插件的演示视频在这里: http://list.youku.com/albumlist/show?id=2820226 ...
- C与指针(结构体指针,函数指针,数组指针,指针数组)定义与使用
类型 普通指针 指针数组(非指针类型) 数组指针 结构体指针 函数指针 二重指针 定义方式 int *p; int *p[5]; int (*p)[5]; int a[3][5]; struct{.. ...
- Java的基本数据类型与转换
1.1 Java为什么需要保留基本数据类型 http://www.importnew.com/11915.html 基本数据类型对大多数业务相关或网络应用程序没有太大的用处,这些应用一般是采用客户端/ ...