【问题标题】:How do I use ctrl + / as a shortcut in vim using map? (<C-_> doesn't work)如何使用 ctrl + / 作为 vim 使用 map 的快捷方式? (<C-_> 不起作用)
【发布时间】:2020-09-26 04:20:59
【问题描述】:

我正在使用一个名为 NERDCommenter 的 vim 插件,它允许我切换代码行的注释状态。问题是我想将快捷方式更改为 ctrl + / 或命令 + /。在线(来自我阅读的其他帖子)它说不要使用&lt;C-/&gt;,而是使用&lt;C-_&gt;。这不起作用,只会将切换注释命令映射到 ctrl 下划线。

这是我用来执行此操作的代码:

nnoremap <C-_> :call NERDComment(0, "toggle")<CR>

有人可以告诉我我做错了什么吗?谢谢。

【问题讨论】:

  • 你在使用 gvim 吗?在控制台 vim 和 nvim-qt 中,control-/ 被识别为 ,但 gvim 似乎不知道该怎么做,只是将其注册为没有修饰符的斜杠。
  • 这能回答你的问题吗? How to map <C-/> to toggle comments in vim?

标签: vim nerdcommenter


【解决方案1】:

在撰写本文时,在MacOS 中使用当前/内置的Terminal 应用程序(不使用其他软件),不幸的是不可能 使用 Control+/Command ⌘+/ 映射 Vim 快捷方式。

这是因为这些键序列都没有控制代码编码(更多关于 herehere)。


选项 #1(推荐)

映射 Option/Alt+/ 来切换 NERDCommenter → mac 用户必须使用 Option/Alt 序列生成的真实字符 (÷) 来执行此操作:

nmap ÷ <plug>NERDCommenterToggle
vmap ÷ <plug>NERDCommenterToggle<CR>gv

仅当终端>首选项>配置文件[设置]>键盘>“使用选项作为元键”被切换关闭时才有效。更多信息here.

选项 #2 - MacVim

您可以使用MacVim,它允许您将Command ⌘ 键映射到&lt;D-&gt;。更多信息here.

选项 #3 - iTerm2

iTerm2 用于您的终端应用程序。这样您就可以将 Control+/ 映射到 &lt;C-_&gt; 并且它会起作用。要使 Command ⌘+/ 工作,您必须创建一个新的键盘快捷键以作为转义序列发送到 Vim。更多信息herehere


我不建议这样做,但您也可以使用程序重新映射您的 Command ⌘Control 修饰键,每次打开特定应用程序(如 @987654344)时@。 iTerm2 也适用于这项任务,以及像 Karabiner 这样的程序——适用于旧版本的 MacOS。根据this post 的说法,较新的Karabiner-Elements 需要针对特定​​应用重新映射进行一些调整。

更多资源hereherehere

【讨论】:

  • 我已经看过那个帖子并尝试过。正如我已经说过的,我尝试使用 但它映射到 ctrl 下划线而不是 ctrl 斜杠。
  • @yona 说“您的问题已经在这里得到解答”的正确方式是发给flag it as a duplicate
  • @Zemelware 需要明确的是,您已将nmap &lt;C-_&gt; &lt;Plug&gt;NERDCommenterToggle 添加到您的.vimrc 中,当您在正常模式下尝试Ctrl+/ 时,什么也没有发生?
  • @yona,是的,我在.vimrc 中准确输入了该内容,并在普通模式下尝试了快捷方式,但ctrl+/ 不会评论/取消评论行,只有ctrl+_ 会(并且无论如何,这没有任何意义,因为那么您将如何将 ctrl + 下划线映射到命令?)。另外,我使用的是 macOS,但我不知道这是否重要。
  • @Zemelware 非常很重要您使用的是 MacOS -> 请参阅 apple.stackexchange.com/questions/24261/…。您使用的是内置终端应用程序吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-29
  • 1970-01-01
  • 1970-01-01
  • 2016-11-06
相关资源
最近更新 更多