Vim: Как обрабатывать файлы Unicode с текстом на нескольких (более двух) языках?

5430
Ashwin Nanjappa

Какие настройки мне нужно установить в Vim / gVim, чтобы можно было просматривать текстовые файлы Unicode, содержащие текст на многих языках?

Вы можете сделать следующие предположения:

  • Количество языков больше двух.
  • Некоторые из языков - китайский, японский и корейский.
  • Достаточно, если я смогу просмотреть эти файлы в gVim (не обязательно Vim).
  • gVim 7.0 работает на Windows.

Вот пример текста, который при сохранении в Юникоде прекрасно открывается в Блокноте, но в gVim отображается как бред:

This is English. 这是中文。 これは日本です。 한국입니다. ಇದು ಕನ್ನಡ. 
8
Jerryjvl: Кажется, есть поддержка Unicode в GViM. Мне не удалось включить его для работы с> 2 языками. http://www.vim.org/htmldoc/mbyte.html Ashwin Nanjappa 15 лет назад 0
Ваш пример прекрасно работает при вставке в gvim в Linux. Предложить обновление ОС :-D derobert 15 лет назад 3

3 ответа на вопрос

7
Greg Hewgill

Используя gVim в Windows, я сделал следующие две вещи:

:set encoding=utf-8 :set guifont=* 

Вторая команда вызывает средство выбора шрифта. Выбрав шрифт "@MS Mincho", я получил некоторые японские символы для отображения, но, как ни странно, они были повернуты на 90 градусов влево.

В любом случае вам придется установить кодировку перед загрузкой или вставкой текста в gVim (в противном случае он может просто преобразовать их во все знаки вопроса). Затем вам нужно будет найти шрифт, который (а) имеет фиксированную ширину и (б) содержит символы, которые вы хотите видеть. В данный момент у меня нет такого шрифта в моей системе, но вы можете.

То же самое верно для любой ОС: вам нужен vim, чтобы использовать правильную кодировку И правильный шрифт для отображения глифов шрифта. Итак, отметьте ответ Грега «принято» :) akira 15 лет назад 0
Спасибо Грег! Таким образом, устанавливая кодировку как UTF-8, мы позволяем GViM понимать смысл байтов, которые он читает, но, к сожалению, он не может отображать все эти языки, используя один шрифт фиксированной ширины, следовательно, отображается бред. Ashwin Nanjappa 14 лет назад 0
0
GuruM

Использование следующих настроек в вашем .vimrc может работать для вас. Это сработало для меня для китайских / японских иероглифов.
:set encoding=utf-8
:set guifont=*
:set guifontwide=*

Вы также можете попробовать следующее: `: set fileencoding = utf-8: set fileencodings = ucs-bom, utf-8, latin1: set * encoding = utf-8` GuruM 12 лет назад 0
0
meskarune

The font Arial Unicode MS supports japanese, chinese and korean as well as vietnamese and arabic. You could try using that font, though I don't believe it is monospaced.

http://www.microsoft.com/typography/fonts/font.aspx?FMID=1081

There may be other pan-language fonts out there, perhaps monospaced ones as well, but I don't know of them.

edit

I found this page with a few fonts that support all three languages. Some of them are available as free downloads: http://www.wazu.jp/gallery/Fonts_Japanese.html