在正常模式下将 Esc 键映射到 vim 中的 :q

在正常模式下将 Esc 键映射到 vim 中的 :q

我在 midnight commandder 中使用 vim 作为查看器,我想快速查看和关闭文件。如何将退出键映射到:q正常模式,以便 vim 仅在未发生任何更改时退出?

答案1

如果只针对当前vim会话执行此操作,请在 中键入以下命令vim。(为清晰起见,添加了空格。除了我指示的 之外,请不要键入空格Space。)

:mapSpaceCtrl+ VEscSpace:qCtrl+VEnterEnter

要对当前终端会话的剩余部分执行此操作,请键入以下命令(在终端中;即 shell)。(为清晰起见,添加了换行符。在一行中键入以下内容;Enter除了我指示的位置外,不要键入其他内容Enter。)

E  X  I  N  I  T  =
"  :  m  a  p  Space  Ctrl+ V  Esc  Space  :  q  Ctrl+V  Enter  "  Enter

进而

export EXINITEnter

要使更改“永久”生效(即,直到您将文件更改回来),请将上述命令(和EXINIT="…"export EXINIT放入您的.bash_profileand/or中.bashrc。(您可以将它们放在同一行上,用 将它们分开;。您可以通过将它们组合成 来缩短它们export EXINIT="…"。)这要等到您再次登录或可能直到您启动新的 shell 才会生效,除非您只是键入命令EXINITsource将命令放入其中的文件EXINIT

笔记:如果您没有使用 bash 作为您的主 shell,则可能需要修改上述内容以适合您的 shell。

或者,尝试将:map …命令放入您的文件中.exrc


如果这还不明显的话,

:地图字符串1 字符串2

(在vi/中vim)创建一个映射(转换),这样,当你输入(在命令模式下),编辑器就像你输入了 一样。而+是超级转义字符,它告诉/和 shell(实际上,可能string1string2CtrlVvivim全部程序(或至少大多数程序)会将以下字符解释为文字字符,而不是控制字符。请注意,Ctrl+V后跟的Enter 是回车符,通常显示为^M;但在 中,它被解释为。:map string2Enter

相关内容