Время от времени я работаю над веб-страницами, использующими неанглийские скрипты, в большинстве из них используется кодировка utf-8, VIM и Gvim неправильно отображают символы UTF-8.
Использование VIM 7.3.46 в 64-разрядной версии Windows 7 с set guifont=Monaco:h10
_vimrc
Есть способ исправить это?
Обновление: я погуглил и обнаружил, set guifontwide
что это второй запасной вариант для региональных языков.
Я добавил следующие строки в _vimrc, и большинство моих проблем были решены.
set enc=utf-8
set fileencoding=utf-8
set fileencodings=ucs-bom,utf8,prc
set guifont=Monaco:h11
set guifontwide=NSimsun:h12
Вышеупомянутый шрифт NSimsun работает для китайского языка. Проблема в том, что я не знаю, как они получили имя шрифта для работы с VIM, Courier New
упоминается, поскольку его Courier_New
также нет NSimsun
нигде в каталоге шрифтов. Я хочу использовать шрифт Latha
Но я не знаю, как использовать его в файле _vimrc. set guifontwide=latha:h12
или set guifontwide=Latha:h12
не работает.
Если я успешно установлю guifontwide
значение latha
, то моя проблема будет решена, как это сделать?
'guifont'
и ценность'guifontwide'
? Кроме того, какую ОС вы используете и какую версию vim?set guifontwide=NSimsun:h12
для меня "сбой", говорит "Недопустимый широкий шрифт", вероятно, та же проблема с немоноширинным шрифтом?Ответы:
Попробуйте перезагрузить документ, используя:
Если это сработает, возможно, вам следует изменить
fileencodings
настройки в вашем .vimrc.источник
:u
хотя спасет вас.:set noro
:e! ++enc=utf8
, он отобразил utf-8, но пожаловался[ILLEGAL BYTE in line 286]
(первая строка двоичной части) внутри файла. Я предполагаю, что поведение по умолчанию - молча вернуться к какой-то другой кодировке, когда это происходит при открытии Vim. Однако по какой-то причинеecho &enc
в этом случае все еще сообщает utf-8.&enc
- это кодировка, которую vim использует внутри для хранения содержимого буфера. Настройка, которая содержит кодировку для текущего файла,&fenc
Ты пробовал
?
источник
:set encoding=utf8
БУДЕТ обновлять буфер и, если проблема была в неправильной кодировке, исправит ее. Я добавилset fileencoding=utf8
опцию, чтобы вы не столкнулись с самой запутанной ошибкой «Не могу преобразовать какой-то символ» при сохранении.~/.vimrc
и всеЕсли сюда приезжают японцы, добавьте в свой
~/.vimrc
источник
В Microsoft Windows gvim не позволяет выбирать немоноширинные шрифты. К сожалению, Latha - это немоноширинный шрифт.
Есть хитрый способ сделать это: использование FontForge (вы можете загрузить двоичный файл Windows с http://www.geocities.jp/meir000/fontforge/ ), чтобы отредактировать Latha.ttf и пометить его как моноширинный шрифт. Делаем так:
Удачи!
источник
В Linux откройте файл конфигурации VIM
Добавлены следующие строки:
Сохраните и выйдите, и команда терминала:
В это время VIM будет правильно отображать китайский язык.
источник
Эта проблема тем временем решена?
У меня была проблема с тем, что gvim отображал не все символы Юникода (а только подмножество, включая умляуты и символы с диакритическими знаками), пока он
:set guifont?
был пустым; см. мой вопрос . После прочтения здесь установкаguifont
разумного значения исправила это для меня. Однако мне не нужны символы, превышающие 2 байта.источник
Мне не удалось получить какие-либо другие установленные мной шрифты для отображения в моем редакторе Windows GVim, поэтому я просто переключился на тот,
Lucida Console
который имеет хотя бы лучшую поддержку UTF-8. Добавьте это в конец вашего_vimrc
:Теперь я вижу хоть какие-то символы UTF-8.
источник
В Windows gvim просто выберите шрифт «Lucida Console».
источник
это работает для меня и не нужно изменять какой-либо файл конфигурации
vim --cmd "set encoding=utf8" --cmd "set fileencoding=utf8" fileToOpen
источник