vimエディターを使用して、ファイル(約1000行)の3行ごとに1行追加したかったのです。誰かが私を助けることができますか?
ありがとう、アリシャ
それを行うためのvim固有の正規表現があります
:%s/.*\n.*\n.*\n/\0\r/g
編集:改行以外が必要な場合は、テキストを \r の前に置くだけです (正規表現文字が含まれている場合は、適切に正規表現をエスケープします)
マクロを使用できます。完全なプロセスは次のようになります。
qq " start recording to register q (you could use any register from a to z)
o " insert an empty line below cursor
<Esc> " switch to normal mode
jjj " move the cursor 3 lines downward
q " stop recording
次に、開始行に移動して入力1000@q
し、マクロを 1000 回実行します。
" insert a blank line every 3 lines
:%s/\v(.*\n){3}/&\r
: .............. command
% .............. whole file
s .............. replace
/ .............. start pattern that we will replace
\v ............. very magic mode, see :h very-magic
(.*\n) ......... everything including the line break
{3} ............ quantifier
/ .............. start new pattern to replace
& .............. corresponds to the pattern sought in (.*\n)
\r ............. add line break
私はこれを行います:
:%s/^/\=(line(".")%4==0?"\n":"")/g
これは、要件が「* 700行ごとに新しい空白行を追加する*」に変更された場合に機能します:)「4」を変更するだけです
PSこれを行う必要がある場合、vimでは行いません。sed、awk、もっと簡単にできます。