MSysGit Bash - как включить Ctrl+стрелки влево / вправо?

есть ли способ включить Ctrl + / сочетания клавиш (перейти к предыдущему / следующему слову) в консоли Bash, установленной с MSysGit?

7 ответов


в вашем приглашении Bash нажмите Ctrl-v Ctrl-Налево-Стрелка и Ctrl-v Ctrl-Стрелка Вправо и обратите внимание на выход. Вы должны увидеть что-то вроде: ^[OD и ^[OC или аналогичные. Добавьте следующие строки в свой ~/.inputrc:

"\eOC": forward-word
"\eOD": backward-word

где вместо \e для отдыха (^[) и остальные символы, которые вы получили (OD, OC или подобные).

для повторного чтения файла и немедленного внесения изменений нажмите Ctrl-x Ctrl-r.


нашел ответ Тан на AskUbuntu, который работал для меня после того, как ни один из этих ответов вообще. Я переставлю его здесь.

что в ~/.inputrc и /etc/inputrc? Минимум, чтобы заставить эти ключи работать, я думаю:

# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word

если у вас есть это в /etc/inputrc на файл должен быть включен из ~/.inputrc, поэтому проверьте, что он имеет следующую строку:

$include /etc/inputrc

Не совсем ответ на ваш вопрос, но вы можете попробовать ALT -F и ALT -B вместо.


это работает для меня в Windows 7:

добавить это ~/.inputrc Перезагрузите консоль и она должна работать на вас.

это значит, что вы можете сделать либо использовать

CTRL+ или CTRL+

или

ALT+ или ALT+

## Windows msysgit
## Alt + right/left
"\e\e[C": forward-word     ### Alt + right
"\e\e[D": backward-word    ### Alt + left
## Ctrl + right/left
"\e[C": forward-word       ### Ctrl + right
"\e[D": backward-word      ### Ctrl + left

добавление в my~/.inputrc

"\e[1;5C": forward-word
"\e[1;5D": backward-word

мне было достаточно.


для тех, кто смущен, почему он не работает для ctrl+Налево-Стрелка и ctrl+Стрелка Вправо.

Это из-за ошибки с windows 7, возможно, другие, и msys, где ctrl ключ не будут признаны (по крайней мере для моего случая).

чтобы проверить, находитесь ли вы в той же ситуации, сделайте то, что @Dennis говорит:

  • открыть терминал
  • убедитесь, что ctrl+v не был перенесен на что-то другое
  • пресс ctrl+v следовал по ctrl+Налево-Стрелка проверить последовательность клавиш
  • посмотрите на результат

повторите, только нажав Налево-Стрелка.

Если они идентичны, добро пожаловать в мой мир. Теперь вы можете использовать Autohotkey чтобы переназначить ключи или использовать более новые windows Git bash.


я отредактировал файл / etc/inputrc:

      sudo gedit /etc/inputrc

и комментарием out следующего содержания:

      $if term=rxvt
      "\e[8~": end-of-line
      "\eOc": forward-word
      "\eOd": backward-word
      $endif

затем я отредактировал файл ~/.bashrc следующее:

      sudo gedit ~/.bashrc

и добавил следующие строки внизу:

      #### enable Ctrl+Left , Ctrl+Right keybindings:
      bind '"\e[1;5C":forward-word'   # Ctrl+Right
      bind '"\e[1;5D":backward-word'  # Ctrl+Left 

кажется, что работает и, по крайней мере, до сих пор, без побочных эффектов.

(протестировано на Ubuntu GnomeShell Remix 12.04 AMD64)