如何调试和修复 <C-]> 在 PuTTY 上跳转到 vim 中的标签的失败,即使 :tag <tagname> 有效?



我最近使用Exuberant Ctags为我的项目生成了标签,遵循方法4:http://ctags.sourceforge.net/faq.html#15.

之后,我就可以使用tags、tag和stags命令跳转到标签了。但是,按下Ctrl+]即<C-]>时不会跳转到标签。

我仔细阅读了一些类似的问题,发现以下可能是相关的:

:verbose setlocal iskeyword?
iskeyword=@,48-57,_,192-255,#
Last set from /usr/share/vim/vim74/ftplugin/vim.vim

:map <C-]>
No mapping found

我的Ctrl和]键工作正常。我可以键入方括号,也可以使用Ctrl+W h/j/k/l等命令在vim拆分之间切换。

我已经检查了屏幕内外,还检查了我的.virc和.bashrc。我的.virc位于:http://pastebin.com/GkF416SY

不幸的是,我仍然不知道Ctrl+]是否被某个程序(PuTTY/bash?)吃掉了,或者是否存在其他问题。如果能帮我解决这个问题,我将不胜感激。我很乐意提供任何进一步的信息。

编辑:我使用普通键盘的COLEMAK布局。[键在回车的左边。

编辑2:

  • 我仍然有同样的问题,staffanc/cscopemaps.vim插件关闭并用PluginClean清理
  • 我已经确保cscopetag不是通过使用"set cscopetag&"设置的在会话中。这仍然无济于事
  • 我尝试了Ctrl+W}->这会打开带有标签的预览窗口。问题越来越奇怪

第3版:遵循@gregory的建议,重新映射为有效。有趣的是,映射到并按Alt+]不起作用!

奇怪的是,Alt+\、Alt+/在重新映射时也不起作用。一侧的Alt键直接发送字符,所以我被迫使用Right Alt.

第4版:我在映射的密钥列表中发现了以下内容:

o  [%          * v:<C-U>call <SNR>13_MultiMatch("bW", "o") <CR>
v  [%            <Esc>[%m'gv``
n  [%          * :<C-U>call <SNR>13_MultiMatch("bW", "n") <CR>
o  ]%          * v:<C-U>call <SNR>13_MultiMatch("W",  "o") <CR>
v  ]%            <Esc>]%m'gv``
n  ]%          * :<C-U>call <SNR>13_MultiMatch("W",  "n") <CR>

我不确定,但这可能是问题的原因。你能解释一下"%"这个字符的用法吗?我快速地看了一眼,但我还没能找到它。

在我的法语AZERTY键盘上,如果想点击CTRL+],我必须记住它在US/QWERTY键盘上的位置。然后,我按下CTRL+这个键。

IOW,因为我永远不记得这些键在哪里,这取决于使用的键盘,所以我已经将CTRL+]映射到了我能记住的东西:<M-Down>

最新更新