Чтобы обнаружить привязку readline, которая убивает слово назад, как вы хотите, вы можете использовать следующую команду в своем терминале:
bind -p | awk '/kill/ && /word/ && /backward/'
В установке Ubuntu по умолчанию вывод может быть:
"\e\C-h": backward-kill-word
# shell-backward-kill-word (not bound)
На данный момент вторая строка не имеет значения, поэтому давайте попробуем понять, что означает первая строка. Из того, что я понимаю, backward-kill-word
функция readline, которая фактически удаляет все символы до предыдущего специального символа ( /
, ;
и ,
т. Д.), Связана с \e\C-h
последовательностью клавиш. Теперь, в этой последовательности \e
представляет на Escключ, \C
- на Ctrlключ, и \C-h
выступает за Ctrl+ , hкоторая эквивалентна в этом случае с Backspaceключом.
Итак, вы ищете Esc+ Ctrl+h сочетание клавиш, которое эквивалентно Esc+Backspace и которое из-за поведения xterm, которое превращает Altключ в мета-символ и метасимволы, преобразуется в двухсимвольную последовательность с самим символом, которому предшествует Esc(см. man xterm
) , эквивалентно Alt+Backspace .
Теперь, если вам это не нравится и вы по-прежнему забываете об этом, вы можете использовать следующую команду для создания нового ярлыка, скажем, Esc+ w, для вашей цели:
bind '"\ew": backward-kill-word'
Чтобы сделать этот новый ярлык постоянным для всех команд, использующих readline, добавьте следующую строку в ваш ~/.inputrc
файл:
"\ew": backward-kill-word
Смотрите help -m bind | sensible-pager
для получения дополнительной информации.
alt
+.
?