0

関数内で通常の検索と置換を実行しようとしていますが、実行中にエラーが発生したと言い続けますが、ここに問題のある行があります

exec "%normal /1. row/\<CR>n3ddi\nDELIMITER $$\n\<esc>" 

エラーが発生する理由がわかりません

「1.行」を含む行を検索したい

次に、その行から 3 行下を削除し、DELIMITER $$ というテキストを追加します。

次に、バッファ内の次のものに移動します

4

2 に答える 2

3

でこれを行う理由がわかりません。これはnormal、機能するように思われる代替手段です。このバージョンでは、「1.row」行とその後の 2 行が削除されています。

exec "g/1. row/.,+2d|norm! ODELIMITER $$"

これは、「1.row」の後の 3 行を削除します。

exec "g/1. row/+1,+3d|norm! ODELIMITER $$"
于 2013-07-10T14:26:32.833 に答える
2

このようにする正当な理由があることを願っています。

  • がある場合%、「次の」( n) は意味がありません。とにかくバッファ全体で実行されます。
  • コマンドが実行された後は必要ありません\<ESC>.vimは通常モードのままです。

この行を試してください:

exec "%normal /1. row/\<CR>3ddi\r\r\rWHATEVER TEXT $$\r\r\r"
于 2013-07-10T13:56:14.897 に答える