【问题标题】:vim CTRL-] keys not workingvim CTRL-] 键不起作用
【发布时间】:2012-07-19 14:08:20
【问题描述】:

嗨,我是 vim 的新手,我被卡住了。 在:help tag 中,它说可以使用 CTRL-] 击键进入标签定义。但我无法让它工作。我以为我的插件弄乱了一些映射,所以我清理了.vimrc。但是我仍然将光标移到标签词上(例如在帮助中)。我同时敲击 Ctrl] 并且没有任何反应。

有人知道怎么解决吗?或者,也许我正在阅读 :help 错了?

【问题讨论】:

  • 您使用的是“英语(美国)”键盘布局吗?您的 ] 键是否位于 Enter 键的左侧?是否必须按 Shift 才能获得“]”?
  • 是的,是的,不是的。谢谢,至少我没看错。
  • 这很奇怪。你试过:tag quickref(只是一个随机标签)还是在gvim中双击一个标签?这些至少有效吗?
  • 您是否使用ctags 生成了tags 文件?
  • :tag {tag_name} 正在工作,也可以双击。我玩弄了这个脚本包:link,并根据其README 制作了所有内容,包括call pathogen#helptags()。它会改变键盘映射吗?

标签: vim ctrl


【解决方案1】:

首先,使用:verbose 命令(感谢sehe)知道谁将你的密钥反弹到哪里。

:verbose nmap <C-]>

然后,如果你找不到你的键被反弹的地方,用原来的键绑定你的Ctrl-]然后重试:

:nnoremap <C-]> <C-]>

更多信息:

:help mapping
:help :verbose
:help :noremap

【讨论】:

  • 别忘了::verbose nmap &lt;C-]&gt; 会告诉你将你的钥匙弹回哪里
【解决方案2】:

我有同样的问题,:verbose 没有提出任何有用的信息。我发现 Ctrl-+ 把我带到了那里。

请注意,我使用的是德文键盘,加号位于美式键盘的方括号位置。也许代码只查看键的位置(我记得结合 Ctrl-key 读到了这方面的内容)。

【讨论】:

  • 谢谢。这对我也有用。我也在使用德语键盘,只是无法弄清楚为什么它不起作用......
【解决方案3】:

有点晚了,但我遇到了同样的问题。 想我会分享一个可能的解决方案,这样其他人就不必经历痛苦。

我的解决方案是:按 Ctrl 并在按住它的同时按 ] 两次!!!无论您使用什么组合键来生成正确的方括号,],重复两次!我不知道为什么这适用于我的情况。帮助文件中没有提到这一点。大概花了一个 一两个小时试图找出 Ctrl-] 组合,直到我偶然找到解决方案。

【讨论】:

  • 这个解决了我在控制台上的问题,但不是在 GUI 上。
【解决方案4】:

我在虚拟机虚拟机上遇到了同样的问题。正确的 ctrl 键是在主机和来宾环境之间切换。尝试使用左 ctrl + ]

【讨论】:

    【解决方案5】:

    问题是由于虚拟盒子的默认设置造成的。在 Oracle Virtual Box 中,您可以看到默认情况下,权限控制用作主机组合键。转到文件-> 首选项-> 输入并将主机组合键更改为“无”。最初对我来说,ctrl 也可以工作,在上述更改之后,两个键都可以工作。

    【讨论】:

      【解决方案6】:

      对于我来说,“Ctrl-]”表示“Ctrl+Alt GR+)”。换句话说,

      • 按“Ctrl”
      • 在按下“Ctrl”的同时按下“Alt GR”
      • 按“)”(也有“]”)同时按下以上两个

      【讨论】:

        【解决方案7】:

        此解决方案仅适用于非美国键盘布局的 X 环境中的 linux。

        我只是在 linux 中使用瑞士德语键盘布局来解决这个问题。我们通过按 AltGr+¨ 输入 ],因此我必须使用 AltGr+Ctrl+¨ 才能跳转到 ctag 定义,这很尴尬。

        我所做的是将¨(分音符号)键重新映射到](括号)

        1. 打印键码 35 的当前映射:

          $> xmodmap -pke | grep 35 keycode 35 = dead_diaeresis exclam dead_diaeresis exclam bracketright dead_macron bracketright

        2. 重新映射键(我们只是用括号右替换第一个 dead_diaeresis):

          $&gt; xmodmap -e 'keycode 35 = bracketright exclam dead_diaeresis exclam bracketright dead_macron bracketright'

        现在按下键码 35 (¨) 将打印 ] 而无需任何修饰符,并且 CTRL-] 可以跳转到标签。

        xmodmap -e 可以作为用户执行而不需要 sudo,你可以把它放在你的 .profile 中。

        参考swiss-german layout

        【讨论】:

          【解决方案8】:

          我遇到了同样的问题,我解决了。就我而言,我正在映射键 CTRL + F10。所以我首先在 Vim 插入模式下按 CTRL + F10 看看键输出是什么。在我的情况下,它是F36 然后我只是将它映射到 vimrc 文件中

          map &lt;F36&gt; &lt;CR&gt;YOUR COMMAND&lt;CR&gt;

          【讨论】:

            【解决方案9】:

            在挪威语键盘上使用 macOS:CTRL-]CTRL-å

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2019-04-29
              • 2011-12-13
              • 2014-06-04
              • 2018-09-18
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多