Как я могу заставить vim распознавать кодировку файла? - PullRequest
18 голосов
/ 17 июня 2009

Я заметил, что большую часть времени, когда используется какая-то кодировка, отличная от «стандартного английского», vim не распознает и не отображает символы правильно.
Это легче всего увидеть, открыв некоторую графику ascii или аналогичные файлы из сети, которые используют кодовую страницу cp437.

Есть ли способ выполнить vim проверку на кодировку при открытии файла и открыть его с правильным именем?

Какие кодировки вы используете, как наиболее «переносимые» (те, с которыми у большинства пользователей будет меньше всего проблем)

Ответы [ 3 ]

20 голосов
/ 17 июня 2009

Vim должен определить кодировку, и это будет проблематично, поскольку файлы не всегда явно указывают свои кодировки (очевидным исключением являются файлы XML с атрибутом кодировки в заголовке).

Вы можете заставить Vim перезагрузить файл с другой кодировкой, таким образом:

:e ++enc=cp437

и вы можете установить кодировку по умолчанию в вашем .vimrc, если хотите.

Эта страница содержит больше информации и ссылок, особенно в отношении. редактирование Юникода. UTF-8 является наиболее широко используемой кодировкой, и по умолчанию вам следует ее использовать.

3 голосов
/ 05 декабря 2014

Вы можете использовать vim modeline для установки кодировки файла. Это просто комментарий в первых пяти строках файла, который начинается с vi: set fileencoding=cp437.

Вы также можете начать с 'vim:' вместо 'vi: set', но последний делает его совместимым с большим количеством редакторов. Вам определенно нужно пространство между этими префиксами и fileencoding, или любым другим параметром, который вы хотите установить. Однако опция fileencoding должна решить вашу проблему.

Итак, в Python или .rc файле вы можете поместить это в начало вашего файла:

# vi: set fileencoding=cp437

В Java, C, C ++, JavaScript и т. Д. Укажите это:

// vi: set fileencoding=cp437

Для получения дополнительной информации в vim введите :help modeline.

0 голосов
/ 05 декабря 2014

Вы можете кодировать свои файлы, используя Юникод, и установить Порядок следования байтов (BOM) в файле. Это заставит vim обращаться с ним соответствующим образом, но некоторые компиляторы и программы могут иметь проблемы с этим. Даже базовые команды оболочки, такие как cat, могут неправильно работать в некоторых случаях.

Чтобы сделать это, введите vim:

:set fileencoding=utf-8
:set bomb
:w

Для получения дополнительной информации введите:

:help bomb
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...