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