Regex 如何用替换和替换注释vim中的几行
假设我有一大堆台词Regex 如何用替换和替换注释vim中的几行,regex,vim,Regex,Vim,假设我有一大堆台词 echo "<br/>"; echo "<pre>"; error_log("whatever"); echo "</pre>"; echo "<br/>"; #echo "<br/>"; #echo "<pre>"; #error_log("whatever"); #echo "</pre>"; #echo "
echo "<br/>";
echo "<pre>";
error_log("whatever");
echo "</pre>";
echo "<br/>";
#echo "<br/>";
#echo "<pre>";
#error_log("whatever");
#echo "</pre>";
#echo "<br/>";
s/^\([\s\t]*\)/\1#/
echo“
”;
回声“;
错误日志(“无论什么”);
回声“;
回声“
”;
我想把它们注释掉,我可以运行这个命令
/^/#
但它把#符号放在行首,而不是第一个单词的前面,所以看起来像下面的几行
#echo“
”;
#回声“;
#错误日志(“无论什么”);
#回声“;
#回声“
”;
如何使它看起来更像下面的代码
#echo“
”;
#回声“;
#错误日志(“无论什么”);
#回声“;
#回声“
”;
什么是合适的注册表项?您应该能够使用以下各项:
此正则表达式匹配行开头的任何制表符或空格,然后替换为整个匹配(
&
),后跟一个
您可以执行以下操作:
这会将所有空格和制表符放入变量
\1
中,并在
符号之前还原它们我要做的一件事是转到行的开头(^
),点击Ctrl+v
,然后输入行号,后跟gg
,然后执行Shift-I
,输入#
并按ESC
。我相信有更好的方法,但对我来说似乎很有效:)有很多方法。这里有一个:
:”另一个:
用V
使用:normal
在每一行上执行正常模式命令,:'另一行:
使用qx
启动宏
在行上第一个可打印字符的正前方插入一个八进制字符,返回到正常模式,然后用I#j
使用q
停止录制
使用5@x
对于评论,我会依赖插件;许多都是可配置的,并为多种编程语言提供多种注释样式,所有这些都带有一个简短的映射。两个流行的是and。我希望我的编辑是正确的。或者:'ib:zs在第二个语句中做了什么?@CodeCrack,\zs
前面的内容用于匹配,但没有捕获;仅捕获\zs
之后的内容(以及可选的\ze
)。请参见:help\zs
。
s/^[ \t]*/&#/
s/^\([\s\t]*\)/\1#/
:'<,'>s/^\s*/\0#