这就是这个特殊字符在vim中的显示方式:
我/\x20(\x0e|\x0f)/
了/\x20(\x0e|\x0f)/
和/\xe2\x80[\x8e\x8f]/
没有结果。
首先,如果你想替换字节0x20(这是空格,如果我没有弄错),你需要使用\%x20
,而不是\x20
因为\x
指定一个十六进制数字(除非在集合中使用,那么\x20
意味着什么期望)。 但是,如果您想要替换给定的Unicode字符,则应该使用\%u200E
( \u200E
在集合中)。
其次, \%x20
和[\x20]
都将使用unicode代码0x20匹配字符,而不是使用代码0x20的字节。 这对空间没有任何影响,但对代码点> 0x7F有所不同。
尝试替换\u200e
🙂
你可以通过在你的缓冲区中插入这个字符来测试这个工作,如果你在插入模式下输入: <CR>="\u200e"<CR>
(即CTRL + R和<CR>
表示回车)
使用您的终端机制,通过Unicode代码点输入字符。 在gnome-terminal的情况下,这是Ctrl Shift U后跟十六进制代码(例如200e
),然后是Enter 。
我会把光标放在蓝色的<200e>
,然后键入yl
来拷贝(复制)字符。
然后,键入:%s/<CR>"/replacement/g
(当然, <CR>
是Control+R
)。