Vimで空白行を削除するには、どのコマンドを実行できますか?
Vimで空白行を削除するには、どのコマンドを実行できますか?
回答:
:g/^$/d
:g
正規表現に一致する行でコマンドを実行します。正規表現は「空白行」で、コマンドは:d
(削除)です
:%!cat -s
選択の可能性があります
それを見つけた、それは:
g/^\s*$/d
の簡単な説明
:g
:[range]g/pattern/cmd
これは、パターンに一致する各行に対してExコマンドcmdを実行することにより、指定された[範囲](デフォルトのファイル全体)に作用します(Exコマンドは、削除などのコロンで始まるコマンドです)。cmdを実行する前に、現在の行に " "が設定されています。
:d
.
:v/./d
または
:g/^$/d
または
:%!cat -s
以下は、複数の空白行のみを削除し(それらを単一の空白行に減らす)、単一の空白行をそのまま残すために使用できます。
:g/^\_$\n\_^$/d
\_$
は、パターン内で使用できる行末を意味します(パターン$
の最後でのみ使用できます)。同じことは、行の開始\_^
を意味し、パターン内の任意の場所で使用できます。したがって、パターンは空の行、改行、および空の行に一致します。Vim正規表現のヘルプページを参照してください。
:g/^$/,/./-j
どうですか:
:g/^[ \t]*$/d
このページでいくつかの回答を試しましたが、多くの回答がうまくいきませんでした。たぶん私はWindows 7でVimを使用しているためです(モックしないでください、私を残念に思ってください:p)?
これが、Windows 7のVimで動作する最も簡単な方法です。
:v/\S/d
Vim Wikiaの長い回答は次のとおりです:http : //vim.wikia.com/wiki/Remove_unwanted_empty_lines
:g/^\s*$/d
^ begin of a line
\s* at least 0 spaces and as many as possible (greedy)
$ end of a line
ペースト
:command -range=% DBL :<line1>,<line2>g/^\s*$/d
.vimrcで、vimを再起動します。コマンド:5,12DBLを使用すると、5行目から12行目までのすべての空白行が削除されます。私の答えは最良の答えだと思います!
これは私のために働きました:
:%s/^[^a-zA-Z0-9]$\n//ig
基本的に、数字や文字がない行をすべて削除します。リストのすべての項目に文字が含まれていたため、空白行がすべて削除されました。