Неможливо ввести будь-який спеціальний символ або umlaut в терміналі


13

Навколишнє середовище:
Я використовую Ubuntu 11.10 з wmii 3.9 як GUI і uxterm як термінал з bash як оболонкою. Обладнання - це Lenovo ThinkPad W500 з розкладкою клавіатури Swissgerman (тому мені потрібні умлаути). Я використовую ibus для введення Japansese.

Симптоми:
Коли я набираю клавіші / символи типу ~, ^в терміналі нічого не відбувається. Якщо я натискаю ö, (arg: 6)з'являється " ", але äнічого не відбувається, üіноді з'являється команда з історії.
Така ж поведінка у всіх терміналах, які я протестував дотепер (gnome-terminal, xfce4-terminal, xterm). Він працює за бажанням у інших X-програмах, таких як Chrome-браузер, скайп або текстові редактори.

Додаткова інформація:

> 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я не міг вводити жодних символів з umlauts.

Я знайшов виправлення: створити / відредагувати ~/.inputrc (або відредагувати наступні рядки у /etc/inputrc):

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

Тепер я можу набрати umlauts. Я вважаю, що це стосується 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 offв /etc/inputrcне працює повністю:
Це теж виправлено, але все-таки є щось дивне: якщо я öнабираю, я отримую ö, але перед ö, схоже, є прихований символ: я можу видалити з Backspace два символи, хоча я набрав лише один ö


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

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

Так, це так, de_CH - швейцарсько-німецький макет, він дуже схожий на німецький макет.
jonas

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

Домовились! Я б хотів, щоб я міг перевірити, чи вирішує це проблема.
jonas

-1

На додаток до зазначених відповідей може бути те, що ваші локалі не складені. Існують локальні вихідні файли під / usr / share та компільовані файли локалів під / usr / lib. Ті, хто знаходиться в / usr / lib, можуть бути пошкоджені або не скомпільовані, щоб виправити, що ви можете використовувати утиліту localedef для збирання файлів. Або на базі систем Debian dpkg-configure.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.