Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 关于Vim正则表达式删除每行中的尾随空格_Regex_Vim - Fatal编程技术网

Regex 关于Vim正则表达式删除每行中的尾随空格

Regex 关于Vim正则表达式删除每行中的尾随空格,regex,vim,Regex,Vim,为什么上面的正则表达式将任何一行末尾的>=1个空格压缩为一个空格,而不是0个空格?您的正则表达式可以工作。运行该行后,在该行的末尾没有剩余空间 您可能看到的是,如果使用 :%s/[]\+$//g-注意\+而不是*。增量突出显示仍然存在,因为*始终匹配,即使是零空格 要删除突出显示,请键入:noh(简称:nohlsearch) 仅供参考::%s/[]*$//g相当于:%s/*$//g每次在执行上述命令以去除尾随空格后,我都会额外运行:%s/[]//g。当我尝试在我的vim(在Mac Snow Le

为什么上面的正则表达式将任何一行末尾的>=1个空格压缩为一个空格,而不是0个空格?

您的正则表达式可以工作。运行该行后,在该行的末尾没有剩余空间

您可能看到的是,如果使用
:%s/[]\+$//g
-注意
\+
而不是
*
。增量突出显示仍然存在,因为
*
始终匹配,即使是零空格

要删除突出显示,请键入
:noh
(简称
:nohlsearch


仅供参考:
:%s/[]*$//g
相当于
:%s/*$//g

每次在执行上述命令以去除尾随空格后,我都会额外运行
:%s/[]//g
。当我尝试在我的vim(在Mac Snow Leopard上运行)中提供的正则表达式时,我的尾随空格为零。也就是说,您可以尝试将*更改为a+(因为用“”替换“”没有任何意义),但我怀疑这是否会对您有所帮助。谢谢。这确实是“残留”的突出显示。这些不是真正的空格。另一种指定空格的方法是\s而不是[],它将同时匹配制表符和空格。您也不需要g选项,因为您每行只进行一次更换。你最终会得到:%s/\s\+$//添加g不会有什么坏处,我一直这样做只是出于习惯:)@Neg关于
g
的观点很好。我也一直这么做,但严格来说这是多余的。@Neg_EV纯空间(
%sm/\+$/
)也可以工作。我从没见过尾随标签。
:%s/[ ]*$//g