ayusimonov
@ayusimonov
Старший преподаватель кафедры теории колебаний

Как решить проблему ввода русского текста в консоли KDE?

Система Kubuntu 14.04 с настроенной русской локалью перестал работать ввод русского языка в консоль.
asim@asim-T410:~$ uname -a
Linux asim-T410 3.16.0-70-generic #90~14.04.1-Ubuntu SMP Wed Apr 6 22:56:34 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
asim@asim-T410:~$ cat /etc/issue.net
Ubuntu 14.04.4 LTS
asim@asim-T410:~$ plasma-desktop -v
Qt: 4.8.6
KDE: 4.13.3
Оболочка Plasma: 4.11.11
asim@asim-T410:~$ echo $TERM
xterm
asim@asim-T410:~$ locale
LANG=ru_RU.UTF-8
LANGUAGE=ru:en
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC=ru_RU.UTF-8
LC_TIME=ru_RU.UTF-8
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY=ru_RU.UTF-8
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER=ru_RU.UTF-8
LC_NAME=ru_RU.UTF-8
LC_ADDRESS=ru_RU.UTF-8
LC_TELEPHONE=ru_RU.UTF-8
LC_MEASUREMENT=ru_RU.UTF-8
LC_IDENTIFICATION=ru_RU.UTF-8
LC_ALL=


Латинница вводится корректно, а при переключении на кириллицу и вводе первых символов пропадают введённые перед этим латинские символы, и в начале строки появляется знак двоеточия со значком вопроса в инвертированных цветах.
:�


Если при этом продолжить ввод в русской раскладке, будут напечатаны русские символы
asim@asim-T410:~$ :�кириллические символы
Если их удалить вместе со знаками вопроса и двоеточия, в строке появятся введённые до этого латинские символы.

Другие приложения работают с русским языком как положено. Раньше и консоль работала, но с какого-то момента перестала. Другие эмуляторы терминала ведут себя аналогично. Пробовал konsole, yakuake, gnome-terminal. Вставка написанных в другом приложении русских символов даёт такой же эффект - появляется :�

Вывод кириллицы работает как положено.
asim@asim-T410:~$ kj
kj: команда не найдена


При таком поведении нельзя переместиться в директорию или совершить операцию с файлами, содержащими кириллические символы в именах или путях. Помогите пожалуйста разобраться.
  • Вопрос задан
  • 2196 просмотров
Решения вопроса 1
ayusimonov
@ayusimonov Автор вопроса
Старший преподаватель кафедры теории колебаний
dimmidrol, дело не в шрифтах. Тем не менее, спасибо! Ваш комментарий подтолкнул к сравнению шрифтов разных профилей bash, а также разных пользователей системы. Оказалось, что если запускать терминал от имени суперпользователя через kdesu konsole, описанная проблема отсутствует, раскладка переключается, кириллица печатается как надо. Сравнение конфигурационных файлов, относящихся к терминалу, двух пользователей выявило странную лишнюю строчку в файле .inputrc у основного пользователя:
set convert-meta on
Что бы это не значило, убрал - проблема исчезла! УРА!!!
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@dimmidrol
а шрифты для терминала какие? Была когда-то такая проблема, шрифты поставил (только давно это было, не помню какие) и проблема исчезла.
Ответ написан
@olexsyn
Имею ту же проблему на Debian 8, (KDE или GNOME - без разницы!)
Кириллица необходима, в частности, для работы с БД (выборки по фамилиям, адресам...)

Имею в наличии такой вот /etc/inputrc:

# /etc/inputrc - global inputrc for libreadline
# See readline(3readline) and `info rluserman' for more information.

# Be 8 bit clean.
set input-meta on
set output-meta on

# To allow the use of 8bit-characters like the german umlauts, uncomment
# the line below. However this makes the meta key not work as a meta key,
# which is annoying to those which don't need to type in 8-bit characters.

# set convert-meta off

# try to enable the application keypad when it is called.  Some systems
# need this to enable the arrow keys.
# set enable-keypad on

# see /usr/share/doc/bash/inputrc.arrows for other codes of arrow keys

# do not bell on tab-completion
# set bell-style none
# set bell-style visible

# some defaults / modifications for the emacs mode
$if mode=emacs

# allow the use of the Home/End keys
"\e[1~": beginning-of-line
"\e[4~": end-of-line

# allow the use of the Delete/Insert keys
"\e[3~": delete-char
"\e[2~": quoted-insert

# mappings for "page up" and "page down" to step to the beginning/end
# of the history
# "\e[5~": beginning-of-history
# "\e[6~": end-of-history

# alternate mappings for "page up" and "page down" to search the history
# "\e[5~": history-search-backward
# "\e[6~": history-search-forward

# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word

$if term=rxvt
"\e[7~": beginning-of-line
"\e[8~": end-of-line
"\eOc": forward-word
"\eOd": backward-word
$endif

# for non RH/Debian xterm, can't hurt for RH/Debian xterm
# "\eOH": beginning-of-line
# "\eOF": end-of-line

# for freebsd console
# "\e[H": beginning-of-line
# "\e[F": end-of-line

$endif

т.е. указанная автором строка set convert-meta изначально закомментирована.
Различные вариации "наобум" с параметрами on/off/# ни к чему не привели.
Интересно, что на машине с Debian 7 при аналогичном /etc/inputrc - проблема отсутствует.

Планирую
# See readline(3readline) and `info rluserman' for more information.

но, если кто подскажет причину/решение - буду благодарен.
Ответ написан
@Alkirys
Помогло добавление в файл /etc/inputrc строки: set convert-meta off (отвечает за отмену обрезания 8 бита во вводимых символах).
Правда, остался баг: при вводе русских букв, удалить потом можно вдвое больше символов, но нормальной работе это не мешает)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы