在默认的 Cygwin 安装中,使用 CTRL-LEFTARROW 或 CTRL-RIGHTARROW 只会打印 5C 或 5D,而不是像预期的那样一次跳过一个单词。
Home/End 键工作正常,因此可以重新映射。
答案1
找一个解决方案,将其发布在这里以供后人参考。
将以下几行添加到~/.inputrc
( C:\cygwin\home\<username>\.inputrc
) 中:
"\e[1;5C": forward-word # ctrl + right
"\e[1;5D": backward-word # ctrl + left
完成后,您可以按C-x C-r
重新读取.inputrc
当前会话的文件。
如果您想要其他类似的定制,请注意以下事项:使用5A
和5B
表示向上和向下箭头,使用和2x
表示移位版本。
“官方”键映射描述在Bash 参考手册,但是要在 bash 中快速找到键映射,请执行以下操作:
- 类型Ctrl+V
- 输入您感兴趣的按键序列(例如Alt+ →)。这将打印
^[[1;3C
- 删除前导
^[
并将其替换\e
为\e[1;3C
- 将该值放入您的
.inputrc
文件中。
答案2
答案3
如果您想要一些无需自定义环境设置即可工作的东西,例如在服务器上使用共享帐户时工作,或者只是为了限制使用的自定义配置量,Bash 有可在 Cygwin 中运行的内置功能。
即Alt+f为向前移动,Alt+b为向后移动。
http://www.gnu.org/software/bash/manual/html_node/Commands-For-Moving.html
答案4
此解决方案也适用于msys2
控制台:
"\e[1;5C": forward-word # ctrl + right
"\e[1;5D": backward-word # ctrl + left
只需将这些组合键放在.inputrc
文件中即可。