「vimでタブやスペースだけの空白行を削除する方法」の版間の差分

提供: neovim/vim入門
移動: 案内検索
行36: 行36:
 
== タブやスペースや改行だけの空白行を削除する方法 ==
 
== タブやスペースや改行だけの空白行を削除する方法 ==
 
タブやスペースと改行だけの行を消すコマンドは以下の通りです。
 
タブやスペースと改行だけの行を消すコマンドは以下の通りです。
 +
<syntaxhighlight lang="vim">
 +
:v/\S/d
 +
</syntaxhighlight>
 +
もしくは
 
<syntaxhighlight lang="vim">
 
<syntaxhighlight lang="vim">
 
:g/^\s*$/d
 
:g/^\s*$/d
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
になります。
 +
 
文字クラスを0回以上マッチとすることで ^$ にもマッチするため、改行だけの行も削除できるようになります。
 
文字クラスを0回以上マッチとすることで ^$ にもマッチするため、改行だけの行も削除できるようになります。
 
純粋に '''改行だけの行''' を削除したい場合は、 [[vimで改行だけの空行を削除する方法]] をご参照下さい。
 
純粋に '''改行だけの行''' を削除したい場合は、 [[vimで改行だけの空行を削除する方法]] をご参照下さい。

2017年6月8日 (木) 00:31時点における版

vimでは、空白だけで構成される空白行を正規表現で簡単に削除できます。

読み方

空白行
くうはくぎょう

概要

テキストファイルに

  • タブだけの行
  • スペースだけの行
  • スペースとタブだけの行

のような空白行(空白だけで構成される行)を削除したいときがあります。

そんな空行を vim で簡単に消す方法を紹介します。

タブやスペースだけの空白行を削除する方法

タブやスペースだけの行を消すコマンドは以下の通りです。

:g/^\s\+$/d

gはglobalコマンドで、/^\s\+$/ のパターンを探し、マッチした行を コマンド d で削除します。 \s は文字クラスで、改行以外の空白文字にマッチし、スペースやタブなどにマッチします。 vimの正規表現(nomagicモード)では、1以上を表す + は、バックスラッシュでエスケープする必要があり、 \+ となっています。

abc def
(タブ)(タブ)
ghi jkl
(スペース)(タブ)
(スペース)(スペース)
mno	p

みたいなテキストがあったときに、上記コマンドを実行すると

abc def
ghi jkl
mno	p

といった形いなります。

タブやスペースや改行だけの空白行を削除する方法

タブやスペースと改行だけの行を消すコマンドは以下の通りです。

:v/\S/d

もしくは

:g/^\s*$/d

になります。

文字クラスを0回以上マッチとすることで ^$ にもマッチするため、改行だけの行も削除できるようになります。 純粋に 改行だけの行 を削除したい場合は、 vimで改行だけの空行を削除する方法 をご参照下さい。

\s の意味

正規表現にあたる \s とは、改行以外の空白文字にマッチするvim文字クラスです。

関連項目