空白とコメント行を一度に削除したい。空白行の削除に関して同様の質問をすでに見つけたので、空白行には次を使用します。
:g/^$/d
コメント行の場合:
:g/^#/d
これらの正規表現を1つにマージする方法はありますか?何かのようなもの
:g/^[$#]/d
しかし、明らかにそれはvimでは機能しません。
次のコマンドを試すことができます。
:g/^\(#\|$\)/d
または
:g/\v^(#|$)/d
$
[...]内のリテラル「$」に一致:help /$
します(ヘルプの入力)\|
交替用です\v
非常に魔法です(最小限のバックスラッシュエスケープ)これを解決する別の方法は、コメントされていない行を保持することです。
:g!/^[^#]/d
正規表現パターンを「または」演算子と組み合わせることができます\|
。例:
:g/^\(#.*\|$\)/d
ただし、この特定のケースでは、実際にはそれ#.*
をオプションとして指定する必要があります。例:
:g/^\(#.*\)\?$/d
最後に、ほとんどのコマンドをVIM(正規表現ではない)の「パイプ」演算子でチェーンできることに注意してください|
。たとえば、次のようになります。
:g /^#/d | /^$/d
次のことを試してください:
:g/^$/d | /^#/d
|
同時にマルチコマンドを組み合わせるためにあります。
kevsの回答を拡張する:
タブ付きの構成ファイルのコメントも削除したい場合は、次のようになります
。
server {
listen 80 default_server;
listen [::]:80 default_server;
# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;
...
あなたはこれを試すことができます:
:g/\v^(#|$|\t#)/d