【问题标题】:Remap ⌘S to save a file in VIM重新映射 ⌘S 以在 VIM 中保存文件
【发布时间】:2016-06-02 02:46:23
【问题描述】:

我最近从使用 MacVim 切换到仅在命令行上使用 Vim。我想念的一个功能是能够用 ⌘S 保存文件,而不必回到正常模式,然后 :wq

我在 iTerm2 中使用 Vim。有没有办法让⌘S在插入和普通模式下保存文件?

【问题讨论】:

  • 只是好奇,你为什么从 MacVim 切换过来?

标签: vim macvim iterm


【解决方案1】:

您可以使用 iTerm2 将 Cmd-S 映射到 shell 和 Vim 可以识别的其他组合(例如 Ctrl+S),然后您可以通过 .vimrc 文件简单地映射该命令,正如 Andrew 指出的那样。

总结:

  • 使用将 Cmd-S 映射到 Ctrl+S 的新条目编辑 iTerm2 密钥。
  • 添加用于将Ctrl+S 映射到vimrc 文件的命令(如Andrew 所述)或this site

【讨论】:

  • 非常感谢您的提示。我想让这个更具体一点。我映射了 cmd-s 以发送对应于 F2 的十六进制代码 0x1b 0x4f 0x51。然后,在 vimrc 我添加 imap :update .
  • +1 用于 iTerm2。它是一个很棒的终端模拟器,具有许多额外的好功能,非常适合在控制台中使用 vim。
  • @PitiOngmongkolkul 你是怎么得到 F2 的十六进制代码的???我可以发现 F2 具有 0x78 键码,但不知道如何将其转换为 scape 十六进制代码
  • 我记得我已经把我在 vi 中按下的键打印出来了。不记得是怎么回事了……
【解决方案2】:

这里有一个更简单的方法:使用 iTerm2 的“发送文本”。基本上你可以映射Cmd-S 来发送一个文本到当前的vim 会话:w\n

【讨论】:

    【解决方案3】:

    好吧,我不确定命令行 Vim 是否可以注册 ⌘ 键,我不在我的 Mac 上确认,但您可以像这样在 .vimrc 中映射 ⌘S。

    inoremap <D-s> <ESC>:w<CR>i  "insertmode
    nnoremap <D-s> :w<CR>        "normalmode
    

    同样,这只有在命令行 vim 可以识别 ⌘key 时才有效。

    【讨论】:

    • 这在 iTerm2 中使用命令行 Vim 时似乎不起作用。看起来 ⌘S 没有进入 Vim,它只是调用 iTerm 命令(将文本另存为)。
    • 如果 iTerm 抓住了它,那么你就不走运了(据我所知)。您总是可以尝试 映射 ctrl-s,或者尝试按 alt-s 并映射它。
    【解决方案4】:

    在控制台版本的 Vim 中无法映射到 ⌘。如果您希望能够在映射中使用 ⌘,您需要切换回 MacVim。

    【讨论】:

      猜你喜欢
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      • 2011-07-20
      • 1970-01-01
      • 2014-12-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多