Невозможно ввести какой-либо специальный символ или умлаут в терминале


13

Окружение:
я использую Ubuntu 11.10 с wmii 3.9 в качестве графического интерфейса и uxterm в качестве терминала с bash в качестве оболочки. Аппаратное обеспечение - Lenovo ThinkPad W500 с раскладкой клавиатуры Swissgerman (поэтому мне нужно умляуться). Я использую ibus для японского ввода.

Симптомы:
когда я набираю ключ / символ как ~, ^в терминале ничего не происходит. Если я нажимаю ö' (arg: 6)' появляется, äничего не происходит, üиногда появляется команда из истории.
Это одинаковое поведение во всех терминалах, которые я тестировал до сих пор (gnome-терминал, xfce4-терминал, xterm). Он работает, как требуется в других приложениях X, таких как Chromium-браузер, Skype или текстовые редакторы.

Дополнительная информация:

> locale
LANG=de_CH.UTF-8
LANGUAGE=en_US:en
LC_CTYPE=en_US.UTF-8
LC_NUMERIC="de_CH.UTF-8"
LC_TIME="de_CH.UTF-8"
LC_COLLATE=en_US.UTF-8
LC_MONETARY="de_CH.UTF-8"
LC_MESSAGES=en_US.UTF-8
LC_PAPER="de_CH.UTF-8"
LC_NAME="de_CH.UTF-8"
LC_ADDRESS="de_CH.UTF-8"
LC_TELEPHONE="de_CH.UTF-8"
LC_MEASUREMENT="de_CH.UTF-8"
LC_IDENTIFICATION="de_CH.UTF-8"
LC_ALL=

> setxkbmap -print
xkb_keymap {
        xkb_keycodes  { include "evdev+aliases(qwerty)" };
        xkb_types     { include "complete"      };
        xkb_compat    { include "complete"      };
        xkb_symbols   { include "pc+ch+inet(evdev)+terminate(ctrl_alt_bksp)"    };
        xkb_geometry  { include "pc(pc105)"     };
};

Ответы:


17

У меня была похожая проблема при подключении через ssh к Mac OS X с помощью эмулятора терминала. Хотя я установил для LANG значение, de_DE.UTF-8я не мог вводить символы с умляутами.

Я нашел исправление для создания / редактирования ~/.inputrc (или редактирования следующих строк /etc/inputrc):

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

Теперь я могу печатать умлауты. Я считаю, что это относится к xterms в целом.


Спасибо, это решает проблему умлаута! Но я все еще не могу набирать символы, такие как ~, ^ или ¨.
Джон

Это исправило это для меня тоже (после нового входа в систему), но есть еще кое-что странное: если я печатаю, öя получаю ö, но, кажется, тоже есть скрытый символ: я могу удалить два символа Backspace, хотя я только набрал один ö. Ввод LANG=de_DE.UTF-8в командной строке делает это для этой сессии, но пропал в новой оболочке
rubo77

@ rubo77 добавь export LANG=de_DE.UTF-8в свой~/.bashrc
naitsirch

5

Установите правильные локали с помощью

sudo dpkg-reconfigure locales

Там вы бы выбрали в de_DE.UTF-8качестве настройки. Это решает все проблемы;)

Информация: изменение значения set convert-meta offin /etc/inputrcне работает полностью:
оно исправило и этот тип, но есть еще кое-что странное: если я набираю, öя получаю ö, но перед ö появляется скрытый символ: я могу удалить два символа Backspace, хотя я набрал только один


Спасибо за ваш ответ, к сожалению, я не могу проверить результат вашего предложения, так как система, в которой возникла эта проблема, больше не существует. Кроме того, я не понимаю, почему изменение локали с de_CH.UTF-8 на de_DE.UTF-8 должно изменить ситуацию.
Джонас

Не уверен, у меня был английский макет раньше. Но, возможно, макет ch также использует deadkeys для ö?
rubo77

Да, de_CH - швейцарско-немецкий макет, он очень похож на немецкий.
Джонас

1
Я думаю, что этот ответ должен остаться для пользователей, которые имеют подобную проблему, но не используют макет CH. Я думаю, что решение состоит в том, чтобы запустить dpkg-reconfigure localesснова (не конкретный макет, который я использовал)
rubo77

Согласовано! Я хотел бы проверить, решит ли это проблему.
Джонас

-1

В дополнение к упомянутым ответам может оказаться, что ваши локали не скомпилированы. Исходные файлы локали находятся в / usr / share, а скомпилированные файлы локали в / usr / lib. Они в / usr / lib могут быть повреждены или не скомпилированы, чтобы исправить то, что вы можете использовать утилиту localedef для компиляции файлов. Или в системах на основе Debian dpkg-переконфигурируют.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.