如何配置vim所有模式下的快捷键?

如何配置vim所有模式下的快捷键?

想要配置一个可以在编辑模式和普通模式下使用的快捷键,通常需要两个命令:

:nnoremap <C-s> :w<cr>
:inoremap <C-s> <esc>:w<cr>a

有没有办法将它们组合成一条可以同时作用于多种模式的指令?

答案1

:help map-table

         Mode  | Norm | Ins | Cmd | Vis | Sel | Opr | Term | Lang |
Command        +------+-----+-----+-----+-----+-----+------+------+
[nore]map      | yes  |  -  |  -  | yes | yes | yes |  -   |  -   |
n[nore]map     | yes  |  -  |  -  |  -  |  -  |  -  |  -   |  -   |
[nore]map!     |  -   | yes | yes |  -  |  -  |  -  |  -   |  -   |
i[nore]map     |  -   | yes |  -  |  -  |  -  |  -  |  -   |  -   |
c[nore]map     |  -   |  -  | yes |  -  |  -  |  -  |  -   |  -   |
v[nore]map     |  -   |  -  |  -  | yes | yes |  -  |  -   |  -   |
x[nore]map     |  -   |  -  |  -  | yes |  -  |  -  |  -   |  -   |
s[nore]map     |  -   |  -  |  -  |  -  | yes |  -  |  -   |  -   |
o[nore]map     |  -   |  -  |  -  |  -  |  -  | yes |  -   |  -   |
t[nore]map     |  -   |  -  |  -  |  -  |  -  |  -  | yes  |  -   |
l[nore]map     |  -   | yes | yes |  -  |  -  |  -  |  -   | yes  |

显示 Vim 有*map覆盖多种模式的命令,但没有覆盖所有模式的命令。因此,您可以使用以下命令覆盖所有模式:

  • :map
  • :map!
  • :tmap
  • :lmap

并且您必须:*map对正常模式和插入模式使用两个命令。

但是两个映射的 RHS 并不相同,因此即使:*map存在这样的命令,您也无法使用它。

答案2

我设法添加了一个快捷方式来使用Ctrl+应用更改S,我留下我的配置以防它有帮助

在此处输入图片描述

相关内容