首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gtags可以导航回来吗?

gtags可以导航回来吗?
EN

Stack Overflow用户
提问于 2015-02-12 18:52:47
回答 4查看 3K关注 0票数 4

我使用vim和gtags插件来读取多个文件中的代码。一切都很好,除了我不知道如何在运行CtagsCursor跳转到标记定义之前返回到前一个位置。我通读了GNU的全球在线文档,但没有找到任何有用的东西。但是在“3.4Elvis使用全局”一章中,它说"CTRL-T返回到最近的标记上下文。“,这正是我想要的。不知道为什么这个函数没有为vim实现,或者我出了什么问题?

BR,若晨

EN

回答 4

Stack Overflow用户

发布于 2015-02-12 19:13:13

<C-t>是一个与Vim的“标签栈”相关的内置命令。

看起来您正在使用的插件并没有实现类似的特性(而且也不会与标签栈交互),所以您只能使用<C-o>/<C-i>来跳转跳转列表。

票数 3
EN

Stack Overflow用户

发布于 2015-08-20 00:44:59

我通过使用gtags-cscope作为cscopeprog解决了这个问题。此外,我还激活了cscope ctag,以便在vim中使用cscope进行ctag查找。这样,如果您按<C-]>,您将在gtag和<C-t>中搜索声明以再次返回。

对于我映射到<C-\>的引用的查找,我使用quickfix窗口。这不使用标记堆栈,<C-t>将无法工作。

我尝试了一下,使用了标签栈,但这导致了一个杂乱的标签栈和一个大的选择窗口。如果您查找多个引用,则必须多次按<C-t>键,这就是我决定使用快速修复方法的原因。

这是我的实际配置。

代码语言:javascript
复制
set cscopeprg=gtags-cscope
if has('cscope')
  set cscopetag cscopeverbose
  if has('quickfix')
    set cscopequickfix=s-,c-,d-,i-,t-,e-
  endif

  map <C-\> :cs find c <C-R>=expand("<cword>")<CR><CR>
endif

如果您希望在不使用quickfix的情况下进行引用查找,请删除cscopequickfix中的c-选项。

另一个提示是,cscopeverbose是一个在使用cscope时打印错误消息的选项。否则你不会得到错误(例如,没有添加gtags文件,或者没有找到符号)。

EDIT 1:

要加载GTAGS文件,请使用内置命令cs add ./GTAGS

票数 1
EN

Stack Overflow用户

发布于 2017-02-24 18:42:57

GNU GLOBAL有两个方便的vim插件gtags.vimgtags-cscope.vim

gtags-cscope.vim的标题注释说它用于将全局与Vim的cscope接口集成在一起。

所以你要做的是:

  1. 安装vim插件(它们位于tarball中)
    • cp /path/to/global-source/*.vim ~/plugin/

~/.vimrc中添加一些

  1. 选项

gtags-cscope.vim的标题注释包含所有可用选项。在我的例子中,我使用以下代码:

代码语言:javascript
复制
" To use the default key/mouse mapping:
let GtagsCscope_Auto_Map = 1
" If you hope auto loading:
let GtagsCscope_Auto_Load = 1
" Don't show warning if GTAGS not found
let GtagsCscope_Quiet = 1
" To use 'vim -t ', ':tag' and '<C-]>'
set cscopetag
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28475573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档