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: команда не найдена


При таком поведении нельзя переместиться в директорию или совершить операцию с файлами, содержащими кириллические символы в именах или путях. Помогите пожалуйста разобраться.
  • Вопрос задан
  • 2260 просмотров
Решения вопроса 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 бита во вводимых символах).
Правда, остался баг: при вводе русских букв, удалить потом можно вдвое больше символов, но нормальной работе это не мешает)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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