Подтвердить что ты не робот

Как искать и заменять непечатаемый символ

У меня есть файл, который был экспортирован из Word, и он заменил все кавычки странными символами unicode, которые неправильно отображаются в vim. Поэтому теперь я хочу, чтобы эти символы были заменены кавычками, но я не знаю, как ввести этот символ в

:%s/???/'/g

Символы выглядят так: ~ U ~ R. Но, конечно, я не могу просто отметить их мышью и вставить в команду.

4b9b3361

Ответ 1

Вы можете попробовать установить тип кодировки и посмотреть, исправляет ли он эти символы:

:set encoding=utf-8

то вы можете использовать их напрямую. В качестве альтернативы вы можете поместить курсор на непечатаемый символ и нажать ga, он отобразит десятичный/шестнадцатеричный/восьмеричный код этого символа, затем вы можете заменить его на:

:%s/\%xYY/substitute/g

где YY - шестнадцатеричный код char, если он многобайтен:

:%s/\%uYYYY/substitute/g

для деталей:

:help character-classes

Ответ 2

Я обычно:

  • удалите символ с помощью: x
  • отмените мое изменение с помощью u
  • выполните замену c_CTRL-R: :%s/^R"/'/g

Ответ 3

вы также можете отфильтровать его с помощью команды tr

например, заменяя hex a0, который возникает из-за вырезания и пасты MacOs может быть заменен пробелом следующим образом (\ 240 - восьмеричное представление hex a0)

:.,$!tr "\240" " "