Використовуючи Ctrl або Alt AND backspace для видалення останнього слова в Bash


17

У Linux я звик натискати Ctrl- Backspaceщоб видалити останнє слово, але я не знаю, як це зробити в терміналі Bash.

В OS XI використання Alt- Backspaceробити те саме.

Чи є якийсь спосіб змусити Баша розпізнати комбінацію клавіш Ctrl- або Alt- Backspaceдля видалення останнього слова?

У Linux я використовую terminatorяк емулятор терміналу, в OSX я використовую iTerm2.


1
Alt-⌫ aka Alt- ← aka Alt-Backspace для мене працює чудово. Я використовую Terminator 0.93.
Тедді

Відповіді:


31

Ви завжди можете використовувати Ctrl- W. Він видаляє слово перед курсором і працює в кожному Bash.

Дивіться тут список ярликів клавіатури Bash .


1
Нічого цього, можливо, це змінило те, як я користуюся терміналом назавжди. Спасибі!
Девід

4
Це не відповідає на питання
Сел

5

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

backward-kill-wordMeta-Ruboutза замовчуванням прив'язується до (тобто Opt-Backspace).

Такий же варіант є (хоча і менш гнучким) в Apple Terminal.app від Apple.


2
Насправді, ви повинні використовувати налаштування "+ Esc". Тільки встановивши його на "діє як: мета", ?виходить друком замість того, щоб слово було видалено.
slhck

@slhck Не для мене. Але оскільки розробники рекомендують це все одно, це не може бути поганим.
Даніель Бек

2

У термінаторі ви можете використовувати наступний " плагін " разом з

[keybindings]
    kill_word = <Control>BackSpace

у вашому конфігураційному файлі. Це дозволить зіставити Ctrl- Backspaceдо ESCDEL, інший ярлик для видалення останнього слова.


На жаль, це припинило роботу в термінаторі 1.9. Чи можете ви надати виправлення будь-яким випадком?
Сів

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"a .bashrc) дала б результат "this is a/se= test", оскільки в основному вона розмежовує слова на те, що би змінна bash, а не просто пробіли.
jeremysprofile

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.