Если я использую терминал и набираю строку текста для команды, есть ли горячая клавиша или какой-либо способ очистить / удалить эту строку?
Например, если моя текущая строка / команда очень длинная, например:
> 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+, #чтобы сделать ее комментарием.
Шпаргалка по режиму редактирования Bash Emacs
источник
<kbd>...</kbd>
тегу показывать ключи в SO.ESC
- это собственная клавиша-модификатор в bash. Он используется для отмены навигации по истории (CTRL
+r
) или для замены двух последних слов за курсором (ESC
+t
).Просто суммируем все ответы:
источник
Alt + D
Alt
+D
не работает, поэтому я не включил его :(CTRL + L
очищает экран, но сохраняет то, что было введено в текущей командной строке.Ctrl + Alt + >
перемещается в конец истории ввода, которая идеально подходит для отмены поиска в истории.У меня есть полный список ярлыков:
источник
CTRL
+L
(16.) сохраняет содержимое текущей командной строки.Ctrl
+h
: удалить символ перед курсоромCtrl+ A, Ctrl+ Kчтобы стереть текущую строку в терминале. Затем вы можете вспомнить его с помощью Ctrl+, Yесли вам нужно.
источник
или если вы используете режим vi, нажмите, Escа затемcc
чтобы вернуть то, что вы только что стерли, Escа потом p:)
источник
echo 'set editing-mode vi' >> ~/.inputrc
. Также работает в таких местах, как запросы интерпретатора Python и некоторые клиенты SQLЯ не уверен, что вам это нравится, но я использую Ctrl+ A(чтобы начать строку) и Ctrl+ K(чтобы удалить строку). Я был знаком с этими командами из emacs и случайно их выяснил.
источник
Альтернатива Ctrl+ A, Ctrl+ Kэто Ctrl+ E, Ctrl+ U.
источник
Ctrl+ w: переместить символы и (несколько) слов влево от курсора в кольцевой буфер
Ctrl+ y: вставьте последнюю запись из вашего кольцевого буфера, а затем вы можете использовать Alt+ yдля вращения через ваш кольцевой буфер. Нажмите несколько раз, чтобы перейти к «предыдущей» записи в кольцевом буфере.
источник
CTRL+ Rи начните вводить для поиска предыдущих команд в истории. Покажет полные строки.
CTRL+ Rснова к циклу.
источник
Ctrl + W очистит слово слева.
источник
Добавить в список:
В режиме Emacs нажатие Esc, а затем Rудаление всей строки.
Я не знаю почему, просто случайно нашел его. Возможно, он не используется для удаления строки, но имеет тот же эффект. Если кто-то знает, скажите, пожалуйста, спасибо :)
Работает в Bash, но не работает в Fish.
источник
revert-line
readline: «Отменить все изменения, сделанные в этой строке». По умолчанию он связан сM-r
(Meta-R), который может быть как Alt-R, так и Esc R. Это означает, что он на самом деле не удаляет строку, только когда она была пустой с самого начала; Если вы прокрутите историю команд назад и измените команду, а затем выполните команду,revert-line
она вернется к той команде, которой она была изначально, и не удалит строку.Чтобы удалить всю строку независимо от того, где находится курсор, вы можете использовать
kill-whole-line
команду, но по умолчанию она не связана. Это может быть связано, например, с Ctrl+ Alt+ K, вставивв ваш файл инициализации Readline (условно
~/.inputrc
).Различные замечания:
Чтобы избежать случайного переназначения последовательности клавиш, которая уже используется для чего-то другого, вы можете проверить все свои привязки с помощью
bind -P
. Проверьте предложенное связывание сINPUTRC
. Если оно не установлено, по умолчанию используется значение (~/.inputrc
или (если оно не существует)/etc/inputrc
. Обратите внимание, что если у вас есть~/.inputrc
,/etc/inputrc
будут игнорироваться.bind
встроеннаяисточник
Для очистки всей линии (2 разных способа):
источник
Alt+ #комментирует текущую строку. Это будет доступно в истории при необходимости.
источник