forthgate |
|
Темы:
1
Сообщения:
9
Участник с: 07 апреля 2019
|
Решил вынести в отдельную тему, так как вопрос не связан непосредственно с русским языком в консоли Вопрос собственно такой, как решить проблему с тем, что если в консоли написав что-то по русски, захочешь удалить, то стираются бэкспейсом не только кириллица, но и сам промпт? Уже долго не могу найти ответ. Косяк как в tty, так и в эмуляторе терминала проявляется. В bashrc переменная PS имеет вид PS1='[\[email protected]\h \W]\$ ' Проблема есть только при наличии в строке ввода кириллицы, с латиницей такого нет. |
vs220 |
|
Темы:
22
Сообщения:
8070
Участник с: 16 августа 2009
|
Покажите еще . . . .
Может что не стандартное, никогда такого не видел |
forthgate |
|
Темы:
1
Сообщения:
9
Участник с: 07 апреля 2019
|
locale -a
locale
$SHELL
bashrc По сути то же самое, просто раскрасил, когда эксперементировал с решением проблемыsetxkbmap -print
Я ставил arch на разные машины, и везде была одна и та же проблема с этим промптом |
forthgate |
|
Темы:
1
Сообщения:
9
Участник с: 07 апреля 2019
|
UPD: Косяк был в локали, поставил LANG="en_US.UTF-8", проблема решилась vs220, спасибо за наводку! |
forthgate |
|
Темы:
1
Сообщения:
9
Участник с: 07 апреля 2019
|
UPD: Косяк был в локали, поставил LANG="en_US.UTF-8", проблема решилась vs220, спасибо за наводку! |
vs220 |
|
Темы:
22
Сообщения:
8070
Участник с: 16 августа 2009
|
forthgateЛокаль настройте |
vasek |
|
Темы:
48
Сообщения:
11340
Участник с: 17 февраля 2013
|
forthgateЭто просто в данном случае. vs220 А вообще такое возможно - backspace может удалить всю строку и не зависимо от локали (кирилица или латиница) - это возможно при неправильном написании prompt, когда readline не знает сколько символов было выведено на экран и сколько было перехвачено при выходе терминала. Например, проверьте для эксперимента упрощенный вариант PS1='\[\e[0;32m --->\e[m ' стерется вся строка. Это хорошо описано и даже, если не ошибаюсь, прописано в man, правда не явно. PS - убрал жирный шрифт, а то неправильно выводит ---
Ошибки не исчезают с опытом - они просто умнеют
|
forthgate |
|
Темы:
1
Сообщения:
9
Участник с: 07 апреля 2019
|
vasekforthgateЭто просто в данном случае. Да, я в первую очередь PS1 ковырял, а в локаль заглянуть не догадался. Мне интересно, что за значение такое LANG=C, и почему оно стояло по дефолту, когда я настраивал локаль |
vs220 |
|
Темы:
22
Сообщения:
8070
Участник с: 16 августа 2009
|
forthgatePOSIX устанавливается по умолчанию если не задана другая локаль в locale.conf Наверно просто не до конца настроили локаль https://wiki.archlinux.org/index.php/Locale#Setting_the_system_locale |
vasek |
|
Темы:
48
Сообщения:
11340
Участник с: 17 февраля 2013
|
forthgateДополнение к пояснению vs220 Вот что пишут на этот счет. Проведем для наглядности эксперимент (это всегда более понятно)1. export LANG=C 2. echo $LANG C 3. Набираем кирилицу и … backspace …. стерется вся строка (с латиницей нет) 4. Возвращем все обратно export LANG=ru_RU.UTF-8 5. echo $LANG ru_RU.UTF-8 Почему стирается кирилица - предположу, что не правильно считает readline, точно не помню, но вроде бы другое значение бит/байт ….
Ошибки не исчезают с опытом - они просто умнеют
|