Как искать и заменять непечатаемый символ
У меня есть файл, который был экспортирован из Word, и он заменил все кавычки странными символами unicode, которые неправильно отображаются в vim.
Поэтому теперь я хочу, чтобы эти символы были заменены кавычками, но я не знаю, как ввести этот символ в
:%s/???/'/g
Символы выглядят так: ~ U ~ R. Но, конечно, я не могу просто отметить их мышью и вставить в команду.
Ответы
Ответ 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" " "