Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

Я нашел этот ответ от tan on 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

Ответ 3

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

Ответ 4

Это работало для меня в 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

Ответ 5

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

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

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

Ответ 6

Для тех, кто путается, почему он не работает для ctrl + Left-Arrow и ctrl + Right-Arrow.

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

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

  • Открыть терминал
  • Убедитесь, что ctrl + v не был переназначен на что-то еще.
  • Нажмите ctrl + v, а затем ctrl + Left-Arrow, чтобы проверить последовательность клавиш
  • Посмотрите на выход

Повторяйте, только нажав Left-Arrow.

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

Ответ 7

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