我知道组合Ctrl+A可以跳转到当前命令的开头,Ctrl+E可以跳转到结尾。
但是有没有办法像Cocoa应用程序中的Alt+←/→那样逐字跳转呢?
我知道组合Ctrl+A可以跳转到当前命令的开头,Ctrl+E可以跳转到结尾。
但是有没有办法像Cocoa应用程序中的Alt+←/→那样逐字跳转呢?
当前回答
这是CLI的方式,验证它在bash上工作。
在~/.inputrc中添加以下代码:
# macOS Option + Left/Right arrow keys to move the cursor wordwise
"\e\e[C": forward-word
"\e\e[D": backward-word
这种方法的优点是它与终端应用程序无关——不管你是否使用终端。app、iTerm2或任何其他应用程序。
灵感来自于另一个答案。
其他回答
实际上,这取决于您使用的shell,但大多数shell都有类似的绑定。你提到的绑定(例如Ctrl+A和Ctrl+E)是你会在许多其他程序中找到的绑定,它们已经使用了很长时间,顺便说一下,在大多数UI应用程序中也适用。
下面是Bash的默认绑定:
最重要的Bash键盘快捷键
还请注意,您可以自定义它们。您需要创建一个文件,如您所愿,我将其命名为.bash_key_bindings,并将其放入我的主目录中。在这里,您可以设置一些通用的bash选项,也可以设置键绑定。为了确保它们被应用,您需要修改一个名为”的文件。bash在启动时读取的Bashrc(如果它不存在,则必须创建它),并在那里进行以下调用:
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
这很有趣。如果我单独按Ctrl+D(我选择D表示删除),什么都不会发生。但是如果我输入一个小写的w,光标左边的单词就会被删除。但是,如果我输入一个大写字母,光标右边的单词就会被杀死。对于从游标开始的整条线,l和l也是如此。如果我输入一个“a”,整行实际上被删除了(游标之前和之后的所有内容)。
我在Ctrl+F上设置了向前跳转一个单词,在Ctrl+B上设置了向后跳转一个单词
"\C-f": forward-word
"\C-b": backward-word
正如你所看到的,你可以创建一个快捷方式,它会立即导致一个动作,或者你可以创建一个快捷方式,它只是初始化一个字符序列,然后你必须输入一个(或多个)字符来导致一个动作发生,如上面的例子所示。
因此,如果您对默认绑定不满意,可以随意定制它们。这里有bash手册的链接以获取更多信息。
如果您在首选项的键盘选项卡中勾选“使用选项作为元键”,则默认的emacs样式命令分别为向前和向后的字和“F (Alt+F)”和“B (Alt+B)”。
我推荐阅读《From Bash to Z-Shell》。如果你想增加你的bash/zsh能力!
在Bash中,这些绑定到Esc-B和Esc-F。 Bash有很多很多快捷键;看一看bind -p的输出,看看它们是什么。
切换到iTerm2。它是免费的,而且比普通的老式终端要好得多。此外,它还有更多的自定义选项,比如键盘快捷键。
另外,我喜欢你可以使用cmd和1-9来切换选项卡。尝试一下,你将永远不会回到常规终端:)
如何在iterm2中设置自定义键盘首选项
安装iTerm2 启动,然后转到首选项窗格。 选择键盘配置文件选项卡 您需要将配置文件复制到新的文件中,然后删除快捷键(如^+右/左),或者如果您不关心备份,只需从默认配置文件中删除它们。 接下来,确保您修改的配置文件被选中(带星号)
现在选择键盘选项卡(最上面一行)
单击加号按钮添加一个新的键盘快捷键 在第一个框中键入CMD+左箭头 在第二个框中选择“发送转义码” 在第三个框中输入字母B
重复使用所需的组合键。escape+B向左移动一个单词,escape+f向右移动一个单词。 你也可以设置cmd+d,用转义+d删除光标前面的单词
我经常用箭头键按错按钮(cmd / control / alt),所以我有我的箭头键组合,这些按钮都设置为向前和向后跳转,但请做最适合你的。
你可以使用非常奇怪的Esc+F键移动到下一个单词的开头,Esc+B键移动到当前单词的开头。