3

ではvimコマンド モードキーはexcommand:map <key> <macro>を介してマッピングでき、挿入モードキーは を介し​​てマッピングできます:map! <key> <macro>。マッピング後、コマンドモードキーと挿入モード キーからマッピングを削除するコマンドはunmap <key>unmap! <key>それぞれ と です。

これは、コマンド モードキーではうまく機能しますが、挿入モードキーでは、キー展開はexコマンド ライン プロンプトでも機能します。キーを入力しようとすると、マクロ展開が実行されてしまい、unmap!コマンドの引数が正しくない ( E474: Invalid Argument) または多分コマンドは、意図したもの ( ) とは異なるキーのマッピングを解除しようとする場合がありますE31: No such mapping

で挿入モードにマップされたキーを正しく削除するにはどうすればよいvimですか?

4

1 に答える 1

3

キーのマッピング中に、などの特殊文字や特定のコントロール キーCTRL+Vをエスケープするために使用できます。ENTERESC

マップされた挿入モード キーを使用する場合も同じことが当てはまります。CTRL+Vテキストの編集中とexコマンド ライン プロンプトへのコマンドの書き込み中の両方で、キーを前に置くとエスケープできます。

たとえば、 insert-key が何らかのマクロにマップされていて、ユーザーがマップを解除したい場合、マクロ展開を避けるために、コマンドを+記述するときにキーをエスケープする必要があります。ex

:unmap!+ CTRL+V( を表示^) +<key>

insert-mode+でテキストを編集中にテキストに通常の文字が必要な場合も、同じことができます。

于 2016-12-19T17:53:52.670 に答える