vi
このパターンでファイルを作成する必要があります。最初の行を使用してこれらの行を自動生成する方法はありますか
run 1 end
run 2 end
run 3 end
run 4 end
run 5 end
run 6 end
私はいつでもこれをExcelで実行してからテキストファイルに変換してからに切り替えることができますが、Excelに戻す必要がないようにそれvi
を行う方法があるかどうか知りたいと思っていました.vi
:help ctrl-a
^a は、マクロで使用できるカーソル位置の数値をインクリメントします。あなたの場合、最初の行があり、カーソルがその上にあると仮定します:
qaYpw^aq4@a
トリックを行う必要があります。これは、ヘルプ ページで概説されている手法でありw
、カーソルを番号に移動するように変更されています。それを分解する:
qa
レジスタにマクロの記録を開始するa
Y
現在の行をヤンクするp
ヤンク バッファを現在の位置の下に置き、新しい行の列 1 に移動しますw
1 単語進む (数字まで)^a
数を増やすq
マクロの記録を停止する<count>@a
マクロを <count> 回適用する
もう 1 つの手法は、外部ツールを使用することです。たとえば、すでに行があり、カーソルがその上にある場合:
!!awk '1;{for(i=0;i<5;i++){$2+=1; print}}'
:put!=map(range(1,6),'\"run \".v:val.\" end\"')
ウィリアムの答えはとてもいいです。別の解決策を投稿します(もう少し複雑です)。最初の行が既にあるとします
Y6P
:let g:I=1
:%g/\d/s/\d/\=g:I/|let g:I=g:I+1
:help sub-replace-\=
)