Как включить символы вроде [Æ, Ø, Å] в PuTTY / Debian?

Я использую VIM через PuTTY для работы на моем сервере разработки, но это становится довольно сложно, когда мне приходится работать с файлами, содержащими символы, подобные упомянутым в заголовке. Мало того, что это делает VIM похожим на это

Denne applikasjonen krever at Javascript er aktivert. Bruk en nettleser som støtter JavaScript eller aktiver JavaScript in nà ¥ værende netleser.

Но также он полностью убирает VIM, делая визуальный курсор, расположенный где-то совершенно случайным относительно того места, где появляется текст, когда я печатаю.

Файлы, которые я редактирую, используют кодировку ISO-8859-1

root@foo:~/www/pltest# file --mime-encoding index.php
index.php: iso-8859-1

И PuTTY настроен на ожидание ISO-8859-1 в Настройки-> Окно-> Перевод. Так что единственной проблемой может быть Debian. Если я попытаюсь ввести в консоль любой из вышеперечисленных символов, появится случайное:

root@foo:~/www/pltest# ���������

Есть идеи, как я могу заставить Debian разрешать символы ISO-8859-1?


Решено ( Частично )! Очевидно, отобразить символы было так же просто, как распечатать /etc/locale.alias, найти мой языковой стандарт в списке и установить соответствующий языковой код (в моем случае nb_NO.ISO-8859-1) для переменной среды LANG. Однако я все еще не могу ввести символы в окно PuTTY. Каждый раз, когда я пытаюсь, я слышу сообщение об ошибке Windows.

Есть идеи?

2
задан 1 September 2011 в 10:22
2 ответа

Чтобы символы, отличные от ASCII, работали, все задействованные программы должны использовать одну и ту же кодировку символов. Необходимо установить кодировку:

  • 1) в Putty (вы это сделали)
  • 2) в удаленной системе (обычно путем установки переменной env LANG на подходящую локаль)

Затем с использованием не-ASCII на консоли должно работать.

Настройки vim (в основном) не зависят от этого. vim имеет свои собственные внутренние настройки для кодирования файлов, которые он редактирует, и автоматически перекодирует текст, чтобы он соответствовал системным настройкам (то есть языку, установленному с помощью LANG).

Для решения вашей проблемы:

По-видимому, вы позаботились о 1) и 2), установив ту же кодировку в Putty и используя LANG. Теперь редактирование файла с символами, отличными от ASCII, должно работать в vim, при условии, что vim знает, какую кодировку имеет файл (либо путем автоматического определения, либо путем выполнения : set fileencoding = UTF-8 и т. Д. В vim).

Что касается «получения сигнала при вводе символов, отличных от ASCII»: вам может потребоваться поместить set input-meta на в ваш ~ / .inputrc (это говорит о строке чтения библиотеки и, следовательно, bash, который вы хотите вводить не-ASCII-файлы), но большинству современных дистрибутивов Linux это больше не нужно.

Попытайтесь увидеть, принимают ли другие программы, такие как vim, не-ASCII-материалы - это должно сказать нам, где проблема есть.

Последнее замечание:

Хотя установка языкового стандарта на использование ISO 8859-1 определенно работает, в долгосрочной перспективе обычно лучше использовать UTF-8. UTF-8 работает практически для любого языка, а не только для западных языков, и быстро становится стандартом для современных дистрибутивов Linux.

Обратите внимание, что вы все еще можете работать с файлами в кодировке ISO в vim, поскольку vim может автоматически перекодировать (это часто даже автоматически определяет, что файл не в UTF-8).

6
ответ дан 3 December 2019 в 08:57

Okay, so I'm having the same problem trying to input non-ASCII characters into Putty on a Debian-based system (Ubuntu Server). My fix works completely and is as follows:

1) Changed character set to UTF-8 in Putty under Settings->Window->Translation
2) Confirmed that $LANG environment variable is set to en_us.UTF-8 on the server
3) Created ~/.inputrc with the following options:

set input-meta on
set output-meta on
set convert-meta off 
set enable-meta-key on

4) Log out, log back in (not sure if this is necessary)
5) Теперь я могу копировать / вставлять символы, отличные от ASCII, в терминал, и я могу успешно использовать мета-ключ, чтобы вручную вводить такие символы, как: ƒ, å, Ü ...

См. Следующую «страницу руководства», которая описывает параметры, которые я использовал на шаге 3, более подробно: http://www.gnu.org/software/bash/manual/html_node/Readline-Init-File-Syntax.html

Надеюсь, это кому-то поможет. Ура.

2
ответ дан 3 December 2019 в 08:57

Теги

Похожие вопросы