Если я использую терминал и набираю строку текста для команды, есть ли горячая клавиша или любой способ удалить/удалить эту строку?
Например, если моя текущая строка/команда действительно очень длинна:
> git log --graph --all --blah..uh oh i want to cancel and clear this line <cursor is here now>
Есть ли горячая клавиша или команда, чтобы перейти от выше:
>
?
Обычно я нажимаю клавишу ↓, и если моя текущая строка является совершенно новой в истории, это очистит ее. Но если я пройду свою историю команд с помощью клавиши ↑ и начну редактировать или используя эти команды, ↓ изменит приглашение только на следующую новейшую команду в истории, поэтому она не работает здесь, если я не нажимаю ↓ несколько раз.
Вы можете использовать Ctrl + U, чтобы очистить начало.
Вы можете использовать Ctrl + W для удаления всего слова.
Вы также можете использовать Ctrl + C для отмены.
Если вы хотите сохранить историю, вы можете использовать Alt + Shift + #, чтобы сделать комментарий.
Просто подведем итог всем ответам:
Alt + D
У меня есть список ярлыков:
Ctrl + A, Ctrl + K, чтобы стереть текущую строку в терминале. Затем вы можете вызвать его с помощью Ctrl + Y, если вам нужно.
или если вы используете режим vi, нажмите Esc, а затем cc
чтобы вернуть то, что вы только что стерли, Esc, а затем p:)
echo 'set editing-mode vi' >> ~/.inputrc
. Также работает в таких местах, как приглашения интерпретатора Python и некоторые клиенты SQL
Альтернативой Ctrl + A, Ctrl + K является Ctrl + E, Ctrl + U.
Я не уверен, нравится ли вам это, но я использую Ctrl + A (чтобы начать начало строки) и Ctrl + K (чтобы удалить строку). Я был знаком с этими командами из emacs, и выяснили их случайно.
Ctrl + w: переместить символы и (несколько) слова, оставшиеся с вашего курсора, в кольцевой буфер
Ctrl + y: вставьте последнюю запись из буфера звонка, а затем вы можете использовать Alt + y для поворота в кольцевом буфере. Нажмите несколько раз, чтобы перейти к "предыдущей" записи в кольцевом буфере.
CTRL + R и начните вводить текст для поиска предыдущих команд в истории. Покажет полные строки.
CTRL + R снова для цикла.
Добавить в список:
В режиме Emacs нажмите Esc, а затем R, удалит всю строку.
Я не знаю, почему, просто бывает, чтобы найти его. Может быть, он не используется для удаления строки, но имеет тот же эффект. Если кто-то знает, пожалуйста, скажите мне, спасибо:)
Работает в Bash, но не работает в Fish.
revert-line
: «Отменить все изменения, сделанные в этой строке». По умолчанию он связан с Mr
(Meta-R), который может быть как Alt-R, так и Esc R. Это означает, что он на самом деле не удаляет строку, только когда она была пустой с самого начала; если вы прокрутите историю команд назад и измените команду, а затем выполните команду revert-line
, она вернется к команде, которой она была изначально, и не удалит строку.
Чтобы удалить всю строку независимо от того, где находится курсор, вы можете использовать команду kill-whole-line
, но она по умолчанию отключена. Он может быть связан, например, с Ctrl + Alt + K, вставив
"\e\C-k": kill-whole-line
в ваш файл инициализации Readline (условно ~/.inputrc
).
Различные замечания:
Чтобы избежать случайного повторного назначения последовательности клавиш, которая уже используется для чего-то другого, вы можете проверить все свои привязки с помощью bind -P
. Проверьте предлагаемое связывание с
bind -P | grep '\\e\\C-k'
INPUTRC
. Если он не установлен, по умолчанию используется ~/.inputrc
, или (если этого не существует) /etc/inputrc
. Обратите внимание, что если у вас ~/.inputrc
, /etc/inputrc
будет проигнорирован.Ctrl + W очистит слово слева.
Чтобы очистить всю линию (2 разных способа):
Просто, чтобы суммировать все ответы
Здесь я добавлю еще одну важную команду: