Как сделать так, чтобы клавиши ctrl-стрелки двигались вперед / назад по слову за раз в Cygwin bash?
97
В установке Cygwin по умолчанию при использовании CTRL-LEFTARROW или CTRL-RIGHTARROW просто печатается 5C или 5D вместо пропуска слова за раз, как ожидалось.
Клавиши Home / End работают правильно, поэтому переназначение должно быть возможным.
Обратите внимание, что этот вопрос адресован Cygwin, но может иметь общее применение к системам Unix / Linux. Если вы используете PuTTY и обнаружили, что приведенные здесь решения не работают для вас, взгляните на вопрос о том, какие коды использовать для PuTTY .
Palswim
Это также случилось со мной под полным Linux; по некоторым советам в Интернете, я добавил ~/.inputrcфайл - который аннулировал все настройки Linux Mint по умолчанию. Вы можете получить их обратно, добавив $include /etc/inputrcв верхнюю часть вашего ~ / .inputrc (при условии, что / etc / inputrc является вашим общесистемным inputrc, который есть в Linux Mint)
Некоторые коды клавиатуры вообще не отображаются, например <kbd> Shift </ kbd> + <kbd> Enter </ kbd>. Как найти эти коды клавиатуры через Mintty / Windows / Cygwin?
Это полезно, но на самом деле не является ответом на вопрос - возможно, было бы лучше в качестве комментария к другому ответу?
Мартин Томпсон
Добавлено в ответ @ Tom выше
dovetalk
7
Если вам нужно что-то, что будет работать без пользовательских настроек среды, например, при работе с общей учетной записью на сервере или просто для ограничения объема используемой пользовательской конфигурации, Bash имеет встроенные средства для этого, которые работают в Cygwin.
А именно Alt+, fчтобы двигаться вперед и Alt+, bчтобы двигаться назад.
Спасибо, хотя я знаю об этих ключах и использую их. Я просто также использую клавиши со стрелками, когда это удобно, и не хочу, чтобы они произносили управляющие коды вместо того, чтобы делать вменяемые вещи и перемещать курсор.
Том
0
При использовании rxvt с cygwin я обнаружил, что решение по этой ссылке работает для меня: control_arrow_keys_in_rxvt .
~/.inputrc
файл - который аннулировал все настройки Linux Mint по умолчанию. Вы можете получить их обратно, добавив$include /etc/inputrc
в верхнюю часть вашего ~ / .inputrc (при условии, что / etc / inputrc является вашим общесистемным inputrc, который есть в Linux Mint)Ответы:
Нашел решение , разместив его здесь для потомков.
Добавьте следующие строки в
~/.inputrc
(C:\cygwin\home\<username>\.inputrc
):Когда вы закончите, вы можете нажать,
C-x C-r
чтобы перечитать.inputrc
файл для текущего сеанса.На что следует обратить внимание, если вам нужны другие подобные настройки: используйте
5A
и5B
для стрелок вверх и вниз, и2x
для сдвинутых версий.«Официальные» сопоставления клавиш описаны в Справочном руководстве по Bash , но для быстрого поиска соответствия клавиш в bash:
^[[1;3C
^[
и заменить его,\e
чтобы сделать\e[1;3C
.inputrc
файл.источник
Вы можете перезагрузить файл .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
:источник
Это решение также работает в
msys2
консолях:Просто поместите эти комбинации клавиш в
.inputrc
файл.источник