5

私はVimscriptを学ぼうとしLearnVimscriptTHWていますが、の使用に出くわしました:execute and :normal

LVSTHWの例

:normal! gg/a<cr>

本から: 問題は、のnormal!ような「特殊文字」を認識しないこと<cr>です。これを回避する方法はいくつかありますが、最も使いやすく読みやすいのはですexecute

今、私が使用するとき、:execute "normal! gg/a<cr>"それは私のために働きません。a(char)現在のファイルを検索するのではなく、実行するだけggで何もしませんが、使用する:execute "normal! gg/a\r"と機能し、ファイル内のを正常に強調表示しchar aます。

私も以下の方法を試しましたが、どれもうまくいきませんでした。

:execute "normal! gg/a"<cr>
:execute normal! gg/a<cr>
:execute "normal! gg/a<cr>"<cr>

この本から、execute内部的に変換しているようです<cr> to \r。それで、なぜそれが私の場合には起こらないのか。

4

2 に答える 2

6

<cr>バックスラッシュでエスケープする必要があります。exe "norm! iHello\<cr>World"

于 2012-08-24T19:46:34.620 に答える
5

:help :executeこちらをご覧ください。<CR>式で使用する場合は、バックスラッシュでエスケープする必要があり<ESC>ます: \<CR>, \<Esc>… これらの表記法は、正しく理解している場合、マッピングでのみ有効です。

別のオプションは、キーを「文字通り」入力することです。

  • i挿入モードに入ります。コマンド ラインを使用している場合は必要ありません
  • <C-v>
  • <CR>

^Mのように見え、エスケープする必要のない単一の文字を取得します。

于 2012-08-24T19:53:25.237 に答える