При использовании Vim по SSH я скопировал некоторое содержание от веб-страницы до моей сессии SSH/Vim и получил следующий результат:
SIZE=`df -h|grep $DISC|awk <91>{print $2}<92>`
По-видимому, <91>
и <92>
поддержите '
но как я могу искать и заменить этот материал? И что делает это 91
/92
средний? Как это кодируется потому что 91
/92
в среднем ASCII \
и [
?
Содержание на Вашей исходной веб-странице было фанатично переформатировано. Текст, как несомненно, предполагалось, использовал (прямые) одинарные кавычки (ASCII 39/0x27
, U+0027
) вместо изогнутых одинарных кавычек (U+2018
и U+2019
, которые являются 0x91 and 0x92
в CP1252 (также известный как MS-ANSI и WINDOWS 1252; общее 8-разрядное кодирование в Windows)).
Vim показывает Вам шестнадцатеричные коды, потому что они не допустимы в любом кодировании, которое Vim использует (вероятно, UTF-8). При редактировании текста, который был уже сохранен в файле, то можно перезагрузить файл как CP1252 с :e ++enc=cp1252
; это должно сделать изогнутые кавычки видимыми. Но нет никакой настоящей причины, чтобы перезагрузить его как CP1252, просто удалить 0x91
и 0x92
символы и заменяют их одинарными кавычками.
91 и 92 шестнадцатеричные коды для открытого и закрывают изогнутый апостроф (одинарная кавычка) в версии значения по умолчанию MS Windows latin1/ISO-8859-1 кодирования, которое более конкретно называют cp1252/Windows-1252 (где CP обозначает кодовую страницу).
Эти символы чаще всего вставляются людьми, копирующими содержание с документов Word / электронные письма Outlook как часть функции "Smart Quotes". Другие проблемные символы в этой кодовой странице являются шестнадцатеричными 93/94, которые являются открытыми и близкими двойными кавычками, пунктом маркированного списка (•) и лигатура OE (œ и Œ). Вы видите полный список "проблемных символов", те, которые не отображаются непосредственно в ISO-8859-1 или UTF-8 с тем же кодом на странице Wikipeda для cp1252, выделенного в зеленом.
Если все, что Вы хотите, должно открыться, файл в корректном кодировании затем используют ++ enc=cp1252 опция к: e команда:
:e ++enc=1252 filename.txt
Можно заменить конкретный плохой шестнадцатеричный код в Vim с командой замены и одну из замен кода:
\d123 decimal number of character
\o40 octal number of character up to 0377
\x20 hexadecimal number of character up to 0xff
\u20AC hex. number of multibyte character up to 0xffff
\U1234 hex. number of multibyte character up to 0xffffffff
Изменить шестнадцатеричные 91/92 символы в Вас должно сделать:
:%s/[\x91\x92]/'/g