假设我有很多行
echo "<br/>";
echo "<pre>";
error_log("whatever");
echo "</pre>";
echo "<br/>";
我要评论它们,我可以运行这个命令
S / ^ /#
但它将#符号放在行的开头而不是在第一个单词的前面,所以它看起来像下面的行
# echo "<br/>";
# echo "<pre>";
# error_log("whatever");
# echo "</pre>";
# echo "<br/>";
如何让它看起来更像下面的代码
#echo "<br/>";
#echo "<pre>";
#error_log("whatever");
#echo "</pre>";
#echo "<br/>";
适当的注册表是什么?
答案 0 :(得分:2)
有很多方法。这是一个:
:'<,'>s/^\s*/\0#
答案 1 :(得分:2)
另一个:
用V<motion>
使用:normal
在每一行:'<,'>norm I#
执行普通模式命令。
自动添加范围,因此完整序列为V4j:norm I#
。
答案 2 :(得分:1)
您应该可以使用以下内容:
s/^[ \t]*/&#/
此正则表达式匹配行开头的所有制表符或空格,然后替换为整个匹配项(&
),后跟#
。
答案 3 :(得分:1)
我做的一件事就是转到行的开头(^
),点击Ctrl+v
,然后键入行号,然后键入gg
,然后执行Shift-I
},键入#
并按ESC
。我确信有更好的方法,但它似乎对我有用:)
答案 4 :(得分:1)
另一个:
使用qx
启动宏。
在该行的第一个可打印字符前插入一个octothorpe,返回普通模式并使用I#<Esc>j
使用q
停止录制。
使用x
执行宏5@x
次。
答案 5 :(得分:1)
对于评论进出,我会依赖插件;许多都是可配置的,并为多种编程语言提供多种注释样式,所有这些都具有短映射。两个流行的是NERD_Commenter和tComment。
答案 6 :(得分:0)
你可以这样做:
s/^\([\s\t]*\)/\1#/
这会将所有空格和标签变为\1
变量并在#
符号