如何搜索和替换不可打印的字符

Krz*_*soń 25 vim

我有一个从Word导出的文件,它用奇怪的unicode字符替换了所有引号,这些字符在vim中没有正确显示.所以现在我想用引号替换这些字符,但我不知道如何输入这个字符

:%s/???/'/g
Run Code Online (Sandbox Code Playgroud)

字符看起来像这样:~U~R.但当然我不能用鼠标标记它们并粘贴在命令中.

Mat*_*iva 53

您可以尝试设置编码类型,看看它是否修复了这些字符的visalizations:

:set encoding=utf-8
Run Code Online (Sandbox Code Playgroud)

然后你可以直接使用它们.或者,您可以将光标放在unprintable字符上并点击ga,它将显示该字符的十进制/十六进制/八进制代码,然后您可以将其替换为:

:%s/\%xYY/substitute/g
Run Code Online (Sandbox Code Playgroud)

其中YY是char的十六进制代码,如果它是多字节的:

:%s/\%uYYYY/substitute/g
Run Code Online (Sandbox Code Playgroud)

详情:

:help character-classes
Run Code Online (Sandbox Code Playgroud)


Luc*_*tte 7

我通常:

  1. 删除字符: x
  2. 撤消我的更改: u
  3. 通过c_CTRL-R做替代::%s/^R"/'/g