Как очистить/удалить текущую строку в терминале?

Если я использую терминал и набираю строку текста для команды, есть ли горячая клавиша или какой-либо способ очистить/удалить эту строку?

например, если моя текущая строка / команда-это что-то действительно длинное, как:

> git log --graph --all --blah..uh oh i want to cancel and clear this line <cursor is here now>

есть ли горячая клавиша или команда отправиться из вышеперечисленного:

>

?

обычно я буду нажимать ключ, и если моя текущая строка является совершенно новой в истории, это очистит ее. Но если я буду через мою историю команд через ключ и начать редактирование или использование этих команд только изменит приглашение на следующую новейшую команду в истории, поэтому она не работает здесь, Если я не нажму несколько раз.

12 ответов


можно использовать Ctrl+U очистить до начала.

можно использовать Ctrl+W чтобы удалить только слово.

вы также можете использовать Ctrl+C отменить.

Если вы хотите сохранить историю, вы можете использовать Alt+ Shift+# сделать это замечание.


Bash Emacs Режим Редактирования Чит Лист


просто обобщить все ответы

  • очистите линию: вы можете использовать Ctrl+U чтобы прояснить до начала.
  • очистить строку: Ctrl+A Ctrl+K стереть текущую строку в терминале
  • отменить текущую команду/строку: Ctrl+C.
  • отозвать удаленную команду:Ctrl+Y (тогда Alt+Y)
  • перейти в начале строки:Ctrl+A
  • перейти в конце строки:Ctrl+E
  • удалите передние слова, например, если вы находитесь в середине команды:Ctrl+K
  • удалить символы слева до начала слова: Ctrl+W
  • очистить вся командная строка:Ctrl + L
  • переключение между началом строки и текущей позицией курсора: Ctrl + XX

У меня есть полный список ярлыков:

  1. Ctrl+a переместить курсор в начало строки
  2. Ctrl+e переместить курсор в конец строки
  3. Ctrl+b переместить назад один символ
  4. Alt+b Отодвинься на одно слово
  5. Ctrl+f шаг вперед характер
  6. Alt+f переместить вперед на одно слово
  7. Ctrl+d удалить текущий символ
  8. Ctrl+w вырезать последнее слово
  9. Ctrl+k вырезать все после курсора
  10. Alt+d вырезать слово после курсора
  11. Alt+w вырезать слово перед курсор
  12. Ctrl+y вставить последнюю удаленную команду
  13. Ctrl+_ отменить
  14. Ctrl+u вырезать все перед курсором
  15. Ctrl+xx переключение между первой и текущей позицией
  16. Ctrl+l очистить терминал
  17. Ctrl+c отменить команду
  18. Ctrl+r команда поиска в истории-введите поисковый запрос
  19. Ctrl+j завершить поиск в текущей записи истории
  20. Ctrl+g отменить поиск и восстановить исходную строку
  21. Ctrl+n следующая команда из История
  22. Ctrl+p предыдущая команда из истории

Ctrl+на, Ctrl+K стереть текущую строку в терминале. Затем вы можете вспомнить его с Ctrl+Y Если вам нужно.


или если вы используете режим vi, нажмите Esc следовал по cc

чтобы вернуть то, что вы только что стерли,Esc а то p :)


альтернатива Ctrl+на, Ctrl+K и Ctrl+E, Ctrl+U.


Я не уверен, что вам это нравится, но я использую Ctrl+на (для начала строки) и Ctrl+K (чтобы удалить строку) я был знаком с этими командами из emacs и выяснил их случайно.


  • Ctrl+u: движение до начала вашей линии до кольцевого буфера
  • Ctrl+k: движение до конца вашей линии до кольцевого буфера
  • Ctrl+w: движение символы и (несколько) слова, оставленные от курсора до кольцевого буфера

  • Ctrl+y: вставить последний запись из кольцевого буфера, а затем вы можете использовать Alt+y для вращения через кольцевой буфер. Нажмите несколько раз, чтобы продолжить" предыдущую " запись в кольцевом буфере.


CTRL+R и начать печатать для поиска предыдущих команд в истории. Покажет полные строки.
CTRL+R снова в цикл.


Ctrl + W очистит слово слева.


добавить в список:

в режиме Emacs, нажмите Esc, следовал по R, удалит всю строку.

Я не знаю, почему, просто бывает найти его. Возможно, он не используется для удаления строки, но имеет тот же эффект. Если кто-то знает, пожалуйста, скажите мне, спасибо:)

работает в Bash, но не будет работать в Fish.


чтобы удалить всю строку независимо от того, где находится курсор, вы можете использовать kill-whole-line команда, но по умолчанию она несвязана. Это может быть связано, например, Ctrl+Alt+K вставить

"\e\C-k": kill-whole-line

в ваш файл инициализации Readline (обычно ~/.inputrc).

различные замечания:

  • чтобы избежать случайного повторного назначения клавиш, которое уже используется для чего-то другого, вы может проверить все ваши привязки с bind -P. Проверьте предлагаемую привязку с помощью

    bind -P | grep '\e\C-k'
    
  • имя файла инициализации Readline берется из переменной оболочки INPUTRC. Если он не установлен, значение по умолчанию -~/.inputrc, или (если не существует) /etc/inputrc. Обратите внимание, что если у вас есть ~/.inputrc, /etc/inputrc будет проигнорировано.
  • чтобы перезагрузить файл инициализации Readline, вы можете использовать Ctrl+X Ctrl+R.
  • ссылки на соответствующие разделы: