我知道组合Ctrl+A可以跳转到当前命令的开头,Ctrl+E可以跳转到结尾。

但是有没有办法像Cocoa应用程序中的Alt+←/→那样逐字跳转呢?


当前回答

你可以使用非常奇怪的Esc+F键移动到下一个单词的开头,Esc+B键移动到当前单词的开头。

其他回答

如前所述,您可以在~/中添加set -o vi。bashrc使用vi/vim键绑定,或者你可以在.bashrc中添加以下部分来使用Ctrl和方向键移动:

# bindings to move 1 word left/right with ctrl+left/right in terminal, just some apple stuff!
bind '"\e[5C": forward-word'
bind '"\e[5D": backward-word'
# bindings to move 1 word left/right with ctrl+left/right in iTerm2, just some apple stuff!
bind '"\e[1;5C": forward-word'
bind '"\e[1;5D": backward-word'

要启动这几行代码的效果,请选择源~/。Bashrc或启动新的终端会话。

以下是你可以做到的方法

默认情况下,终端有这些快捷键来逐字移动(左右):

esc + B(左) esc + F(右)

您可以配置alt+←和→来生成这些序列:

打开终端首选项(cmd+,); 在“设置”选项卡上,选择“键盘”,如果有,双击“键盘”“←”;如果没有,则添加“键盘”。 根据需要设置修饰符,并在框中键入快捷键:esc+B,生成文本\033b(不能手动键入此文本)。 重复word-right (esc+F变成\033f)

或者,你可以参考这篇文章在textmate:

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

切换到iTerm2。它是免费的,而且比普通的老式终端要好得多。此外,它还有更多的自定义选项,比如键盘快捷键。

另外,我喜欢你可以使用cmd和1-9来切换选项卡。尝试一下,你将永远不会回到常规终端:)

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

安装iTerm2 启动,然后转到首选项窗格。 选择键盘配置文件选项卡 您需要将配置文件复制到新的文件中,然后删除快捷键(如^+右/左),或者如果您不关心备份,只需从默认配置文件中删除它们。 接下来,确保您修改的配置文件被选中(带星号)

现在选择键盘选项卡(最上面一行)

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

重复使用所需的组合键。escape+B向左移动一个单词,escape+f向右移动一个单词。 你也可以设置cmd+d,用转义+d删除光标前面的单词

我经常用箭头键按错按钮(cmd / control / alt),所以我有我的箭头键组合,这些按钮都设置为向前和向后跳转,但请做最适合你的。

在iterm2的Preferences > Profile > Keys下,单击Key Mappings下面的+并记录一个新的快捷方式。对于Action,选择发送转义序列,并分别输入b或f用于向后和向前。

当我试图为(Ctrl+←)记录一个时,我注意到在键盘快捷键字段中,箭头从未出现。事实证明,我必须首先禁用mac的默认系统首选项>键盘>快捷方式>任务控制快捷方式才能让事情正常工作,因为它们会覆盖iterm2的默认快捷方式。标准终端应用程序也应该如此。

在Bash中,这些绑定到Esc-B和Esc-F。 Bash有很多很多快捷键;看一看bind -p的输出,看看它们是什么。