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

提供: neovim/vim入門
移動: 案内検索
 
行50: 行50:
 
正規表現にあたる \s とは、改行以外の空白文字にマッチする[[vim]]の'''文字クラス'''です。
 
正規表現にあたる \s とは、改行以外の空白文字にマッチする[[vim]]の'''文字クラス'''です。
 
== 関連項目 ==
 
== 関連項目 ==
 +
* [[vimの検索と置換]]
 
* [[vimで改行だけの空行を削除する方法]]
 
* [[vimで改行だけの空行を削除する方法]]
 
* [[vimのパターン検索と置換で知っておくべきこと]]
 
* [[vimのパターン検索と置換で知っておくべきこと]]

2017年6月10日 (土) 13:05時点における最新版

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

関連項目