Как просматривать символы UTF-8 в VIM или Gvim

Я работаю на веб-страницах, в которых используются неанглийские скрипты время от времени, большинство из них использует кодировку utf-8, VIM и Gvim не отображают символы UTF-8 правильно.

Использование VIM 7.3.46 для Windows 7 64 бит, с set guifont=Monaco:h10 в _vimrc

Есть ли способ исправить это?

Обновление: я googled вокруг и нашел, что 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, тогда моя проблема будет решена, как это сделать?

Ответ 1

Попробуйте перезагрузить документ, используя:

:e! ++enc=utf8

Если это сработает, вы можете изменить настройки fileencodings в вашем .vimrc.

Ответ 2

Вы пробовали

:set encoding=utf-8
:set fileencoding=utf-8

?

Ответ 3

В M $Windows gvim не позволит вам выбирать немоноширинные шрифты. К сожалению, Latha - это немоноширинный шрифт.

Существует способ взлома: Используя FontForge (вы можете загрузить двоичный файл Windows из http://www.geocities.jp/meir000/fontforge/), чтобы отредактировать Latha.ttf и пометить его как моноширинный шрифт. Выполнение следующего:

  • Загрузите fontforge, выберите latha.ttf.
  • Меню: Элемент → Информация о шрифте
  • Выберите "OS/2" из левого списка в диалоговом окне "Информация о шрифте"
  • Выберите вкладку "Паноза"
  • Set Proportion = Monospaced
  • Сохраните новую версию TTF этого шрифта, попробуйте!

Удачи!

Ответ 4

Является ли эта проблема решена тем временем?

У меня возникла проблема, что gvim не отображал все символы Unicode (но только подмножество, включая умлауты и акцентированные символы), тогда как :set guifont? был пуст; см. мой вопрос. После прочтения здесь, установив guifont на разумное значение, зафиксировало это для меня. Однако мне не нужны символы за пределами 2 байта.

Ответ 5

Я не смог получить какие-либо другие шрифты, которые я установил, чтобы отображаться в моем редакторе Windows GVim, поэтому я просто переключился на Lucida Console, который имеет, по крайней мере, несколько лучшую поддержку UTF-8. Добавьте это в конец вашего _vimrc:

" For making everything utf-8
set enc=utf-8
set guifont=Lucida_Console:h9:cANSI
set guifontwide=Lucida_Console:h12

Теперь я вижу по крайней мере некоторые символы UTF-8.

Ответ 6

Если сюда придут японские люди, добавьте следующие строки в ~/.vimrc

set encoding=utf-8
set fileencodings=iso-2022-jp,euc-jp,sjis,utf-8
set fileformats=unix,dos,mac