739 macos terminal keyboard-shortcuts
我知道组合Ctrl+ A跳转到当前命令的开头,Ctrl+ + E跳转到结尾.
但有没有什么方法可以一字一句地跳,就像Cocoa应用程序中的Alt+ ←/ →一样?
Kri*_* J. 543
开箱即用你可以使用非常奇怪的Esc+ F移动到下一个单词的开头,然后Esc+ B移动到当前单词的开头.
Var*_*tta 396
在Mac OS X上 - 以下键盘快捷键默认工作.请注意,您必须使Option键像终端首选项中的Meta一样(在键盘选项卡下)
我观察到简单文本导航的默认emacs键绑定似乎适用于bash shell.您可以使用
小智 282
默认情况下,终端具有这些用于逐字移动(左和右)的快捷方式:
您可以配置alt+ ←并→为您生成这些序列:
? ?它是否存在,或者如果不存在则添加它.\033b(不能手动键入此文本).\033f)或者,你可以在textmate上参考这篇博文:
http://blog.macromates.com/2006/word-movement-in-terminal/
cwd*_*cwd 162
切换到iTerm2.它比普通的旧终端更自由,更好.此外,它有更多的自定义选项,如键盘快捷键.
我也喜欢你可以使用cmd和1-9在标签之间切换.尝试它,你永远不会回到常规终端:)
如何在iterm2中设置自定义键盘首选项
我经常用箭头键击中错误的按钮(cmd/ control/ alt),所以我的箭头按键组合,这些按钮都设置为向前和向后跳跃的单词,但请做最适合你的.
mdu*_*bez 146
实际上有一个更好的方法.按住option(alt在某些键盘上)并向左或向右按箭头键以逐字移动.就那么简单.
option←
option→
也ctrle将带你到该行的结束,ctrla将带你到开始.
Pet*_*ton 79
我有Alt+ ←/ →工作:打开首选项»设置»键盘,设置左侧选项光标的条目以将字符串发送到shell:\ 033b,并将选项光标向右设置为将字符串发送到shell:\ 033f.您也可以将其用于其他Control键组合.
Mec*_*cki 39
实际上它取决于你使用的shell,但是大多数shell都有类似的绑定.您所指的绑定(例如Ctrl+ A和Ctrl+ E)是您在许多其他程序中找到的绑定,并且它们已经使用了很长时间,BTW也适用于大多数UI应用程序.
这是Bash的默认绑定:
另请注意,您可以自定义它们.您需要根据需要创建一个文件名,我将我的名字命名为.bash_key_bindings并将其放入我的主目录.在那里你可以设置一些常规的bash选项,你也可以设置键绑定.为了确保它们被应用,你需要修改一个名为".bashrc"的文件,bash在启动时读入(你必须创建它,如果它不存在)并在那里进行以下调用:
bind -f ~/.bash_key_bindings
Run Code Online (Sandbox Code Playgroud)
〜表示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
Run Code Online (Sandbox Code Playgroud)
这些只是设置了几个选项(例如禁用铃声;这可以在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
Run Code Online (Sandbox Code Playgroud)
这些确保单独的字符只是做什么,但确保字符是"键入"(他们自己插入shell).
"\C-dW": kill-word
"\C-dL": kill-line
"\C-dw": backward-kill-word
"\C-dl": backward-kill-line
"\C-da": kill-line
Run Code Online (Sandbox Code Playgroud)
这非常有趣.如果我点击Ctrl+ D单独(我选择d进行删除),则没有任何反应.但是,如果我然后键入小写字母w,则删除光标左侧的单词.但是,如果我键入大写字母,则光标右侧的单词将被终止.对于从光标开始的整行,l和L也是如此.如果我输入"a",则实际删除整行(光标前后的所有内容).
我把跳向前移动一个单词Ctrl+ F上,一个字向后Ctrl+B
"\C-f": forward-word
"\C-b": backward-word
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,您可以创建一个快捷方式,立即执行操作,或者您可以创建一个快捷方式,只需执行一个字符序列,然后您必须键入一个(或多个)字符才能执行操作在上面的例子中示出.
因此,如果您对默认绑定不满意,可以随意自定义它们.以下是bash手册的链接以获取更多信息.
Mat*_*att 15
如果您检查Use option as meta key首选项的键盘选项卡,则分别为前向和后向单词以及?F(Alt+ F)和?B(Alt+ B)的默认emacs样式命令.
我建议阅读从Bash到Z-Shell.如果你想增加你的bash/zsh实力!
jch*_*hes 14
如果您恰好是Vim用户,可以尝试使用bash的vim模式.运行此~/.bashrc文件或将其放入您的文件中:
set -o vi
Run Code Online (Sandbox Code Playgroud)
默认情况下,您处于插入模式; 击中逃生,你可以像普通模式Vim一样四处移动,所以按字移动是w或者b,通常的移动键也可以.
Chr*_*age 12
因为Mac OS X Lion的10.7,终端地图Option- Left/Right Arrow到Esc- b/f在默认情况下,所以这是现在内置的bash和使用这些emacs的兼容键绑定其他程序.
使用自然文本编辑预设!
本质上,除了其他键序列外,它还绑定Option + LeftArrow到^[bsequence和Option + RightArrow到^[f
这适用于fish和bash以及psql终端。
在iterm2的Preferences > Profile > Keys 下,单击+下面的Key Mappings并记录一个新的快捷方式。对于Action,分别选择Send Escape Sequence并输入b或f用于向后和向前。
当我尝试为 ( Ctrl+ ?)录制一个时,我注意到在键盘快捷键字段中箭头从未出现过。原来我必须先禁用默认 mac 的系统偏好设置 > 键盘 > 快捷方式 > 任务控制快捷方式才能使事情正常工作,因为它们会覆盖 iterm2 的默认快捷方式。对于标准终端应用程序也应该如此。
这是执行此操作的 CLI 方法,已验证它可以在bash.
将以下内容添加到您的~/.inputrc:
# macOS Option + Left/Right arrow keys to move the cursor wordwise
"\e\e[C": forward-word
"\e\e[D": backward-word
Run Code Online (Sandbox Code Playgroud)
此方法的优点是它与终端应用程序无关 - 无论您使用 Terminal.app、iTerm2 还是任何其他应用程序都无关紧要。
灵感来自另一个答案。
| 归档时间: |
|
| 查看次数: |
317130 次 |
| 最近记录: |