MSysGit Bash - как включить Ctrl + стрелки влево / вправо? - PullRequest
34 голосов
/ 04 ноября 2010

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

Ответы [ 7 ]

51 голосов
/ 04 ноября 2010

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

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

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

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

29 голосов
/ 27 сентября 2013

Я нашел этот ответ от tan на 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
11 голосов
/ 04 ноября 2010

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

6 голосов
/ 09 июля 2015

Это сработало для меня в 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
4 голосов
/ 24 мая 2013

Добавление к моему ~ / .inputrc

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

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

2 голосов
/ 09 сентября 2015

Для тех, кто не понимает, почему он не работает для ctrl + Стрелка влево и Ctrl + Стрелка вправо .

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

Комупроверьте, попали ли вы в ту же ситуацию, сделайте то, что говорит @Dennis:

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

Повторите только нажатием Стрелка влево .

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

1 голос
/ 07 января 2013

Я отредактировал файл / 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)

...