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


17

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

В OS XI используют Alt- Backspaceдля того же.

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

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


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

Ответы:


31

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

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


1
Вау, это могло измениться навсегда. Благодарность!
Дэвид

4
Это не отвечает на вопрос
Sel

5

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

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

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


2
На самом деле, вы должны использовать настройку "+ Esc". Только установка «действует как: мета» приводит ?к печати вместо удаления слова.
slhck

@slhck Не для меня. Но так как разработчики рекомендуют это в любом случае, это не может быть плохо.
Даниэль Бек

2

В терминаторе вы можете использовать следующий « плагин » вместе с

[keybindings]
    kill_word = <Control>BackSpace

в вашем конфигурационном файле. Это отобразит Ctrl- Backspaceна ESCDELдругой ярлык для удаления последнего слова.


К сожалению это перестало работать в терминаторе 1.9. Не могли бы вы предоставить решение случайно?
Sel

1
Извините, давно перестал пользоваться терминатором ...
OlivierBlanvillain

2

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

"\C-h": backward-kill-word

1
Обратите внимание, что это и C-wпринятый ответ отличаются тем, что считается «словом». C-wудаляет из позиции курсора до тех пор, пока не встретит непробельные символы, а затем пробел (т. е. там, "this is a/se=weird |test"где будут |отмечены позиции курсора "this is test"). В отличие от этого, C-hсвязывание здесь (которое может быть связано с использованием bind '"\C-h": backward-kill-word"в .bashrc) даст результат "this is a/se= test", так как он в основном ограничивает слова о том, что переменная bash будет, а не только пробелы.
Jeremysprofile

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.