Нажатие стрелки key up
вспомнит команду, которую вы использовали ранее в оболочке.
Но что бы вы сделали, если бы на полпути пролистали историю своих команд и решили, что хотите ввести новую команду самостоятельно?
Нажатие стрелки key down
все это было бы слишком хлопотно. Нажатие ESC
не очищает команду, как в Windows (я исхожу из фона Windows).
Итак, как немедленно очистить команду? Я пока искал в Google, но нашел только CTRL+C
можно отменить и перейти на новую строку. Это единственный способ или есть лучший способ, например ESC
в винде это понятно прямо? Спасибо.
Вы хотите kill-whole-line
, но в bash это не привязано по умолчанию. backward-kill-line
(CtrlИкс Backspace) и unix-line-discard
(CtrlU) оба стираются от текущей точки до начала строки, поэтому просто перейдите к концу строки и используйте любой из них.
bash
:Вам нужна последовательность нажатия клавиш, привязанная к end-of-history
действие. По умолчанию, согласно §8.4.2 Руководства пользователя Bash, это Мета+>, где Мета является ключом-модификатором "meta" в вашем терминале или программе-эмуляторе терминала. (Обратитесь к документации и настройкам вашего терминала, чтобы выбрать подходящий вариант.)
end-of-history
переносит вас прямо до конца списка истории, т. е. обратно к строке, которую вы изначально вводили перед тем, как вернуться в историю.
Вам нужна последовательность нажатия клавиш, привязанная к end-of-buffer-or-history
виджет. По умолчанию, согласно §18.6.2 Справочного руководства Z Shell, это Esc> в emacs
раскладка. (Обратите внимание, что это конкретно префикс Escне Мета, даже если ваш эмулятор терминала может отображать Мета к префиксу Esc.)
end-of-buffer-or-history
переносит вас в конец списка истории, только если вы находитесь в конце буфера при его вызове. Поэтому, если вы находитесь в середине буфера, вам придется дважды нажать последовательность клавиш: один раз, чтобы добраться до конца буфера, и второй раз, чтобы добраться до конца истории.
Помимо CTRL + C что вы упомянули. Я нашел нажим ESC а потом Backspace удалит строку (за исключением некоторых символов) до тех пор, пока не появится не алфавитный символ.
Если вы используете set -o vi, вы можете просто сделать следующее:
^C