我通常 d^用来删除行的开头.
但是如果该行以空格或制表开头,则删除不会一直到行开始.
例:
foo foo
该行以两个空格开头,光标位于两个"foo"之间
d^ 删除第一个foo,但不删除它之前的两个空格.
它在大多数时候显然很有用,但是如果我想删除所有内容呢?
可以解释为什么这个小的perl脚本的输出是"foofoo"(而不是"foo")?
#!/usr/bin/perl -w
my $var="a";
$var=~s/.*/foo/g;
print $var."\n";
Run Code Online (Sandbox Code Playgroud)
没有g选项它可以工作,虽然它会,但为什么全局选项匹配模式两次?
在bash中,输出是"foo",如预期的那样
echo "a"|sed -e "s/.*/foo/g"
Run Code Online (Sandbox Code Playgroud)
任何解释将不胜感激.