周末拿到了我的第一台 Mac,我正在努力适应。我的 vimrc 中的这一行在我的 Windows 上有效,但无法通过 iTerm 与 vim 一起工作
inoremap <S-CR> <Esc>
我希望 Shift-Enter 在插入模式下充当 Escape 。我尝试过使用 Enter 和 Return,但这需要我使用 Macbook 上的 Fn 键,这和退出键一样烦人。
我很感谢您的帮助!
这里的问题在于终端仿真。大多数终端无法区分非打印键 [1] 和与修饰键组合的键。
但是,如果您的终端应用程序能够重新映射按键组合(例如 iTerm2 就是这样做的),您仍然可以使所需的组合发挥作用。将终端应用程序的组合映射到某个你永远不会使用的 Unicode 字符,然后在 Vim 中将该键映射到所需的效果,这样你就可以绕过这个限制。
对于此示例,在 iTerm2 中,打开“键首选项”窗格,添加一个全局快捷键,输入 Shift 和 Return,为其指定“设置文本”操作,然后输入 ✠(马耳他十字,但您可以使用任何随机的不太可能-be-used Unicode 字符)作为其值。在您的 .vimrc 中,添加以下行:
" Map ✠ (U+2720) to <Esc> as <S-CR> is mapped to ✠ in iTerm2.
inoremap ✠ <Esc>
Or:
inoremap <S-CR> <Esc>
" Map ✠ (U+2720) to <S-CR>, so we have <S-CR> mapped to ✠ in iTerm2 and
" ✠ mapped back to <S-CR> in Vim.
imap ✠ <S-CR>
进入<S-CR>
在 iTerm2 中的 Vim 现在最终将导致<Esc>
根据需要在 Vim 中。
[1]:例如空格、制表符、输入、删除、控制、alt、转义。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)