Как привязать Shift-Tabсочетание клавиш к действию в Bash?
Я пытался узнать код ключа Shift-Tabкомбинации
# sed -n l
^[[Z
\033[Z$
^C
и
# read a ; echo $a | hexdump -cC
^[[Z
0000000 033 [ Z \n
00000000 1b 5b 5a 0a |.[Z.|
00000004
Исходя из этого, я предполагаю, что код клавиши — \e[Z
. Так что bind "\e[Z":menu-complete-backward
должно сработать. Однако он привязывает действие к \.
$ bind -p > bind.before
$ bind "\e[Z":menu-complete-backward
$ bind -p > bind.after
$ diff -y --suppress-common-lines bind.before bind.after
# menu-complete-backward (not bound) | "\\": menu-complete-backward
"\\": self-insert <
решение1
Попробуйте заключить параметр в одинарные кавычки:
bind '"\e[Z":menu-complete-backward'