如何用vimreplace“左alignment标记”(U + 200E) – <200e>

这就是这个特殊字符在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 )。