我最近使用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>
。