跳转直接跳到第多个匹配行的标题

By admin in 美高梅手机版4858 on 2019年3月15日

意图

  • 美高梅手机版4858 ,用ctags搜索代码时, 用 ctrl + ]
    后,只有3个金童玉女项一贯跳转,有几个则列出具有匹配项选择跳转

意图

  • 用ctags搜索代码时, 用 ctrl + ]
    后,唯有三个一双两好项平昔跳转,有多个则列出全部匹配项选取跳转

意图

  • 跳转直接跳到第多个匹配行的标题。用ctags搜索代码时, 用 ctrl + ]
    后,唯有多少个男才女貌项向来跳转,有多少个则列出全部匹配项选用跳转

1. 概述

诚如的话,在代码中跳转,离不开 ctags。

事实上,vim 中代码跳转是由 vim tags 模块形成的,tags 模块注重于 tags
文件。

ctags(Generate tag files for source code) 是产生 tags 文件的。

tags 文件只包蕴了函数、类、变量的定义的消息,而并未包蕴使用音讯。

若果要驾驭三个函数都在怎么着地点使用过,需求选用 cscope。

问题

  • 在 vim 中接纳 ctags
    是2个很令人雅观的业务,但有时一些暗中认可的布署和不知来由的题材造成在选择ctags 时很窝囊,如:

  • 在用ctags搜索代码时, 用 ctrl + ] , 缺省状态下,
    vim会把你带到第2个分外的地方, 有时候那个不是您想要的,
    那应该怎么跳到其余地方吗?

问题

  • 在 vim 中运用 ctags
    是三个很令人美观的业务,但有时一些暗中认可的配备和不知来由的标题导致在选取ctags 时很闹心,如:

  • 在用ctags搜索代码时, 用 ctrl + ] , 缺省气象下,
    vim会把您带到第三个相当的地点, 有时候这一个不是您想要的,
    那应该怎么跳到其余地点吗?

问题

  • 在 vim 中运用 ctags
    是3个很令人清爽的事情,但有时一些暗中认可的安顿和不知来由的难点导致在选取ctags 时很烦恼,如:

  • 在用ctags搜索代码时, 用 ctrl + ] , 缺省景色下,
    vim会把您带到第3个非常的地方, 有时候那个不是您想要的,
    那应该怎么跳到其他地点吗?

2. tags 文件的转变与更新

ctags 私下认可是不会自动生成 ctags 文件的,常用的 3 个转变命令如下:

$ ctags *
$ ctags -R
$ ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .
  • -Sportage: 循环生成子目录的 tags
  • *: 当前目录下的拥有文件,不递归
  • –c++-kinds=+px : 记录 c++ 文件中的函数表明和各类外部和前向表明
  • –田野s=+iaS : ctags
    须求讲述的音讯,当中i表示如若有继承,则标识出父类;a
    表示一旦元素是类成员来说,要注明其调用权力(便是 public 依然private);S 表示只假使函数,则标识函数的 signature。
  • –extra=+q:
    强制供给ctags做如下操作—假若某些语法成分是类的1个分子,ctags暗许会给其记录一行,能够供给ctags对同1个语法成分再记一行,那样可以确认保证在VIM中几个同名函数可以经过路径分歧来不一致。

赶尽杀绝方案

  1. 使用 :ts 命令
  2. 在 .vimrc 中添加以下配置:map <c-]> g<c-]>

焚林而猎方案

  1. 使用 :ts 命令
  2. 在 .vimrc 中添加以下配置:map <c-]> g<c-]>

焚林而猎方案

  1. 使用 :ts 命令
  2. 在 .vimrc 中加上以下配置:map <c-]> g<c-]>

http://vimcdoc.sourceforge.net/doc/tagsrch.html\#tag-matchlist

3. 广泛功能与神速键

详细的印证,见 vim 的 tags 帮忙文书档案。

:help tags

一声令下、赶快键、效能描述如下:

  • CTRL+]        :tag tagname     跳转到定义处
  • CTRL-W ]     :stag tagname    新窗口中打开并跳转到定义处。split
    后实施  tag tagname
  • CTRL+T                               CTRL+]
    的反操作,向回跳转。类似 CTMuranoL+o,差异在于,CTRAV4L+o 的跳转不囿于于
    CTLacrosseL+] 构成的调用树。

对于存在三个门户十分的 tag(如, 在 .h 和  .cpp 中都宣示也许定义的措施名):

  • :ts[elect]                 列出具有匹配的 tag
  • :[count]tp[revious]  跳转至前 count 个 tag 处。
  • :[count]tn[ext]        跳转至后 count 个 tag 处。

4. Vim + ctags 配置

set tags=tags;  " ; 不可省略,表示若当前目录中不存在tags, 则在父目录中寻找。
map <C-F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR> 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有