В стандартной установке Cygwin, используя CTRL-LEFTARROW или CTRL-RIGHTARROW, просто печатается 5C или 5D вместо пропуска слова за раз, как ожидалось.
Клавиши Home/End работают должным образом, поэтому переназначение должно быть возможным.
Нашел решение, разместив его здесь для потомков.
Добавьте следующие строки в ~/.inputrc
(C:\cygwin\home\<username>\.inputrc
):
"\e[1;5C": forward-word # ctrl + right
"\e[1;5D": backward-word # ctrl + left
Когда вы закончите, вы можете нажать C-x C-r
чтобы перечитать файл .inputrc
для текущего сеанса.
На что следует обратить внимание, если вам нужны другие подобные настройки: используйте 5A
и 5B
для стрелок вверх и вниз и 2x
для сдвинутых версий.
"Официальные" сопоставления клавиш описаны в Справочном руководстве Bash, но для быстрого поиска соответствия клавиш в bash:
^[[1;3C
^[
и замените его на \e
чтобы сделать \e[1;3C
.inputrc
.Если вам нужно что-то, что будет работать без пользовательских настроек среды, например, при работе с общей учетной записью на сервере или просто для ограничения объема используемой пользовательской конфигурации, Bash имеет встроенные средства для этого, которые работают в Cygwin.
А именно, Alt+f, чтобы двигаться вперед, и Alt+b, чтобы двигаться назад.
http://www.gnu.org/software/bash/manual/html_node/Commands-For-Moving.html
При использовании rxvt с cygwin я обнаружил, что решение по этой ссылке работает для меня: control_arrow_keys_in_rxvt.
Добавьте следующие строки в ~/.inputrc
:
"\eOd": backward-word
"\eOc": forward-word
Это решение также работает в консолях msys2
:
"\e[1;5C": forward-word # ctrl + right
"\e[1;5D": backward-word # ctrl + left
Просто поместите эти комбинации клавиш в файл .inputrc
.