В командной строке Windows (powershell и cmd) при нажатии Escклавиши в строке все, что вы ввели в командной строке, удаляется.
Я обнаружил, что нажатие Esc
клавиши в приглашении bash ничего не делает. Нажмите Esc
и затем backspace
удалите слово, но это должно быть сделано для каждого слова.
Я учу Bash постепенно и иногда набираю что-то глупое в середине строки и чувствую, что лучше печатать снова с нуля. Для этого нажатие backspace
- единственный способ, который я нашел до сих пор.
Чем ты занимаешься?
Мне известны clear
команда и Ctrl-Lярлык, но я не говорю об очистке всего терминала. Просто линия.
bash
command-line
Animesh
источник
источник
Ответы:
Вы хотите
kill-whole-line
, но это не связано по умолчанию в bash.backward-kill-line
( CtrlX Backspace) иunix-line-discard
( CtrlU) оба стирают из текущей точки в начало линии, поэтому просто перейдите в конец строки и используйте любой из них.источник
bind -P
. Я думаю,Ctrl-U
и тогдаCtrl-Y
это единственный вариант.Вы можете использовать Ctrl+, Cчтобы отказаться от всего, что вы печатаете, и получить пустую новую командную строку, см. Неправильно ли использовать CTRL + C для возврата в командную строку? ,
источник
Ctrl+aпереходит в начало строки и Ctrl+kудаляет до конца строки
источник
^U
сначала, в большинстве реализаций режима редактирования командной строки Emacs он уже удаляет всю строку. В тех случаях, когда он удаляет только левый курсор (например, GNU readline), нажмите^K
потом.Чтобы немного расширить ответ Игнасио Васкеса-Абрамса, вы можете получить (почти) Windows-подобное поведение с Escключом в bash, привязав
kill-whole-line
к нему Escследующую командуЕсли вы добавите строку в ваш
~/.inputrc
файл, привязка будет сохраняться между сеансами.Однако обратите внимание, что это очень нестандартно, поскольку bash фактически использует Escключ в качестве другого модифицирующего ключа (например, непостоянного Alt или Ctrl). Если вы посмотрите на список существующих привязок клавиш (с помощью
bind -P
), вы, скорее всего, увидите несколько команд, привязанных к комбинациям клавиш, которые начинаются с "\ e" (например,который устанавливает комбинацию Esc+ Bдля перемещения курсора назад к самому последнему началу слова - скорее как Ctrl+ ←, за исключением того, что вы должны продолжать отпускать Esc(и B, конечно, конечно), если вы хотите сделать это несколько раз подряд ).
И это объясняет, почему я сказал, что поведение, которое вы получаете, почти похоже на Windows: когда вы нажимаете Esc, bash проверяет, используете ли вы его в сочетании с другой клавишей; так что, если вы связываете это
kill-whole-line
, есть небольшая задержка между нажатием (или, скорее, отпуском) Escи bash, очищающим линию для вас.Однако, если вас это не волнует, и вы предпочитаете жить с задержкой, а не переучиваться на другое нажатие клавиши, это можно сделать.
(Примечание: большая часть информации, которую я здесь получил в результате чтения - и перехода по ссылкам - этот ответ .)
источник
[19;
другой или похожий код перехода. В конце концов я нашел отображение"\e\e"
вkill-whole-line
(т.е. нажмите Esc дважды , чтобы очистить линию) хороший компромисс.Esc
любом случае я часто бью несколько раз, так что могу попробовать. В настоящее время я связан сCtrl
+,Del
но я никогда этого не помню.