如何在 Cygwin bash 中使 ctrl-arrow 键一次向前/向后移动一个词?

Tom*_*Tom 120 cygwin bash

在默认的 Cygwin 安装中,使用 CTRL-LEFTARROW 或 CTRL-RIGHTARROW 只会打印 5C 或 5D,而不是按预期一次跳过一个单词。

Home/End 键工作正常,因此应该可以重新映射。

Tom*_*Tom 164

找到了一个解决方案,将其张贴在这里供后代使用。

将以下行添加到~/.inputrc( C:\cygwin\home\<username>\.inputrc):

"\e[1;5C": forward-word   # ctrl + right
"\e[1;5D": backward-word  # ctrl + left 
Run Code Online (Sandbox Code Playgroud)

完成后,您可以按C-x C-r重新读取.inputrc当前会话的文件。

如果您想要其他类似的自定义,需要注意的事项:使用5A5B用于向上和向下箭头,以及2x用于移动版本。

“官方”键映射在Bash 参考手册 中有描述,但是为了快速找到键映射,在 bash 中:

  1. 类型Ctrl+V
  2. 键入您感兴趣的键序列(例如,Alt+ )。这将打印^[[1;3C
  3. 取下前导^[并将其替换\e\e[1;3C
  4. 将此值放在您的.inputrc文件中。


小智 21

您可以通过以下方式重新加载文件 .inputrc:

bind -f ~/.inputrc
Run Code Online (Sandbox Code Playgroud)

来源

  • 这很有用,但并不是问题的真正答案 - 也许作为对另一个答案的评论会更好? (3认同)

Cos*_*sta 9

如果您想要一些无需自定义环境设置即可工作的内容,例如在服务器上使用共享帐户或仅限制使用的自定义配置数量时,Bash 已为此提供了可在 Cygwin 中使用的内置程序。

Alt+f向前移动,Alt+b向后移动。

http://www.gnu.org/software/bash/manual/html_node/Commands-For-Moving.html

  • 谢谢,虽然我知道这些键并且确实使用它们。我也只是在方便的时候使用箭头键,不希望它们喷出转义码,而不是做一些理智的事情并移动光标。 (4认同)