Я использую 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.
Есть идеи?
Чтобы символы, отличные от ASCII, работали, все задействованные программы должны использовать одну и ту же кодировку символов. Необходимо установить кодировку:
Затем с использованием не-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).
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
Надеюсь, это кому-то поможет. Ура.