Чтобы обнаружить привязку 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+.?