[英]Vim, removing blank and commented lines in one regex
我想一次删除空白和注释。 我已经找到了关于删除空行的类似问题,所以对于我使用的空行:
:g/^$/d
并为评论行:
:g/^#/d
我很好奇有没有办法合并这些正则表达式? 就像是
:g/^[$#]/d
但显然它在vim中不起作用。
您可以尝试以下命令:
:g/^\(#\|$\)/d
要么
:g/\v^(#|$)/d
$
匹配[...]内的文字'$'(类型:help /$
for help) \\|
是为了交替 \\v
非常神奇(最小的反斜杠逃逸) 另一种解决方法是保留未注释的行:
:g!/^[^#]/d
请尝试以下方法:
:g/^$/d | /^#/d
|
是否可以同时组合多个命令。
您可以将正则表达式模式与“或”运算符组合: \\|
,例如:
:g/^\(#.*\|$\)/d
但是,在这种特殊情况下,您实际上只需要指定#.*
是可选的,例如:
:g/^\(#.*\)\?$/d
最后,要知道,你可以链在一起,最有VIM的(不是正则表达式的)“管道”操作命令,也|
,例如:
: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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.