Почему существует SIGTSTP, когда уже есть SIGSTOP?

Ваш Ctrl - r перехватывается основанным на ядре механизмом обработки готовых строк терминала.

Пока работает sleep , терминал находится в подготовленном режиме, что означает, что редактор tty-строк на основе ядра работает. Редактор tty-строки поддерживает простейшее редактирование командной строки. Клавиша стирания (обычно устанавливается на Ctrl - h (backspace) или Del ) и клавиша уничтожения (обычно Ctrl-U ) являются наиболее известными специальными клавишами редактирования, которые можно использовать в этом режиме. Этот редактор строк полезен: он позволяет интерактивным утилитам, не использующим ни readline, ни curses, читать полные строки ввода с терминала, позволяя пользователю вносить исправления при вводе.

Но есть еще одна особая клавиша, которая активна в этом режиме. Вы можете увидеть его вместе с другими ключевыми параметрами в выводе stty -a под именем rprnt , и его значение по умолчанию ... как вы уже догадались ... Ctrl - r . Функция этого ключа состоит в том, чтобы перерисовать текущую командную строку, если она была повреждена или смещена из-за другого вывода терминала.

Чтобы избежать этого, вы можете отключить эту функцию с помощью stty rprnt undef .

Лично я привык, что Ctrl - r интерпретируется как команда перерисовки, и я удивляюсь каждый раз, когда пытаюсь сделать это в bash и это делает что-то другое!

2
10.12.2017, 21:04
0 ответов

Теги

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