the use of ctag in vim

vim-ctag的使用

clip_image002

ctags

clip_image003

首先需要安装ctags,可以使用apt-getyum或者源码安装。

Ctags是一个用于从程序源代码树产生索引文件(或tag文件),从而便于文本编辑器来实现快速定位的实用工具。在产生的tag文件中,每一个tag的入口指向了一个编程语言的对象。这个对象可以是变量定义、函数、类或其他的物件。

Ctags是开放源代码的程序。支持下列的编程语言:汇编,AWK, ASP, BETA, Bourne/Korn/Zsh Shell, C, C++, COBOL, Eiffel, Fortran, Java, Lisp, Lua, Make, Pascal, Perl, PHP, Python, REXX, Ruby, S-Lang, Scheme, Tcl, Vim, and YACC

支持Ctags产生的tag文件的编辑器以及编辑器插件包括:VimVileLemmy,等等。

步骤

进入需要创建索引文件的文件夹,执行ctags *.c即可将所有的c源文件创建索引文件tags

       可以通过cat tags来查看一下tags的内容。

      

导航到function的方法:

l  可以使用:ta function直接跳转到function

l  当光标为function上时,使用CTRL+]也可以直接跳转到function

 

返回原来的使用它CTRL+T即可。

 

Ta跳转也支持正则表达式,比如:ta /^get就会搜索以get开始的函数。

 

Ctagsvim命令及描述

:ts

显示tag list

:tn

跳到list中的下一个

:tp

跳到list中的上一个

:tf

跳到list中的第一个

:tl

跳到list中的最后一个

clip_image005

 

 

 

也可以通过taglis插件实现如下效果,直接媲美IDE,哈哈。

具体参考:http://guoshaoguang.com/blog/2011/11/09/%e7%8e%a9%e8%bd%acvim%e4%b9%8bubuntu%e4%b8%8b%e5%88%9b%e5%bb%bavimtaglistcscopectags%e7%bb%84%e5%90%88%e7%bc%96%e8%be%91%e5%99%a8/

clip_image007

vim–additional features

vim-额外特性

重复命令

clip_image002

l  @@:重复上一个执行宏;

l  n以相同的方向重复上一个搜索命令;

l  N:以相反的方向重复上一个搜索命令;

l  . :重复上一个编辑命令;

l  @:重复上一个命令行

撤销和重做

clip_image003

l  u:可以撤销上次的操作;

l  Nu:可以撤销前N次的操作;

l  U:撤销当前行的所有修改;

l  :red或者CTRL+R:可以撤销还原;

打开光标下的文件

clip_image004

l  gf :在光标位于一个文件名上时,如果该文件就在当前目录,就可以打开该文件,但是会覆盖原来的文件;

l  CTRL+W f:可以打开一个新的窗口;

l  CTRL+W gf:可以打开一个新的窗口,此时会以tab的方式打开;

 

当然,就算没有绝对路径,vim也可以打开一些文件,比如c头文件和perl模块。

打开多个文件

使用vim file1 file2 file3….可以打开多个文件,但是同一时刻只能显示一个文件。

在一个session中,还可以使用:e anotherFile打开另一个文件。

在多个文件中,可以使用CTRL+^来切换,或者使用:next :previous来切换。

文件加密

Hacking for password

vim中使用:X然后输入密码就可是设置每次打开文件都要输入设置的密码,同时可以使用:set key=来取消密码。

保存会话

clip_image006

如果在编辑当前文件的时候,想编辑另外一个文件,可以使用:mksession来保存当前对话,等回来的时候,重新使用vim –S Session.vim即可打开原来保存的会话,这个会话会保存buffer、窗口大小、自定义选项、文件夹、当前目录等。

vim中执行shell命令

使用方式为:!cmd即可。

比如在修改源码的时候,我比较喜欢使用:!date这样就可以快速注释修改的时间了。

vim tips

vim技巧

分离多个窗口

clip_image002

如上图所示,我们可以分离多个窗口给不同的文件。具体操作方法如下:

:split file    打开水平的两个窗口

:vsplit file   打开垂直的两个窗口

同时可以使用CTRL+WW来移动到下一个窗口,或者使用CTRL+W{h/j/k/l}按照方向移动到相应的窗口;

也可以使用CTRL+W (+/-)来增加或减小当前的窗口所占比例大小;

也可以使用诸如:N split filename来打开占用N列的窗口文件。

更改窗口名

clip_image004

可以通过:set title titlestring=Geek\’sComputer来更改vim窗口的名字,当然这个你可以随便去,是不是很酷呀。可以通过help查看设置窗口的更详细信息,可造型还是很给力的。

更改vim配色

clip_image005

Vim中有很多配色方案,可以使用:!ls $VIMRUNTIME/colors来查看:

blue.vim      delek.vim    evening.vim   murphy.vim     README.txt  slate.vim

darkblue.vim  desert.vim   koehler.vim    pablo.vim      ron.vim         torte.vim

default.vim   elflord.vim  morning.vim     peachpuff.vim  shine.vim   zellner.vim

使用:colorscheme blue来更改为blue配色方案。

当然,网上还有很多大家贡献的配色方案,供参考。

使用标签来编辑多个文件

使用vim –p file1 file2 file3 …. fileN可以打开多个文件,与不加-p的区别在于,这些文件全部显示在一个tab上。

clip_image007

然后我们就可以使用:tabn :tabp来到下一个tab或者上一个tab

可以使用:help tab来查看详情。

vim tips

vim技巧

clip_image002

 

如何在插入状态下输入命令

先输入CTRL+O,然后就可以输入命令了,比如5j,就会跳转5行,然后重新进入插入状态。

注意,这里只能执行一次哟。

查看当前文件细节

clip_image003

使用CTRL+G或者gCTRL+G,得到的信息分别为基本信息和更详细信息。

数字增加或减少的快捷键

clip_image005

可以使用CTRL+A或者CTRL+X来将某位数字加1或者减1

跳转到变量定义处

clip_image006

可以使用gd或者gD来跳转到变量定义处,一个为local定义,一个是global定义,在跳转过程中,会将该变量高亮显示。例如:

clip_image008

好站:一步步勾选打造属于自己的Vimrc

好站:一步步勾选打造属于自己的Vimrc

这个网站是vim爱好者但是不很熟悉配置vimvimer福音呀。^_^

http://yoursachet.com/

clip_image002

clip_image004

这个网站提供了一些基本比较常用到的选项, ex: syntax, 列出行数等等, 然后, 挑选基本的 Theme, 再补上 IDE 常见 Plugin(外挂), 就可以下载自己的基本版本, 可以再依照自己的习惯, 去定制修改. (当作 Vimrc 自动产生器的工具来用)

§  详见: sachet – handcraft your development environment

完成设定后, 档案下载的处理流程

1.      unzip sachet.zip

2.      mv vim ~/.vim

3.      mv vimrc ~/.vimrc

4.      rm INSTRUCTIONS.txt

5.      再来就开启 Vim 使用看看啰~

 

Refer: http://blog.longwin.com.tw/2013/03/favorite-vim-vimrc-setup-2013/