回答:
:%s/$/\*/g
うまくいくはずです。そうすべきである:%s/$/*/g
としてMrWigglesが正しく指摘しています。
g
フラグは不要です。
:searchコマンドよりもさらに短い:
:%norm A*
これが意味するところは:
% = for every line
norm = type the following commands
A* = append '*' to the end of current line
:
。これにより、次のコマンドを事前に入力:'<,'>
できます:'<,'>norm A*
I
代わりに使用します:%norm I*
また:
:g/$/norm A*
また:
gg<Ctrl-v>G$A*<Esc>
g
はglobal
、一致するすべての行で何かを実行するコマンドです。$
すべての行に一致します。^
またはかもしれません.*
。normは、コマンドモードで通常使用するコマンドを実行します。つまり、行末にA*
追加*
することを意味します。
私は、ビジュアルブロックモードを使用する方が、この種のことを処理するためのより優れた、より用途の広い方法だと思います。次に例を示します。
This is the First line.
This is the second.
The third.
「Hello world」を挿入します。(スペース+クリップボード)これらの各行の終わり:
結果は次のとおりです。
This is the First line. Hello world.
This is the second. Hello world.
The third. Hello world.
jj
ヒットG
することができます。これはj
、最後の行に到達するまで押すのが現実的ではない大きなファイルで役立ちます。
1つのオプションは次のとおりです。
:g/$/s//*
これは、すべての行の終了アンカーを見つけ、それをに置き換え*
ます。私は「代用」と言いますが、実際にはアンカーは通常の文字ではなく特別なものであるため、それは追加の詳細です。詳細については、Power of g-Examplesを参照してください。
:%s / \ n / * \ r / g
あなたの最初のものはどこでも正しいですが、Vimは何らかの理由で異なる改行処理をしなければなりません。
:s///
、\n
ヌル文字に対応します。セクション:help sub-replace-special
が関連しています。