我知道组合Ctrl + A跳转到当前命令的开头,而Ctrl + E跳转到结尾。
但有没有办法逐字逐句跳转,比如Alt +←/→在Cocoa应用程序中呢?
开箱即用你可以使用相当离奇的Esc + F移动到下一个单词的开头,Esc + B移动到当前单词的开头。
从Mac OS X Lion 10.7开始,终端默认将Option-Left / Right Arrow映射到Esc-b / f,因此现在内置于bash和其他使用这些emacs兼容键绑定的程序。
在Bash中,它们与Esc-B和Esc-F绑定。 Bash有很多很多键盘快捷键;看看bind -p
的输出,看看它们是什么。
按住Option键并单击要移动光标的位置
在Mac OS X上 - 以下键盘快捷键默认工作。请注意,您必须使Option键像终端首选项中的Meta一样(在键盘选项卡下)
我观察到简单文本导航的默认emacs键绑定似乎适用于bash shell。您可以使用
默认情况下,终端具有这些用于逐字移动(左和右)的快捷方式:
您可以配置alt +←和→为您生成这些序列:
⌥ ←
(如果有),或者如果不存在则添加它。\033b
(您不能手动键入此文本)。\033f
)或者,你可以在textmate上参考这篇博文:
切换到iTerm2。它比普通的旧终端更自由,更好。此外,它有更多的自定义选项,如键盘快捷键。
另外我喜欢你可以使用cmd和1-9在标签之间切换。尝试它,你永远不会回到常规终端:)
如何在iterm2中设置自定义键盘首选项
我经常用箭头键击中错误的按钮(cmd / control / alt),所以我的箭头按键组合,这些按钮全部设置为向前和向后跳跃的单词,但请做最适合你的。
实际上有一个更好的方法。按住选项(某些键盘上的alt)并按向左或向右箭头键按字键移动。就那么简单。
option← option→
ctrle也会把你带到行尾,ctrla将带你到头。
我有Alt +←/→工作:打开首选项»设置»键盘,设置选项光标左边的条目发送字符串到shell:\ 033b,并设置选项光标向右发送字符串到shell:\ 033f。您也可以将其用于其他Control键组合。
实际上它取决于你使用的shell,但是大多数shell都有类似的绑定。您所指的绑定(例如Ctrl + A和Ctrl + E)是您在许多其他程序中找到的绑定,并且它们已经使用了很长时间,BTW也适用于大多数UI应用程序。
这是Bash的默认绑定:
Most Important Bash Keyboard Shortcuts
另请注意,您可以自定义它们。您需要根据需要创建一个文件名,我将我的名字命名为.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
这非常有趣。如果我单独按Ctrl + D(我选择d进行删除),则没有任何反应。但是,如果我然后键入小写字母w,则删除光标左侧的单词。但是,如果我键入大写字母,则光标右侧的单词将被终止。对于从光标开始的整行,l和L也是如此。如果我输入“a”,则实际删除整行(光标前后的所有内容)。
我在Ctrl + F上向前跳了一个单词,在Ctrl + B上向后跳了一个单词
"\C-f": forward-word
"\C-b": backward-word
正如您所看到的,您可以创建一个快捷方式,立即执行操作,或者您可以创建一个快捷方式,只需执行一个字符序列,然后您必须键入一个(或多个)字符才能执行操作在上面的例子中示出。
因此,如果您对默认绑定不满意,可以随意自定义它们。这是一个link to the bash manual以获取更多信息。
如果您恰好是Vim用户,可以尝试使用bash的vim模式。运行此文件或将其放在~/.bashrc
文件中:
set -o vi
默认情况下,您处于插入模式;击中逃脱,你可以像普通模式Vim一样四处移动,所以按字移动的是w
或b
,以及usual movement keys also work。
如果在首选项的键盘选项卡中检查Use option as meta key
,则分别为前向和后向词以及⌥F
(Alt + F)和⌥B
(Alt + B)的默认emacs样式命令。
我建议阅读From Bash to Z-Shell。如果你想增加你的bash / zsh实力!