我使用vim和gtags插件来读取多个文件中的代码。一切都很好,除了我不知道如何在运行CtagsCursor跳转到标记定义之前返回到前一个位置。我通读了GNU的全球在线文档,但没有找到任何有用的东西。但是在“3.4Elvis使用全局”一章中,它说"CTRL-T返回到最近的标记上下文。“,这正是我想要的。不知道为什么这个函数没有为vim实现,或者我出了什么问题?
BR,若晨
发布于 2015-02-12 19:13:13
<C-t>是一个与Vim的“标签栈”相关的内置命令。
看起来您正在使用的插件并没有实现类似的特性(而且也不会与标签栈交互),所以您只能使用<C-o>/<C-i>来跳转跳转列表。
发布于 2015-08-20 00:44:59
我通过使用gtags-cscope作为cscopeprog解决了这个问题。此外,我还激活了cscope ctag,以便在vim中使用cscope进行ctag查找。这样,如果您按<C-]>,您将在gtag和<C-t>中搜索声明以再次返回。
对于我映射到<C-\>的引用的查找,我使用quickfix窗口。这不使用标记堆栈,<C-t>将无法工作。
我尝试了一下,使用了标签栈,但这导致了一个杂乱的标签栈和一个大的选择窗口。如果您查找多个引用,则必须多次按<C-t>键,这就是我决定使用快速修复方法的原因。
这是我的实际配置。
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。
发布于 2017-02-24 18:42:57
GNU GLOBAL有两个方便的vim插件gtags.vim和gtags-cscope.vim。
gtags-cscope.vim的标题注释说它用于将全局与Vim的cscope接口集成在一起。
所以你要做的是:
cp /path/to/global-source/*.vim ~/plugin/
在~/.vimrc中添加一些
gtags-cscope.vim的标题注释包含所有可用选项。在我的例子中,我使用以下代码:
" 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 cscopetaghttps://stackoverflow.com/questions/28475573
复制相似问题