我在
http://rayninfo.co.uk/vimtips.html发生了这个充满超级有用且相当神秘的vim技巧的页面.我已经尝试了其中的一些,我理解发生了什么,足以能够在我脑海中正确地解析它,以便我以后可以重新创建它.一个我很难让我的脑袋缠绕,但是以下两个命令可以从每一行的末尾删除所有空格
:%s= *$== : delete end of line blanks :%s= \+$== : Same thing
我正在将%s解释为文件中每一行的字符串替换,但之后我迷失了看起来像s和regex的一些粗略变化.我习惯于看到和使用:s / regex / replacement.但上述情况令人困惑.
以上命令在英语中是什么意思,一步一步?
正则表达式分隔符不必是斜杠,它们也可以是其他字符.如果您的搜索或替换字符串包含斜杠,这很方便.在这种情况下,我不知道为什么他们使用等号而不是斜线,但你可以假装等于是斜线:
:%s/ *$// :%s/ \+$//
那有意义吗?第一个搜索空格,后跟零个或多个空格,第二个搜索一个或多个空格.每个都用$固定在该行的末尾.然后替换字符串为空,因此删除空格.
实际上,我理解你的困惑.如果你看一下:help:s你必须向下滚动几页才能找到这个笔记:
*E146*
Instead of the
'/'
which surrounds the pattern and replacement string,you
can use any other character,but not an alphanumeric character,'\'
,'"'
or
'|'
. This is useful if you want to include a'/'
in the search pattern or
replacement string. Example:06001