如果你有一系列行(不是整个文件),以一些可变数量的空格开头,后跟一些字母字符:
aaaa
bbbb
cccc
DDDD
你想转换成这个:
# aaaa
# bbbb
# cccc
# DDDD
你将如何在Vi中做到这一点?
我正在思考以下几点:
s / [a-z,A-Z] /#(某事)/
但我不确定如何表达(某事)与发现匹配的内容。
感谢。
答案 0 :(得分:2)
:g/^ *[a-zA-Z]/s/^/# /
g
代码/^ *[a-zA-Z]/
空格+ alpha s/^/# /
用#
要直接回答您的问题,(something)
应为&
。显然,你的表达式会匹配第一个字母字符,无论它出现在哪一行,并在那里插入#
。
答案 1 :(得分:1)
修复您的sed命令(您可以为您的环境将[{1}}替换为[a-zA-Z])
\w
sed 's/\(^ \w*\)/#\1/' file
表示\1
中的上一个匹配项,如果有多对( )
,请使用序列号( )
,\2
如果您需要在vi / vim中执行此操作,请运行:
\3
答案 2 :(得分:0)
在混音中再添加一个选项::%s/^\s\+/&# /
/^\s\+
匹配行首的一个或多个空格,&
将替换为匹配的字符串,然后将#
添加到替换