我知道组合 控制键+A 跳转到当前命令的开头,并且 控制键+ 跳到最后。

但是有没有办法逐字跳转,比如 替代+/ 在Cocoa应用程序中呢?

有帮助吗?

解决方案

开箱即用,你可以使用相当奇怪的 Esc键+F 移动到下一个单词的开头并且 Esc键+ 移动到当前单词的开头。

其他提示

在 Mac OS X 上 - 默认情况下可以使用以下键盘快捷键。请注意,您必须使 选项 关键行为就像 在终端首选项中(在键盘选项卡下)

  • 替代 (⌥)+FF一句话简介
  • 替代 (⌥)+差一个字

我发现用于简单文本导航的默认 emacs 键绑定似乎适用于 bash shell。您可以使用

  • 替代 (⌥)+D 删除从当前光标位置开始的单词
  • 控制键+A 跳到行首
  • 控制键+ 跳到行尾
  • 控制键+K 终止从光标位置开始的行
  • 控制键+ 从终止缓冲区粘贴文本
  • 控制键+ 从历史记录中反向搜索您过去输入的命令
  • 控制键+S 转发搜索(对我来说适用于 zsh,但不适用于 bash)
  • 控制键+F 向前移动一个字符
  • 控制键+ 向后移动一个字符
  • 控制键+ 从光标位置向后删除单词

您可以这样做

默认情况下,终端具有以下用于逐字移动(向左和向右)的快捷键:

  • Esc键+ (左边)
  • Esc键+F (正确的)

您可以配置 替代+ 为您生成这些序列:

  • 打开终端首选项(指令+,);
  • 在“设置”选项卡中,选择“键盘”并双击 ⌥ ← 如果存在,则添加;如果不存在,则添加。
  • 根据需要设置修饰符,然后在框中键入快捷键: Esc键+, ,生成文本 \033b (您无法手动输入此文本)。
  • 重复单词右侧 (Esc键+F 变成 \033f)

或者,您可以参考 textmate 上的这篇博文:

http://blog.macromates.com/2006/word-movement-in-terminal/

切换到 iTerm2. 。它是免费的,而且比普通的旧终端好得多。它还具有更多自定义选项,例如键盘快捷键。

我也喜欢你可以使用 指令 和 1-9 在选项卡之间切换。尝试一下,您将永远不会回到常规终端:)

如何在 iterm2 中设置自定义键盘首选项

  • 安装iTerm2
  • 启动然后转到首选项窗格。
  • 选择键盘配置文件选项卡
  • 您需要将配置文件复制到新的内容,然后删除箭头键快捷键,例如 ^+ 正确的/左边 或者,如果您不关心备份,只需从默认配置文件中删除它们即可。
  • 接下来确保选择您修改后的个人资料(已加星标)

Picture 1.png

  • 现在选择键盘选项卡(最顶行)

iTerm 2

  • 单击加号按钮添加新的键盘快捷键
  • 在第一个框中输入 指令管理系统+左箭头
  • 在第二个框中选择“发送转义码”
  • 在第三个框中输入字母

Picture 2.png

  • 使用所需的组合键重复此操作。 逃脱+ 向左移动一个单词, 逃脱+F 向右移动一个单词。
  • 您可能还希望设置 指令+d 删除光标前面的单词 逃脱+d

我经常按错按钮(指令 / 控制 / 替代)用箭头键,所以我有我的箭头键组合,这些按钮都设置为向前和向后跳跃单词,但请做最适合你的事情。

实际上有更好的方法。抓住 选项 ( 替代 在某些键盘上),然后按向左或向右箭头键按单词移动。就那么简单。

选项
选项

控制键e 将带您到队列的末尾并且 控制键A 将带您回到起点。

我有 替代+/ 在职的:打开 首选项 » 设置 » 键盘, ,设置条目 选项光标向左发送字符串到 shell:\033b, ,并设置 选项光标向右发送字符串到 shell:\033f. 。您还可以将其用于其他控制键组合。

实际上这取决于您使用的 shell,但是大多数 shell 都有类似的绑定。您所指的绑定(例如 控制键+A控制键+)是您可以在许多其他程序中找到的绑定,它们已经使用了很长时间,顺便说一句,它也适用于大多数 UI 应用程序。

下面是 Bash 的默认绑定:

