4

vimで既存のマッピングを編集するにはどうすればよいですか? 標準のマッピング コマンドの 1 つを使用して、.vim ファイルにマッピングを設定します。

map ^A o]]></code>^M<GRD minus="" summary="">^M^M<p></p>^M^M</GRD>^M^M<code><![CDATA[0kkkkkk5ehi

この長いコマンドを編集して、コードの代わりに「matlab」を使用したい、例えば:

map ^A o]]></matlab>^M<GRD minus="" summary="">^M^M<p></p>^M^M</GRD>^M^M<matlab><![CDATA[0kkkkkk5ehi

ただし、.vim ファイルは編集したくありません。元のマッピングを再度使用します。現在のセッションのマッピングを変更したいだけです。:map ^A を試しましたが、これは現在のマッピングを表示するだけで、表示されたテキストをコピーできません。

PS ^M および ^A 文字は Ctrl-Q Ctrl-M などで挿入されることに注意してください。

4

2 に答える 2

6

現在のセッションのみのマッピングを微調整することは珍しいことです。おそらくそれがサポートが不十分な理由です。実際にはsessionについてではなく、Matlab filetypeについて心配していると思います。そのために、優れたサポートがあります。'filetype'が として検出された場合matlab、バッファローカル マッピング バリアントを に配置できます~/.vim/after/ftplugin/matlab.vim

map <buffer> ^A ...

直接編集

元の計画に固執したい場合は、次のようにします。

  1. 構成を開く::split ~/.vimrc
  2. マッピングをその場で編集する
  3. 次の行をヤンクします。yy
  4. 実行して現在のセッションを有効にします。:@"
  5. 保存せずに編集を中止します。:bdelete!

より一般的な解決策として、元の:map ^Aコマンドの出力を 経由で取得し:redir、それ:put:newスクラッチ バッファに取得し、最後にそれを取得することもできます:source。手動の手順と入力が増えますが、カスタム コマンドによって自動化できます。これが頻繁に必要な場合は価値があります。

于 2014-12-31T17:41:44.150 に答える