Если вы редактируете файл, закодированный как latin1, вы обнаружите, что 'fileencoding' для этого буфера установлен на latin1. Поэтому вам нужно будет вручную установить кодировку файла перед сохранением файла.
:set fileencoding=utf8
:w myfilename
Также обратите внимание, что файлы UTF8 часто начинаются с метки порядка байтов (BOM), которая указывает на порядок байтов. BOM не является обязательным , но некоторые программы используют его исключительно для определения кодировки файла. При определенных условиях Vim напишет спецификацию, но иногда нет. Чтобы явно установить спецификацию, сделайте следующее:
Инструкции оказываются работают нормально, но: 1) UTF-8 не имеет порядка байтов (например , объясняет ВИМ помощь , то UTF-8 BOM просто указывает , что файл является UTF-8); 2) Когда вы откроете файл позже, вам нужно будет set fileencoding=utf-8снова открыть его. Vim даже не замечает спецификации, если вы сказали ему написать ее (и он действительно ее записывает). Чтобы UTF-8 работал, вам нужно это или set encoding=utf-8в настройках запуска. По крайней мере, такова история моей системы.
Хотя это верно, ваш ответ не должен был набрать столько голосов по сравнению с ответом Эрика Джонсона. Причина заключается в том, что если вы не установили fileencoding, то :w ++enc=utf-8действует время один, но в следующий раз при запуске :w, то значение 'fileencoding'будет использоваться, и если вы не изменили его (явно при редактировании, или путем перезагрузки файла, в надежде который 'fencs'установлен надлежащим образом, и фактическая кодировка хорошо определена), старая кодировка вернется.
Бенуа
1
@ MichaelKrelin-hacker, изменение fileencodingтакже является правильным ответом на вопрос, который, как мне кажется, не ведет к принятию вредных привычек. Но ладно, полагаю, это всего лишь вопрос настроения.
Бенуа
3
@Benoit, я не имел в виду, что ответ Эрика недействителен! Если я нахожу что-то странное в его ответе, то дело не в содержании, а скорее в том, почему он разместил вопрос и ответ на свой вопрос в быстрой последовательности :)
Майкл Крелин - хакер
3
@Michael Krelin - хакер: проверьте FAQ. На самом деле рекомендуется ответить на свой вопрос. В этом весь смысл такой страницы вопросов и ответов. Неважно, кто ответит.
0xC0000022L 04
2
@ 0xC0000022L, в прошлый раз, когда я проверял (сейчас не проверял), было что-то о том, чтобы придумать решение после проведения исследования, а не о том, чтобы опубликовать вопрос и ответ через минуту . Тем не менее, я говорил только о том, что странно в его ответе, а не о том, что делает его недействительным или что-то в этом роде.
Ответы:
Если вы редактируете файл, закодированный как latin1, вы обнаружите, что 'fileencoding' для этого буфера установлен на latin1. Поэтому вам нужно будет вручную установить кодировку файла перед сохранением файла.
Также обратите внимание, что файлы UTF8 часто начинаются с метки порядка байтов (BOM), которая указывает на порядок байтов. BOM не является обязательным , но некоторые программы используют его исключительно для определения кодировки файла. При определенных условиях Vim напишет спецификацию, но иногда нет. Чтобы явно установить спецификацию, сделайте следующее:
Для получения дополнительной информации
:help mbyte-options
и:help utf8
и:help bomb
.источник
set fileencoding=utf-8
снова открыть его. Vim даже не замечает спецификации, если вы сказали ему написать ее (и он действительно ее записывает). Чтобы UTF-8 работал, вам нужно это илиset encoding=utf-8
в настройках запуска. По крайней мере, такова история моей системы.записать файл в кодировке utf-8 на диск.
источник
fileencoding
, то:w ++enc=utf-8
действует время один, но в следующий раз при запуске:w
, то значение'fileencoding'
будет использоваться, и если вы не изменили его (явно при редактировании, или путем перезагрузки файла, в надежде который'fencs'
установлен надлежащим образом, и фактическая кодировка хорошо определена), старая кодировка вернется.fileencoding
также является правильным ответом на вопрос, который, как мне кажется, не ведет к принятию вредных привычек. Но ладно, полагаю, это всего лишь вопрос настроения.