【发布时间】:2011-05-04 22:27:11
【问题描述】:
有没有办法在安装的 Bash 控制台中启用 Ctrl + ← / → 键盘快捷键(转到上一个/下一个单词)使用 MSysGit?
【问题讨论】:
有没有办法在安装的 Bash 控制台中启用 Ctrl + ← / → 键盘快捷键(转到上一个/下一个单词)使用 MSysGit?
【问题讨论】:
在 Bash 提示符下,按 Ctrl-v Ctrl-左箭头 和 Ctrl -v Ctrl-Right-Arrow 并记下输出。您应该会看到类似:^[OD 和 ^[OC 或类似内容。将以下行添加到您的~/.inputrc:
"\eOC": forward-word
"\eOD": backward-word
您将在其中将 \e 替换为转义 (^[) 和您获得的其余字符(OD、OC 或类似字符)。
要重新读取文件并立即激活更改,请按 Ctrl-x Ctrl-r.
【讨论】:
我在 AskUbuntu 上找到了 this answer by tan,在这些答案都没有解决之后,这对我有用。我会在这里转发。
您的~/.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
【讨论】:
$include /etc/inputrc 完全搞定了。我在~/.inputrc 中创建了一个键盘快捷键(只是为了好玩),从那以后就被搞砸了,因为在我家创建文件时默认跳过了/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
【讨论】:
添加到我的 ~/.inputrc
"\e[1;5C": forward-word
"\e[1;5D": backward-word
对我来说已经足够了。
【讨论】:
对于那些对为什么它不适用于 ctrl+左箭头 和 ctrl+右箭头.
这是因为 Windows 7、可能是其他系统和 msys 的错误导致无法识别 ctrl 键(至少对我而言)。
要检查您是否处于相同的情况,请按照@Dennis 所说的做:
重复只按左箭头。
如果它们相同,欢迎来到我的世界。您现在可以使用Autohotkey 重新映射密钥或使用更新的windows git bash。
【讨论】:
我编辑了文件 /etc/inputrc:
sudo gedit /etc/inputrc
并评论以下几行:
$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 上测试)
【讨论】: