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