Используя Ctrl или Alt AND для возврата последнего слова в Bash

15789
licorna

В Linux я привык нажимать Ctrl- Backspaceчтобы удалить последнее слово, но я не знаю, как это сделать в терминале Bash.

В OS XI используйте Alt- Backspaceчтобы сделать то же самое.

Есть ли способ сделать Bash признать Ctrl- или Alt- Backspaceкомбинацию клавиш, чтобы удалить последнее слово?

В Linux я использую в terminatorкачестве эмулятора терминала, в OSX я использую iTerm2.

15
Alt-⌫ aka Alt- ← aka Alt-Backspace прекрасно работает для меня. Я использую Терминатор 0,93. Teddy 12 лет назад 1

5 ответов на вопрос

31
slhck

Вы всегда можете использовать Ctrl- W. Он удаляет слово перед курсором и работает в каждом Bash.

Смотрите здесь список сочетаний клавиш Bash .

Вау, это может измениться, как я использую терминал навсегда. Спасибо! David 11 лет назад 1
Это не отвечает на вопрос Sel 7 лет назад 1
5
Daniel Beck

Вам просто нужно установить Option в качестве мета-ключа в настройках iTerm ( Профили »Ключи ).

backward-kill-wordMeta-Ruboutпо умолчанию привязан к (то есть Opt-Backspace).

Та же опция существует (хотя и менее гибкая) в Apple Terminal.app.

На самом деле, вы должны использовать настройку "+ Esc". Только установка «действует как: мета» приводит к печати «?» Вместо удаления слова. slhck 12 лет назад 2
@slhck Не для меня. Но так как разработчики рекомендуют это в любом случае, это не может быть плохо. Daniel Beck 12 лет назад 0
2
OlivierBlanvillain

In terminator you can use the following "plugin", along with

[keybindings] kill_word = <Control>BackSpace 

in your config file. This will map Ctrl-Backspace to ESCDEL, another shorcut to delete last word.

К сожалению, это перестало работать в терминаторе 1.9. Не могли бы вы предоставить решение случайно? Sel 7 лет назад 0
Извините, давно перестал пользоваться терминатором ... OlivierBlanvillain 7 лет назад 1
2
Sel

Вы можете создать файл .inputrcв вашем домашнем каталоге и добавить этот контент внутри:

"\C-h": backward-kill-word 
Обратите внимание, что это и `Cw` в принятом ответе отличаются тем, что считается словом. `Cw` будет удалять из позиции курсора до тех пор, пока он не встретит непробельные символы, а затем пробел (т. Е.` "Это a / se = weird | test" `где` | `помечает позицию курсора, даст" "это тест "`). Напротив, связывание здесь `Ch` (которое можно связать с помощью` bind '"\ Ch": backward-kill-word "` в `.bashrc`) приведет к` "это / se = test" ` , поскольку он в основном разграничивает слова о том, что переменная bash будет, а не только пробелы. jeremysprofile 5 лет назад 1
0
Luca Steeb

You can just use Alt-DEL instead of the normal Strg-DEL.