我的 vim 安装配置了 ctags。我的习惯是通常在 vim 的选项卡中一次性打开我正在处理的所有相关文件。“问题”是,如果我使用 Ctrl+] 跳转到我正在编辑的文件中的 ctag,它将替换该选项卡中的缓冲区,即使我已经打开了另一个包含该符号的选项卡。如果它只是切换到该选项卡并跳转到那里的符号会好得多。这样,我将始终拥有 1 比 1 的选项卡与文件的比率。
我注意到在taglist.vim插件(我也使用)的Changenotes 中有一个条目说
1. 添加了对跳转到新标签或现有标签中的标签/文件的支持 从 taglist 窗口(仅适用于 Vim7 及更高版本)。
但是,我在 Taglist(或 Ctags)的文档中找不到关于如何实际执行此操作的任何内容。
任何vim大师可以填写我吗?谢谢!
您可以使用 来执行此操作:tab tag NAME_OF_TAG
,但它不会映射到任何内容。您可以<Ctrl-]>
在 .vimrc 文件中重新映射以执行此操作,如下所示:
:nmap <c-]> :tab tag <c-r><c-w><cr>
Run Code Online (Sandbox Code Playgroud)
<c-r><c-w>
将抓取光标下的单词,并且<cr>
是运行命令的最终输入/回车符。
编辑:哦不,我重新阅读了这个问题。这每次都会打开一个新选项卡,这很糟糕!
根据 taglist 帮助页面:
下表列出了标签列表窗口中可以使用的按键的说明。
t 跳转到新选项卡中的标签。如果文件已在选项卡中打开,请移至该选项卡。
事实上,按t
标签列表窗格可以做到这一点,但这意味着您必须已经在标签列表窗格中看到该标签。而且这也有点蹩脚...