Bash:如何一次一个字地将光标向左移动?

nip*_*ese 16 bash keyboard-shortcuts

在 OSX 中,我可以按住option键并按左光标键,直到找到我需要编辑的单词(或者在 Vi 中,我可以点击b,但我无法弄清楚如何在终端中执行此操作然而...

dan*_*ann 28

设置键绑定:您首先必须找出Ctrl+Left键序列创建的键代码。只需使用该命令cat关闭对现有键绑定的任何干扰,然后键入键序列。在我的系统 (Linux) 中,这看起来像这样:

$ cat
^[[1;5D
Run Code Online (Sandbox Code Playgroud)

Ctrl+d退出猫。现在您已经发现 Ctrl-Left 发出 6 个键代码:

  • 转义 (^[)
  • [
  • 1
  • ;
  • 5
  • D

现在您可以发出 bind 命令:

bind '"\e[1;5D": backward-word'
Run Code Online (Sandbox Code Playgroud)

  • 如果需要,您可以将 ``"\e[1;5D": back-word '' 添加到 $HOME/.inputrc 中以获得永久效果。 (6认同)
  • +1 以最灵活的方式在任何地方绑定任意组合键! (2认同)

Mic*_*zek 15

你想要的 bash 函数是backward-word. 您可以运行bind -q backward-word以获取绑定到该函数的键列表。一种常见的绑定是Esc+b

此外,许多终端支持Ctrl+ Left(您可以在 X 中使用相同的热键按单词向后跳转)

  • @nipponese "esc b" 也可以在键盘上用作 ALT-b。根据您的配置,这可能需要特别是左侧或右侧 alt,因此请同时尝试。 (4认同)

Mar*_*ana 8

Bash 中的默认快捷键backword-wordAlt+ b。使用Esc+可以获得相同的结果b。在编辑键绑定之前,您应该尝试一下。

使用bind命令来编辑或bind -q [name]获取特定操作的当前键绑定。

  • ...并向前 - `Alt + f` (2认同)