Vimのmapとnoremapの違い

':map'はrecursive, ':noremap'はnon-recursiveなマッピングを行うコマンドということですが 今ひとつピンとこないのでググってました。 そして見つけたのが ここ。 ここの例が最も簡潔でわかりやすかったのでメモ。

:map j gg
:map Q j
:noremap W j

  • 'j'は'gg'(ファイル先頭へジャンプ)にマッピング。
  • 'Q'は'j'にマッピングされるが、'j'はさらに'gg'へと展開される。つまり'Q'は'gg'にマッピングされた状態。
  • 'W'は'j'(1行下へ移動)にマッピングされ、それ以上展開されない。