Я не хочу, чтобы vim никогда не интерпретировал мои данные каким-либо конкретным способом кодирования. Другими словами, когда я нахожусь в vim, я хочу, чтобы символ, на котором мой курсор включен, соответствовал фактическому байту, а не utf * (и т.д.) Представление этого байта.
Мне нужно использовать vim для анализа проблем, вызванных ошибками преобразования Unicode, сделанными другими людьми (с использованием другого программного обеспечения), поэтому важно, чтобы я увидел, что на самом деле там.
Например, в Cygwin vim я смог видеть спецификации UTF-8 как
ï "¿[НАЧАЛО ДАННЫХ ФАЙЛА]
Это прекрасно. Я признаю это как спецификацию UTF-8, и если я хочу знать, что такое hex для каждого символа, я могу поместить курсор на символы и использовать "ga".
Недавно я получил подходящую машину Linux (Fedora). В /etc/vimrc эта строка существует
set fileencodings = ucs-bom, utf-8, latin1
Когда я смотрю на спецификацию UTF-8 на этом компьютере, спецификация полностью скрыта.
Когда я добавляю следующую строку в ~/.vimrc
set fileencodings = latin1
Я вижу
Ä "¿
Первые 3 символа - спецификация (когда ga используется против них). Я не знаю, что такое последние 3 персонажа.
В какой-то момент я даже видел спецификацию UTF-8, представленную как "feff" - спецификацию UTF-16.
В любом случае, вы видите мою проблему. Мне нужно точно посмотреть, что находится в моем файле, без того, чтобы vim интерпретировал байты для меня. Я знаю, что могу использовать xxd, od и т.д., Но vim всегда был очень удобным инструментом анализа. Кроме того, я хочу иметь возможность редактировать файлы и сохранять их без каких-либо проблем с преобразованием.
Спасибо за вашу помощь.