Есть ли способ включить Ctrl + ←/→ сочетания клавиш (перейти к предыдущему/следующему слову) в консоли Bash, установленной с помощью MSysGit?
MSysGit Bash - как включить Ctrl + стрелки влево/вправо?
Ответ 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)