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

619

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

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

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

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

>

?

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

Показать ещё 1 комментарий
Теги:
terminal

14 ответов

1040
Лучший ответ

Вы можете использовать Ctrl + U, чтобы очистить начало.

Вы можете использовать Ctrl + W для удаления всего слова.

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

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


Режим редактирования Bash Emacs Cheat Sheet

  • 189
    Строка, удаленная с помощью Ctrl-U, также вызывается с помощью Ctrl-Y.
  • 51
    Wut? Круто, спасибо keks & kev, ⌃ + U - удалить все до Курсора, ⌃ + K - удалить все после Курсора, ⌃ + A - перейти в начало строки. Технически, ⌃ + C - лучшее решение для вопроса.
Показать ещё 11 комментариев
478

Просто подведем итог всем ответам:

  • Очистите линию: вы можете использовать Ctrl + U, чтобы очистить до начала.
  • Очистите линию: Ctrl + E Ctrl + U, чтобы стереть текущую линию в терминале
  • Очистите линию: Ctrl + A Ctrl + K, чтобы стереть текущую линию в терминале
  • Отмените текущую команду/строку: Ctrl + C.
  • Вызовите удаленную команду: Ctrl + Y (затем Alt + Y)
  • Перейдите к началу строки: Ctrl + A
  • Перейдите к концу строки: Ctrl + E
  • Удалите передовые слова, например, если вы находитесь в середине команды: Ctrl + K
  • Удалите символы слева, до начала слова: Ctrl + W
  • Чтобы очистить всю командную строку: Ctrl + L
  • Переключение между началом строки и текущей позицией курсора: Ctrl + XX
  • 3
    Обратите внимание, Ctrl-K удаляет все между курсором и концом строки.
  • 5
    Удалить следующее слово: Alt + D
Показать ещё 7 комментариев
112

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

  • Ctrl + a Переместить курсор в начало строки
  • Ctrl + e Переместить курсор в конец строки
  • Ctrl + b Переместить один символ
  • Alt + b Верните одно слово
  • Ctrl + f Переместить вперед один символ
  • Alt + f Переместить вперед одно слово
  • Ctrl + d Удалить текущий символ
  • Ctrl + w Вырезать последнее слово
  • Ctrl + k Вырезать все после курсора
  • Alt + d Вырезать слово после курсора
  • Alt + w Вырезать слово перед курсором
  • Ctrl + y Вставить последнюю удаленную команду
  • Ctrl + _ Отменить
  • Ctrl + u Вырезать все перед курсором
  • Ctrl + x x Переключение между первой и текущей позицией
  • Ctrl + l Очистить терминал
  • Ctrl + c Отмените команду
  • Ctrl + r Команда поиска в истории - введите поисковый запрос
  • Ctrl + j Завершить поиск в текущей записи истории
  • Ctrl + g Отменить поиск и восстановить оригинальную строку
  • Ctrl + n Следующая команда из истории
  • Ctrl + p предыдущая команда из истории
  • 6
    Подробный список сочетаний клавиш по умолчанию не сложен для Google, и только случайно отвечает на этот конкретный вопрос. Опубликовать это как ответ здесь сомнительно ИМХО.
  • 4
    Извините, но я предоставил все полезные сочетания клавиш, в которых 7,8,9,10,11,14,16,17 - это удаляемые / удаляемые сочетания клавиш, которые мы можем использовать согласно требованию.
Показать ещё 4 комментария
20

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

15

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

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

  • 3
    Вы можете включить режим vi с помощью echo 'set editing-mode vi' >> ~/.inputrc . Также работает в таких местах, как приглашения интерпретатора Python и некоторые клиенты SQL
10

Альтернативой Ctrl + A, Ctrl + K является Ctrl + E, Ctrl + U.

9

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

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

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

3

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

2

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

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

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

Работает в Bash, но не работает в Fish.

  • 1
    Это команда revert-line : «Отменить все изменения, сделанные в этой строке». По умолчанию он связан с Mr (Meta-R), который может быть как Alt-R, так и Esc R. Это означает, что он на самом деле не удаляет строку, только когда она была пустой с самого начала; если вы прокрутите историю команд назад и измените команду, а затем выполните команду revert-line , она вернется к команде, которой она была изначально, и не удалит строку.
2

Чтобы удалить всю строку независимо от того, где находится курсор, вы можете использовать команду 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.
  • Ссылки на соответствующие разделы руководства:
2

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

1

Чтобы очистить всю линию (2 разных способа):

  • Home, Ctrl + K
  • End, Ctrl + U
0

Просто, чтобы суммировать все ответы

  • Очистить строку: вы можете использовать Ctrl + U, чтобы очистить начало.
  • Очистите строку: Ctrl + A Ctrl + K, чтобы стереть текущую строку в терминале
  • Отмените текущую команду/строку: Ctrl + C.
  • Вызовите удаленную команду: Ctrl + Y
  • Перейдите в начало строки: Ctrl + A
  • Удалите передние слова, например, если вы находитесь в середине команды: Ctrl + K
  • Удалить символы слева, до начала слова: Ctrl + W

Здесь я добавлю еще одну важную команду:

  • Чтобы очистить всю командную строку: Ctrl + L

Ещё вопросы

Сообщество Overcoder
Наверх
Меню