小编典典

Vim 中的 remap、noremap、nnoremap 和 vnoremap 映射命令有什么区别?

all

Vim 中的、、remap和映射命令有什么区别?noremap``nnoremap``vnoremap


阅读 327

收藏
2022-02-25

共1个答案

小编典典

remap是一个使映射递归工作的 选项。 默认情况下它是打开的,我建议你保持这种状态。其余的是 映射命令 ,如下所述:

:map并且:noremap是各种映射命令的 递归非递归版本。 例如,如果我们运行:

:map j gg           (moves cursor to first line)
:map Q j            (moves cursor to first line)
:noremap W j        (moves cursor down one line)

然后:

  • j将映射到gg.
  • Q 将被映射到gg,因为j将被扩展为递归映射。
  • W将被映射到j(而不是gg),因为j不会为非递归映射扩展。

现在记住 Vim 是一个 模态编辑器 。它有 普通 模式、 视觉 模式和其他模式。

对于这些映射集合中的每一个,都有一个正常模式、可视模式、选择模式和操作员模式下工作的映射 ( :mapand
:noremap),一个在正常模式下工作 ( :nmapand :nnoremap),一个在视觉模式下工作 ( :vmapand
:vnoremap),依此类推。

有关这方面的更多指导,请参阅:

:help :map
:help :noremap
:help recursive_mapping
:help :map-modes
2022-02-25