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

提供: neovim/vim入門
2017年6月8日 (木) 00:31時点におけるDaemon (トーク | 投稿記録)による版

移動: 案内検索
スポンサーリンク

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文字クラスです。

関連項目




スポンサーリンク