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

13

Я использую VIM 7.4 на 64-битной машине Ubuntu 14.04. В моем файле .vimrc у меня есть следующие строки:

" Use UTF-8 without BOM
set encoding=utf-8 nobomb

configФайл в основном используется символ Unicode для отображения пробелов , как вкладки, новые строки и т.д. Полный файл .vimrc берется из Пола ирландских в составляют скрытые .

На более ранней установке 14.04, как и в предыдущих дистрибутивах, я мог видеть символы юникода без каких-либо проблем, но не с этим.

Я также попробовал:

 set fileencodngs=utf-8

Но вышеуказанная настройка не имеет никакого эффекта, и я все еще вижу искаженные символы на экране. Есть ли способ обойти это?

Вивек Прадхан
источник
1
Можете ли вы дать ссылку на файл примера, который выглядит вам искаженным? А можете ли вы включить скриншот того, что вы видите в vim? Каково значение fencпеременной после открытия файла?
Майк Миллер

Ответы:

16

Если ваша текущая локаль находится в кодировке utf-8 , Vim автоматически запустится в режиме utf-8.

Если вы используете другую локаль, задайте ниже в вашем ~/.vimrcфайле пользователя :

set encoding=utf-8

Вы также можете выбрать шрифт, используемый для меню . К сожалению, это не всегда работает.

Также у вас есть эта опция для принудительного кодирования с :set fileencodings=utf-8. Вы можете найти документацию здесь

другое решение: в режиме вставки нажмите Ctrl- R ="\xe2\x82\xa9" Enterдля непосредственного ввода символов UTF-8, используя их шестнадцатеричное кодирование.

\xe2\x82\xa9является Hex Кодирование (символ валюты для Северной Кореи) характера.

ссылка: Vim документация

Примечание. Если вы выполнили вышеуказанную настройку, но все же не смогли хорошо увидеть символы Unicode или ввести их, проверьте конфигурацию терминала или консоли, если она Character encodingбыла установлена ​​на UTF-8.

Читайте также Специальные символы в Vim .

αғsнιη
источник
1
Это также решило проблему невозможности ввода китайских символов для меня.
Зельфир Кальцталь
Может ли кто-нибудь рассказать о том, что C-R ="\xe2\x82\xa9" <enter>делает?
user1717828
@ ussr1717828 это форма кодировки UTF-8 (символ валюты для Северной Кореи), которая позволяет пользователю напрямую вводить литерал , используя шестнадцатеричное кодирование UTF-8 с Ctrl+R="..."- Enter.
αғsнιη