最重要的 Bash 键盘快捷键

另请注意,您可以自定义它们。您需要创建一个文件,名称随意,我将其命名为 .bash_key_bindings 并将其放入我的主目录中。在那里您可以设置一些常规 bash 选项,还可以设置键绑定。为了确保它们被应用,您需要修改一个名为 “.bashrc” bash 在启动时读取(如果不存在,则必须创建它)并在其中进行以下调用:

bind -f ~/.bash_key_bindings

~ 表示 bash 中的主目录,如上所述,您可以根据需要命名文件,也可以将其放置在您喜欢的位置,只要您提供正确的路径+名称进行绑定即可。

让我向您展示 .bash_key_bindings 文件的一些摘录:

set meta-flag on
set input-meta on
set output-meta on
set convert-meta off
set show-all-if-ambiguous on
set bell-style none
set print-completions-horizontally off

这些只是设置了几个选项(例如禁用铃声;这都可以在 bash 网页上查找)。

"A": self-insert
"B": self-insert
"C": self-insert
"D": self-insert
"E": self-insert
"F": self-insert
"G": self-insert
"H": self-insert
"I": self-insert
"J": self-insert

这些确保字符本身除了确保字符被“键入”之外什么也不做(它们将自身插入到 shell 中)。

"\C-dW": kill-word
"\C-dL": kill-line
"\C-dw": backward-kill-word
"\C-dl": backward-kill-line
"\C-da": kill-line

这很有趣。如果我打 控制键+D 单独(我选择 d 进行删除),什么也没有发生。但如果我随后输入小写 w,则光标左侧的单词将被删除。但是,如果我输入大写字母,光标右侧的单词就会被删除。对于从光标开始的整行,l 和 L 也是如此。如果我输入“a”,则整行实际上被删除(光标之前和之后的所有内容)。

我把向前跳一个字放在 控制键+F 并向后倒一个字 控制键+

"\C-f": forward-word
"\C-b": backward-word

正如您所看到的,您可以创建一个快捷方式,立即导致一个操作,或者您可以创建一个快捷方式,仅初始化一个字符序列,然后您必须键入一个(或多个)字符来导致操作发生,如下所示如上面的示例所示。

因此,如果您对默认绑定不满意,请随意根据需要自定义它们。这是一个 bash 手册的链接 了解更多信息。

如果你碰巧是 Vim 用户,你可以尝试 bash 的 vim 模式。运行它或将其放入您的 ~/.bashrc 文件:

set -o vi

默认情况下,您处于插入模式;点击 escape,你就可以像在正常模式 Vim 中一样移动,所以按单词移动是 w 或者 b, ,以及 常用的移动键也可以使用.

如果你检查 Use option as meta key 在首选项的键盘选项卡中,然后是向前和向后单词的默认 emacs 样式命令以及 ⌥F (替代+F) 和 ⌥B (替代+) 分别。

我建议阅读 从 Bash 到 Z-Shell. 。如果你想提高你的 bash/zsh 能力!

从 Mac OS X Lion 10.7 开始,终端地图 选项-左/右箭头Esc键-男/女 默认情况下,因此它现在内置于 bash 和其他使用这些 emacs 兼容键绑定的程序。

在 Bash 中,这些必然是 Esc键-Esc键-F。Bash 有很多很多的键盘快捷键;看看输出 bind -p 看看它们是什么。

在下面 iterm2首选项 > 配置文件 > 按键, ,您单击 + 以下 键映射 并记录一个新的快捷方式。为了 行动, , 选择 Send Escape Sequence 并输入 b 或者 f 分别用于向后和向前。

当我尝试为 (控制键+),我注意到在 键盘快捷键 箭头从未出现的字段。结果我不得不禁用默认的 mac 系统偏好设置 > 键盘 > 快捷键 > 任务控制 首先使用快捷键来让事情正常工作,因为它们会覆盖 iterm2 的默认快捷键。对于标准终端应用程序来说也应该如此。

Keyboard system preferences

按住 Option 键并单击您希望光标移动的位置

使用 自然文本编辑 预设!

enter image description here

本质上,除了其他按键序列之外,它还将 Option + LeftArrow 绑定到 ^[b 顺序和 Option + 向右键 ^[f

这适用于 Fish 和 bash,以及 psql 终端。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top