*
Vim の各行の末尾に追加したい。
コードを試してみましたが失敗しました
:%s/\n/*\n/g
:search コマンドよりもさらに短い:
:%norm A*
これが意味することは次のとおりです。
% = for every line
norm = type the following commands
A* = append '*' to the end of current line
:%s/$/\*/g
動作するはず:%s/$/*/g
です。
ビジュアル ブロック モードを使用することは、この種のことを処理するためのより優れた、より用途の広い方法だと思います。次に例を示します。
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.
( Vim.Wikia.com の例)
また:
:g/$/norm A*
また:
gg<Ctrl-v>G$A*<Esc>
1 つのオプションは次のとおりです。
:g/$/s//*
これにより、すべての行末アンカーが検出され、 に置き換えられ*
ます。「代替」と言っていますが、実際には、アンカーは通常の文字ではなく特別なものであるため、実際には追加のようなものです。詳細については、 g のべき乗 - 例 を参照してください。
...そして、各行の先頭に * を追加 (先頭に追加) するには、
%s/^/*/g
:%s/\n/*\r/g
あなたの最初のものはどこでも正しいですが、Vimは何らかの理由で異なる改行処理をしなければなりません.
%s/\s*$/\*/g
これでうまくいき、先頭のスペースが確実に無視されるようになります。