web-dev-qa-db-ja.com

空白行を削除する

Vimの空白行を削除するために実行できるコマンドは何ですか?

641
:g/^$/d

:gは正規表現に一致する行でコマンドを実行します。正規表現は '空白行'、コマンドは:d(削除)です

1173
soulmerge

それが見つかりました、それはそれです:

g/^\s*$/d

出典: vim wikiaでの g の累乗

173
:v/./d

または

:g/^$/d

または

:%!cat -s
49
mandaleeka

以下は、複数の空白行だけを削除し(それらを単一の空白行にする)、単一の空白行をそのままにするために使用できます。

:g/^\_$\n\_^$/d
42
Draemon
  1. すべての空白行を削除する方法

    :%s,\n\n,^M,g
    

    (これを何度も実行すると、すべての空行が消えてしまいます)

  2. sINGLE空行を残してすべての空白行を削除する方法

    :%s,\n\n\n,^M^M,g
    

    (これを複数回)

  3. 空白行を2行残してすべての空白行を削除する方法AT MAXIMUM、

    :%s,\n\n\n\n,^M^M^M,g
    

    (これを複数回)

^ Mを入力するためには、Windowsでcontrol-Qとcontrol-Mを制御する必要があります。

13
gauge00

どうですか?

:g/^[ \t]*$/d
6
anon

この関数は、2行以上の空白行を削除し、vimrcに以下の行を入れてから、\ dを使ってfunctionを呼び出します。

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>
5
SergioAraujo

これは私のために働く

:%s/^\s*$\n//gc

5
allenhwkim

vimでPerlを操作します。

:%!Perl -pi -e s/^\s*$//g

5
niejieqiang

私はこのページでいくつかの答えを試したが、それらの多くは私のために働かなかった。 Windows 7上でVimを使用しているのではないでしょうか(嘲笑しないでください、残念ですが:p)。

これが私が見つけたWindows 7のVim上で最も簡単なものです:

:v/\S/d

これがVim Wikiaに関する長い答えです: http://vim.wikia.com/wiki/Remove_unwanted_empty_lines

4
Pokey
: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を再起動してください。 command:5,12DBLを使用すると、5行目から12行目までのすべての空白行が削除されます。私の答えが最高の答えだと思います。

3
cn8341

押す delete 空白行を削除するには、挿入モードでキーを押します。

3
akp

テキストのスペースが2行になった場合は、このコマンドによって2行のスペースが削除され、既存の繰り返し空白行が1つの空白行にマージされます。行頭に^^^の一時的な区切り文字を使用するので、これがコンテンツと衝突する場合は別のものを選択してください。空白のみを含む行は空白として扱われます。

%s/^\s*\n\n\+/^^^\r/g | g/^\s*$/d | %s/^^^^.*
2
MisterW

これは私のために働いた:

:%s/^[^a-zA-Z0-9]$\n//ig

それは基本的に数字や文字を持たないすべての行を削除します。私のリストのすべての項目に文字があったので、それはすべての空白行を削除しました。

1
user1481441