Это тоже сводило меня с ума, однако я не хотел исправления, относящегося к терминалу, так как я не использую терминал, и для возможности SSH в моем OSX-боксе тоже приходилось использовать правильные сочетания клавиш.
Кроме того, лично я не заботился о ⌥ключе, как обсуждалось ранее; Я хотел сохранить комбинацию ctrl+ ←/, к →которой я привык в Linux.
Чтобы решить эту проблему, я добавил следующее к своему ~/.profile
:
bind '"\e[5C": forward-word'
bind '"\e[5D": backward-word'
bind '"\e[1;5C": forward-word'
bind '"\e[1;5D": backward-word'
Обратите внимание, что первые два относятся к bash в терминале ; последние два относятся к bash в iTerm2 и входящих ssh- соединениях. Не спрашивайте меня, почему эмуляция клавиатуры отличается;)
Для справки, я смог найти, какие именно коды клавиш были на самом деле, благодаря подсказке из этого ответаcat > /dev/null
стекового потока : вы можете запустить, чтобы отслеживать точные коды клавиш, отправленные во время комбинации клавиш.
(Обратите внимание, что для меня, когда я запускаю cat > /dev/null
и нажимаю ctrl+, ←он производит ^[[1;5D
. Ваш точный код ключа может отличаться , но первый ^[
представляется как \e
, как показано в моем примере кода.)
Кстати, если вы хотите увидеть все активные сочетания клавиш bash, запустите bind -p
.