Nvim の :help
ページは、こちらで ソースから tree-sitter-vimdoc パーサーを使用して生成されました。
:s/2001/2002/g次に、「gv」を使用して同じテキストを再度選択します。カーソルがどこにあっても問題ありません。次に、「:s/2000/2001/g」を使用して2回目の変更を行います。明らかに、これらの変更を数回繰り返すことができます。
CTRL-A
コマンドを使用できます。上記のテキストと同じテキストを使用し、年を検索します。/19[0-9][0-9]\|20[0-9][0-9]次に、
CTRL-A
を押します。年は1つ増えます。CTRL-A
を繰り返します(「.」は入力が少し速いです)。表示されるすべての年について「n」と「.」を繰り返します。CTRL-A
の前に数値を付加することで実行できます。次のリストがあるとします。3 CTRL-A「1.」は「4.」に変更されます。ここでも、「.」を使用して他の数値に対してこれを繰り返すことができます。
CTRL-X
コマンドは、同様の方法で減算を行います。CTRL-A
および CTRL-X
の動作は、'nrformats' の値によって異なります。たとえば、次を使用する場合:set nrformats+=octal「007」の上で
CTRL-A
を押すと、「007」が8進数として認識されるため、「010」に増えます。:args *.c
:argdo %s/\<x_cnt\>/x_counter/ge | update「:argdo」コマンドは、別のコマンドである引数を取ります。そのコマンドは、引数リスト内のすべてのファイルで実行されます。後続の「%s」置換コマンドは、すべての行で機能します。これにより、「\<x_cnt\>」で単語「x_cnt」が検索されます。「\<」と「\>」は、単語全体のみを一致させるために使用され、「px_cnt」または「x_cnt2」は一致しません。置換コマンドのフラグには、同じ行で「x_cnt」のすべての出現箇所を置換するための「g」が含まれています。「e」フラグは、「x_cnt」がファイルに表示されない場合にエラーメッセージを回避するために使用されます。それ以外の場合、「:argdo」は「x_cnt」が見つからなかった最初のファイルで中止されます。「|」は2つのコマンドを区切ります。次の「update」コマンドは、ファイルが変更された場合にのみ書き込みます。「x_cnt」が「x_counter」に変更されていない場合は、何も起こりません。
%s/-person-/Jones/g write tempfile quitこれらのコマンドをファイル「change.vim」に入れます。次に、バッチモードでエディターを実行するには、次のシェルスクリプトを使用します。
for file in *.txt; do vim -e -s $file < change.vim lpr -r tempfile donefor-doneループは、間の2行を繰り返すシェル構造であり、その間、$file変数は毎回異なるファイル名に設定されます。2行目は、ファイル$fileでExモード(-e引数)でVimエディターを実行し、ファイル「change.vim」からコマンドを読み取ります。-s引数は、Vimをサイレントモードで動作させるように指示します。言い換えれば、:promptやその他のプロンプトを出力し続けないでください。「lpr -r tempfile」コマンドは、結果の「tempfile」を印刷して削除します(-r引数がそれを行います)。
ls | vim -これにより、最初にテキストをファイルに保存せずに、「ls」コマンドの出力を編集できます。標準入力を使用してテキストを読み取る場合は、「-S」引数を使用してスクリプトを読み取ることができます。
producer | vim -S change.vim -
vim -s script file.txt ...
<Enter>
キーを押すこととして解釈されることを忘れないでください。ノーマルモードでは、カーソルは次の行に移動します。スクリプトを作成するには、スクリプトファイルを編集してコマンドを入力できます。結果がどうなるかを想像する必要がありますが、少し難しい場合があります。別の方法は、手動で実行中にコマンドを記録することです。これはその方法です。vim -w script file.txt ...入力されたすべてのキーが「script」に書き込まれます。小さな間違いをした場合は、続行して後でスクリプトを編集することを覚えておけば大丈夫です。「-w」引数は、既存のスクリプトに追加します。これは、スクリプトを少しずつ記録したい場合に便利です。最初からやり直したい場合は、「-W」引数を使用します。これにより、既存のファイルが上書きされます。