В настоящее время я работаю над проектом, в котором мне нужно написать символы Юникода ɛ и ħ , которые я только что добавил к своей клавиатуре.

Он прекрасно работает почти везде, даже в командной строке, кроме Vim, который отображает знак вопроса ? вместо ɛ и h вместо ħ .

Кодировка установлена в utf-8, и использование :digraphs не очень помогает, поскольку даже там, многие символы отображаются просто как ? ,

Что я могу сделать, чтобы это исправить?

РЕДАКТИРОВАТЬ
Я использую шрифт Consolas, который имеет оба вышеупомянутых символа.

2 ответа2

0

Из вопросов с комментариями, даже несмотря на то, что вопрос гласит «кодировка установлена в utf-8», похоже, что кодировка Vim НЕ установлена в utf-8. Это все еще латиница 1 (ISO-8859-1). Это означает, что Vim не знает, как представлять эти специальные символы в памяти и сохранять их в файл.

Чтобы Vim правильно писал "специальные" символы, ему нужно 2 вещи:

  1. Параметр «кодировка», который может представлять этот символ в памяти, обычно utf-8
  2. Пустое значение или параметр, который может представлять этот символ на диске для «fileencoding». Обычно это также utf-8 или пустой.

Чтобы правильно прочитать файл, содержащий эти символы, Vim снова нуждается в этих двух вещах. Vim может автоматически определить правильное значение для fileencodings, если ваш параметр fileencodings установлен правильно.

'fileencodings' - это список через запятую, который указывает Vim (по порядку), какие кодировки попробовать. "ucs-bom", как в комментариях к вашему вопросу, обнаружит юникод, но только если есть спецификация (метка порядка байтов). Кроме того, поскольку кодировка вашего Vim по-прежнему "latin1", это не принесет вам никакой пользы, если Vim DID обнаружит Unicode.

Обратите внимание, что 'кодировка' и 'fileencodings' должны находиться очень близко к вершине вашего .vimrc, до ЛЮБОГО отображения, меню, строковых опций или настроек регистра. В противном случае Vim неверно истолковывает существующий текст в этих областях.

Для получения дополнительной информации см. Справку по каждому из этих параметров и страницу вики по настройке Vim для Unicode .

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

  1. Установите его вручную, например :e ++enc=utf-8 myfile.txt
  2. Установите плагин Vim, который будет автоматически определять кодировку файлов
0

Я работаю в Debian, и у меня была проблема, которую вы описали. Чтобы исправить это, вы должны быть уверены, что у вас установлен требуемый языковой стандарт в вашей операционной системе в Debian Bash. Вот как это исправить:

  1. проверьте свой язык

    locale -a
    

    в bash об этом сообщается: locale: невозможно установить LC_VARIABLE в качестве локали по умолчанию: такого файла или каталога нет

  2. сгенерируйте требуемый языковой стандарт, чтобы шаг 1 больше не жаловался.

    Вы можете сделать это с помощью команды locale-gen, если знаете, какой язык вам нужен

    sudo locale-gen "en_US.UTF-8"
    

    или просто перенастроить локаль, введя следующую команду

    sudo dpkg-reconfigure locales
    

Если все сделано правильно : digraphs должны показывать правильные символы теперь в vim

https://wiki.debian.org/Locale
http://vim.wikia.com/wiki/Entering_special_characters

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .