日常生活小技巧 -- vim 中 ctags 的安装和使用

ctags 主要是用来创建 Vim 可以使用的 tag 索引文件的。

一、下载安装

Ubuntu下 执行sudo apt-get install ctags

二、建立索引文件

在你想要建立索引文件文件夹目录下执行:

sudo ctags -R *


然后可以发现该目录下多了一个 tags ,它就是索引文件


三、设置索引文件位置

但是 vim 里现在还不知道 tags 文件的位置,你需要设置一下。

# vi /root/.vimrc
//在文件最后添加 tags 位置
set tags=/home/tarena/project/tags


如果不设置索引文件位置,然后执行 ctrl+] 则会出现错误

E433: 没有 tag 文件
E426: 找不到 tag: XXXXX

四、使用方法

vi -t tagname 跳转标签tagname定义的地方



:ta tagname 跳转标签tagname定义的地方



:tags 查看到达当前位置所经过的标签路径


五、跳转快捷键

ctrl+] 跳转至光标所在对象定义之处
ctrl+t 返回跳转前位置

六、其他快捷键

ctrl+g 或者 :f 查看当前文件名和所在行号



shift+8 查找光标所在处的对象

然后按快键键 N 向后查找,按 shift+N 为向前查找



想了解更多,参看:C语言再学习 -- 常用快捷键

七、辅助软件 taglist

参看:vim插件taglist的安装和使用

taglist 提供了源码的结构化浏览功能,可将源码中定义的类、函数、变量等以树结构显示,层次关系可一目了然,而且于快速定位并查看。前提是必须要安装 ctags。

(1)下载

下载:Click on the package to download.

(2)安装

解压到 ~/.vim 目录下

# unziptaglist_46.zip

进入doc目录 打开 vim 在命令模式下输入 helptags .


可以看到 doc 文件夹下多了一个 tags

这一步的作用是为了导入 taglist.txt 这个帮助文件,那么后面便可以使用 help taglist.txt 来详细查看手册。

比如现在再打开 vim,在命令模式下输入 help taglist.txt,可以看到帮助手册。


到此安装完成。

(3)使用

使用 vim 打开一个文件,然后在命令模式下输入 Tlist,可以看到有如下这种界面了。

关闭界面同样是在命令模式下输入 Tlist

ctrl+ww 切换左右窗口。

在左侧界面选择要跳转函数,回车即可跳转到右边的函数对应位置


(4)快捷键

taglist窗口中可使用的快捷键:

<CR>          跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样(但要在vimrc文件中打开此项功能)
o             在一个新打开的窗口中显示光标下tag
<Space>       显示光标下tag的原型定义
u             更新taglist窗口中的tag
s             更改排序方式,在按名字排序和按出现顺序排序间切换
x             taglist窗口放大和缩小,方便查看较长的tag
+             打开一个折叠,同zo
-             将tag折叠起来,同zc
*             打开所有的折叠,同zR
=             将所有tag折叠起来,同zM
[[            跳到前一个文件
]]            跳到后一个文件
q            关闭taglist窗口
<F1>         显示帮助
其他一些设置选项可在vimrc脚本中添加,如:
"设置ctags路径
let Tlist_Ctags_Cmd = '/usr/bin/ctags'

"启动vim后自动打开taglist窗口
let Tlist_Auto_Open = 1

"不同时显示多个文件的tag,仅显示一个
let Tlist_Show_One_File = 1

"taglist为最后一个窗口时,退出vim
let Tlist_Exit_OnlyWindow = 1

"taglist窗口显示在右侧,缺省为左侧
let Tlist_Use_Right_Window =1

"设置taglist窗口大小
"let Tlist_WinHeight = 100
let Tlist_WinWidth = 40

"设置taglist打开关闭的快捷键F8
noremap <F8> :TlistToggle<CR>

"更新ctags标签文件快捷键设置
noremap <F6> :!ctags -R<CR>

相关文章

解决方案:解决linux下vim乱码的情况:(修改vimrc的内容)全...
Linuxvi/vim所有的UnixLike系统都会内建vi文书编辑器,其他的...
      vim正则匹配:空行:/^$/  /^[\t]*$/注释...
$select-editorSelectaneditor.Tochangelater,run'sele...
上次手贱忘了保存,这次就简单做个备忘吧,把踩过的坑记一下...
Linux之文本编译器小结vim的优势所有的UNIX-LIKE习通都会内置...