「vimでタブやスペースだけの空白行を削除する方法」の版間の差分
提供: neovim/vim入門
(ページの作成:「vimでは、空白だけで構成される空白行を'''正規表現'''で簡単に削除できます。 '''読み方''' ;空白行:くうはくぎょう __TOC__ =...」) |
|||
(同じ利用者による、間の2版が非表示) | |||
行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で改行だけの空行を削除する方法]] をご参照下さい。 | ||
行44: | 行50: | ||
正規表現にあたる \s とは、改行以外の空白文字にマッチする[[vim]]の'''文字クラス'''です。 | 正規表現にあたる \s とは、改行以外の空白文字にマッチする[[vim]]の'''文字クラス'''です。 | ||
== 関連項目 == | == 関連項目 == | ||
+ | * [[vimの検索と置換]] | ||
* [[vimで改行だけの空行を削除する方法]] | * [[vimで改行だけの空行を削除する方法]] | ||
+ | * [[vimのパターン検索と置換で知っておくべきこと]] | ||
* [[メインページ]] | * [[メインページ]] | ||
<!-- vim: filetype=mediawiki | <!-- vim: filetype=mediawiki | ||
--> | --> |
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の文字クラスです。