Vimで空白行を削除するには、どのコマンドを実行できますか?
14 に答える
:g/^$/d
:g
正規表現に一致する行でコマンドを実行します。正規表現は「空白行」で、コマンドは:d
(削除)です
見つけた、それは:
g/^\s*$/d
出典: vim wikiaのgの力
の簡単な説明
:g
:[range]g/pattern/cmd
これは、パターンに一致する各行に対してEx コマンドcmdを実行することにより、指定された[範囲] (デフォルトではファイル全体)に対して作用します(Ex コマンドは、deleteなどのコロンで始まるコマンドです)。cmdを実行する前に、" " は現在の行に設定されます。
:d
.
:v/./d
また
:g/^$/d
また
:%!cat -s
以下を使用して、複数の空白行のみを削除し (単一の空白行に減らし)、単一の空白行をそのまま残すことができます。
:g/^\_$\n\_^$/d
すべての空白行を削除する方法
:%s,\n\n,^M,g
(これを複数回実行すると、すべての空の行がなくなります)
SINGLE空行を残してすべての空白行を削除する方法
:%s,\n\n\n,^M^M,g
(これを複数回行う)
最大で2つの空の行を残してすべての空白行を削除する方法、
:%s,\n\n\n\n,^M^M^M,g
(これを複数回行う)
^M を入力するには、windows で control-Q と control-M を使用する必要があります
どうですか:
:g/^[ \t]*$/d
vimでperlを操作する:
:%!perl -pi -e s/^\s*$//g
この関数は、2 つ以上の空白行のみを削除し、以下の行を vimrc に入れ、\d を使用して関数を呼び出します
fun! DelBlank()
let _s=@/
let l = line(".")
let c = col(".")
:g/^\n\{2,}/d
let @/=_s
call cursor(l, c)
endfun
map <special> <leader>d :keepjumps call DelBlank()<cr>
: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 行目までの空白行がすべて削除されます。私の回答がベストアンサーだと思います!
このページのいくつかの回答を試しましたが、多くの回答がうまくいきませんでした。たぶん、私が Windows 7 で Vim を使用しているからでしょう (嘲笑しないでください。私に同情してください:p)?
Windows 7 の Vim で動作する、私が見つけた最も簡単なものを次に示します。
:v/\S/d
Vim Wikia に関するより長い回答は次のとおりです。http://vim.wikia.com/wiki/Remove_unwanted_empty_lines
テキストに二重の行間が含まれている場合、このコマンドは二重の間隔を削除し、既存の繰り返し空白行を単一の空白行にマージします。行の先頭に ^^^ の一時的な区切り文字を使用するため、これがコンテンツと衝突する場合は別のものを選択してください。空白のみを含む行は空白として扱われます。
%s/^\s*\n\n\+/^^^\r/g | g/^\s*$/d | %s/^^^^.*
これは私のために働いた:
:%s/^[^a-zA-Z0-9]$\n//ig
基本的に、数字や文字を含まないすべての行を削除します。リスト内のすべてのアイテムに文字が含まれていたため、すべての空白行が削除されました。