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

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

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

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

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

>

?

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

Ответ 1

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

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

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

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


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

Ответ 2

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

  • Очистите линию: вы можете использовать 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 + 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 предыдущая команда из истории

Ответ 4

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

Ответ 5

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

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

Ответ 6

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

Ответ 7

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

Ответ 8

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

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

Ответ 9

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

Ответ 10

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

Ответ 11

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

Ответ 12

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

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

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

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

Ответ 13

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

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

Ответ 14

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

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

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

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