我正在尝试查找Twitter句柄的所有实例,并在它们周围包装锚标记。
:%s/\(@[\w]\)/<a href="http://www.twitter.com/\1">\1<\/a>/gc
这给了我:
E488: Trailing characters
答案 0 :(得分:26)
当/
和{pattern}
之间的分隔符({string}
}包含在其中之一时,必须使用\
进行转义。避免这种情况的一个技巧是使用不同的分隔符,例如#
:
:%s#@\(\w\+\)#<a href="http://www.twitter.com/\1">\0</a>#gc
PS:如果它应该做我认为它应该做的事情,你的模式是错误的;看我的纠正。
答案 1 :(得分:9)
如果在选定的文本块中进行替换时遇到此问题,则可能是因为您只应键入%s
时错误地键入了s
我发生了这种情况,方法是选择一个块,然后键入:
,并在提示符:'<,'>
上键入%s/something/other/
,当正确的语法为{{1}时,结果为:'<,'>%s/something/other/
},没有百分比。
答案 2 :(得分:1)
我遇到了这个问题并且无法让它消失,直到我发现我所拥有的.vimrc
文件是我从其他地方复制的部分,其中包含缩写,例如:
abbrev gc !php artisan generate:controller
这个缩写会搞乱我的搜索并替换通常如下所示的命令:
:%s/foo/bar/gc
将gc
扩展为!php artisan generate:controller
,但不会在现场/实时进行。我通过查看命令历史记录(通过按:
和向上箭头)并查看
:%s/foo/bar/!php artisan generate:controller
因此,无论你做什么,你都会遇到拖尾字符错误,我会在里面看看
~/.vimrc
看看你是否能在那里找到问题。
答案 3 :(得分:1)
:%s/\/apps/log_dir/g
其中要替换的字符串= / apps
并替换了string = log_dir
我们看到/所以我们需要使用"\/"
答案 4 :(得分:0)
我有同样的问题。
仅使用其他定界符无济于事。所以,另外
我没有选择任何行。
并且没有将g用于全局。
就这样
HttpSensor
工作完成了。将所有出现的“ to_be_replaced”更改为“ replacement”。