57、vi常见用法,tags

简介: 1、tag是一个位置,记录了关于一个标识符在哪里被定义的信息。这种tag聚集在一起被放入一个tags文件,这个文件可以让Vim能够从任何位置起跳达到tag所指示的位置--标识符被定义的位置。     对于程序来说,Tag文件中保存了诸如函数、类、结构、宏等的名字,它们所处的文件,以及如何通过Ex命令跳转到这些标签。

1、tag是一个位置,记录了关于一个标识符在哪里被定义的信息。这种tag聚集在一起被放入一个tags文件,这个文件可以让Vim能够从任何位置起跳达到tag所指示的位置--标识符被定义的位置。

    对于程序来说,Tag文件中保存了诸如函数、类、结构、宏等的名字,它们所处的文件,以及如何通过Ex命令跳转到这些标签。它是一个纯文本文件,因此你可以手工的编辑它,也可以使用脚本对其进行操作。

2、生成tags

ctags -R  //当前目录的所有子目录

ctags *.cpp *.h

:set tags=tags; //设置tags选项为当前目录下的tags文件;如果当前目录找不到文件tags,则往上一层目录查找,直到找到。

3、跳转命令

ctrl + ]

跳转函数、宏

ctrl + o

回到跳转前的地方

ctrl + T

跳到标签栈中较早的标签

shell命令行中输入"vim -t 函数名" 直接打开文档并跳转函数

:tag

函数名(不分大小写) 跳转函数

:tags

显示跳转标签栈

ptag name

打开包含当前name的预览窗口,通过pclose关闭

pedit name

ptag 打开的文件只读,pedit可写

tnext,tselect

tnext可以到下一个tagtselectvi会列出所有相关tag

psearch

查找tag

help 29.1

tags的help

4、其他注意点

1)不是tags当前[]目录需要为vi指定路径。例 :set tags=/home/test/tags

2)set nocompatible //不要vim模仿vi模式,否则会有很多不兼容的问题

3)set nowrap  不自动换行

4)一般来说,我们会先执行 ctags -R /usr/include/* 生成一个tags文件,然后用 ctags -a -R <our project root directory>来把我们项目文件中的变量、函数定义追加到上面生成的那个tags文件中,这样就生成了一个包含linux声明和我们代码声明的一个tags文件。

5)vi有具有如同source insight的功能,如插件taglist,参见【5

参考

1tags简单讲解

http://blog.tianya.cn/blogger/post_show.asp?BlogID=1104557&PostID=13677102

2】 关于tags及更高级使用的讲解

http://www.cnblogs.com/striveford/articles/1950331.html

3http://ctags.sf.net

关于ctags的下载安装

http://xfenoo.blog.51cto.com/747433/275308

4】 对tag进行了详细的讲解

http://easwy.com/blog/archives/advanced-vim-skills-use-ctags-tag-file/

http://edt1023.sayya.org/vim/node13.html

5】 更多关于vim

http://easwy.com/blog/archives/advanced-vim-skills-catalog/

6】 其他

http://www.cnblogs.com/super119/archive/2011/04/05/2005619.html

目录
相关文章
|
5月前
|
Linux 开发工具 C语言
vim模式用法总结
vim模式用法总结
|
应用服务中间件 nginx
Ansible hosts文件写法(学习笔记八)
1、正常写法,name1为别名: [test1] name1 ansible_ssh_host=192.168.1.111 ansible_ssh_user="root" ansible_ssh_pass="1234" ansible_ssh_port=22 name2 ansible_ssh_host=192.
4355 0
|
开发工具 Ubuntu