重生之投资大亨:Vim tags的使用

来源:百度文库 编辑:中财网 时间:2024/05/06 04:00:03
先要用ctags命令之后才能使用Jump
:tag
CTRL + ] 跳转到tag
CTRL + T 又跳回原处了
12 . V im tags的使用
tag指的是文件中的一种特殊的标志,在使用V im时,可以由很简单的按键就马上跳到那个文章及那个tag的位置,也可以跳回原处。这个功能就好像目前的网页上的hyperlink一样。但不一样的是,这个tag并不是写在文件里头的,而是由ctags这支程式(或其他类此的工具程式)来产生相关档的tags,然后存档于一个外部档案里头,要用到时再由V im叫出来。
 
12 . 1各种程式码专用tag工具
ctags这是最常用到的,可能会有两种版本,旧的ctags只能用于C程式码。exuberant ctags则可用于C/C++、Java、Fortran……等等。可由ctags -version得知版本。
etags这是emacs/xemacs 所附的,功能也是非常强大。
JTags这只能处理Java 程式码。
ptags.py处理Python 程式码。
ptags处理Perl 程式码。
这里主要讲述exuberant ctags。可man ctags或ctags -help得知所支援的程式语言。在$VIMRUNTIME/tools目录下会有一些工具可以使用,例如专用在sh script,Tcl/Tk script的tag工具。其他的tags工具,系统上不一会安装,有需要的话得自行安装,一般使用,应该ctags就够用了,ctags也可以模拟etags。
以往,V im会附上exuberant ctags,但新近的版本已没有附上,得由使用者自行安装,或使用系统上就有的ctags。如果系统上的并不是exuberant ctags,可自行由http://ctags.sourceforge.net下载、安装。
 
12 . 2 tags档案的格式
以下是一般tag 档的结构(以一行为例):
 
tagname TAB tagfile TAB tagaddress term field
tagname这是识别字的名称,通常就是一些函数名,或其他任何识别字。
TAB这是老老实实的一个Tab键。
tagfile这是tag 档的档名。
tagaddress这是Ex 指令,通常就是搜寻指令,但行数也是可以。
term;"这个记号(两个字元)以后的内容视为注解。
field待了解。
 
12 . 3 tag档案的制作
不讲究的话,可以在所解开的s??ource code 目录下,下以下指令:
 
ctags -R *
这样会有source code目录下产生一个tags这个档(可以使用-f选项来指定档案名),里头就包含了整个source code的所有档案的tags资讯,包括其下所有的子目录下的档案。ctags已尽可能的做到聪明扫描档案的能力,会忽略和程式码无关的档案。当然ctags还有许多精细的参数可以使用,请man ctags。
请注意,ctags预设会将输出档排序,因此不必自行另外去排序。有排序有一个好处,那就是V im会去使用binary search的方式去搜寻,这样会比较快。
 
12 . 4一般的tag使用
如果就照上一节的方式产生tag files,那么只要在source code目录下由vim去开启档案的话,会自动载入tags这个档案,无需另行载入,否则要由:set tags=your.tags来指定tags档。然后就是照一般使用V im线上说明一样,游标移到识别字或函数名上,按Ctrl+],要回到原处就按Ctrl+T。
请注意,V im启动时,工作目录(vim启动时的所在目录)名为tags的档案会自动载入,$VIMRUNTIME/doc及$HOME/.vim/doc目录下的tags档也会自动载入。而且,凡是载入的tags档里头所有标志文字都可以使用补全键来补全,别忘了这个好用的功能。
 
12 . 5 V im线上说明文件的制作
V im的线上说明文件就是使用tags的方式来管理的,因此使用方法也是和一般tags档一样,由Ctrl+]及Ctrl+T来控制。
 
这个工具一般不会在系统的$PATH里头,而是在V im原始码的runtime/doc目录下。由于一般tags程式只对程式码作用,因此对一般的文字档没有作用。而这个doctags则会依文字档中有*这是标题*标志的内容做出tag档出来。
在source code,进入runtime/doc目录后:
 
make doctags => 编译出doctags 这个可执行档make tags => 制作此目录下所有*.txt 的tags 档
这个doctags也可以保留下来,把自己新制作的*.txt置于$VIMRUNTIME/doc目录下,执行:
 
doctags *.txt | sort > tags
这样就行了,重新进入vim后就可以使用了。
当然,这个工具需自行编译,因此对一般使用者而言,使用上并不方便。其实V im已有内建这个工具了。
 
进入vim后,:helpt[ags]目录名这样就会把所指定目录下的所有*.txt产生tags档案。这个动作也可以由命令列来执行:
 
vim -c "helptags ." -c quit 这和doctags *.txt | sort > tags 是一样的。
由于V im自动会搜寻的文件目录是,目前工作目录、$VIMRUNTIME/doc及$HOME/.vim/doc因此建议把自己的新文件置于$HOME/.vim/doc较好。以下为一个简单的例子:
 
This is a test. *test1* This is another test. *test2*
存档成test.txt置于$HOME/.vim/doc目录下:
 
cd .vim/doc vim -c "helptags ." -c quit
重新开启vim,然后:h test1试看看就知道怎么一回事了。而按F1求助键的话,会发现在后面的炮份多了一个章节,那就是LOCAL ADDITIONS:,家目录下的文件目录就是置放于此。