У меня странное поведение в моем терминале (bash). Когда я нажимаю CTRL-P, то пытаюсь вставить какой-нибудь текст в какую-то позицию, следующие символы перезаписываются. Не совсем перезаписано, но мой терминал не показывает изменений, это Debian 7 с xfce, я пробовал другие терминалы, тот же эффект.

Я вернул bashrc и профиль по умолчанию, но не решил мою проблему.

1 ответ1

0

Я думаю, что вы хотите прочитать справку по bash (man bash или GNU's BashRef.html) по редактированию командной строки и Readline. Существует множество различных команд для редактирования командной строки, и их также можно изменить с помощью файла inputrc (по умолчанию ~/.inputrc). Вот клип о READLINE:

БИБЛИОТЕКА READLINE
Это библиотека, которая обрабатывает вводимые данные при использовании интерактивной оболочки, если при вызове оболочки не указана опция --noediting. Редактирование строки также используется при использовании опции -e встроенной функции чтения. По умолчанию команды редактирования строк аналогичны командам Emacs. Интерфейс редактирования линии в стиле vi также доступен. Редактирование строки может быть включено в любое время с помощью опций -o emacs или -o vi встроенного набора (см. КОМАНДЫ ПОСТРОЕНИЯ ОБОЛОЧКИ ниже). Чтобы отключить редактирование строки после запуска оболочки, используйте опции +o emacs или +o vi для встроенной функции set.

Вот раздел в разделе "Команды для изменения текста" о перезаписи:

перезаписать режим
Переключить режим перезаписи. С явным положительным числовым аргументом переключается в режим перезаписи. С явным неположительным числовым аргументом переключается в режим вставки. Эта команда влияет только на режим emacs; Режим vi перезаписывает по-разному. Каждый вызов readline() начинается в режиме вставки. В режиме перезаписи символы, связанные с самостоятельной вставкой, заменяют текст в точке, а не толкают текст вправо. Символы, связанные с символом backward-delete-char, заменяют символ перед точкой на пробел. По умолчанию эта команда не связана.

Я не думаю, что есть привязка ключа по умолчанию для режима перезаписи. CTRL+p - это стандартный предыдущий ключ истории, такой же, как и стрелка вверх здесь (Linux Mint XFCE). Я не уверен, как настроен ваш bash или inputrc файл, но, возможно, вы используете vi вместо режима Emacs, или у вас установлен ключ для режима перезаписи?

  • Возможно, это забавное рисование персонажей, вы можете попробовать перейти к предыдущему или следующему элементу истории (я бы сделал клавиши вверх, затем вниз), и он должен заново нарисовать линию.

  • Или, может быть, вы запустили несколько команд, которые испортили дисплей вашего терминала (возможно, убили программу), вы можете попробовать команду reset и она должна вернуть все в "нормальное состояние"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .