我知道组合Ctrl+ A跳转到当前命令的开头,而Ctrl+ E跳转到结尾。
但是,有什么方法可以像Cocoa应用程序中的Alt+ ←/ 一样逐字跳跃→吗?
ALT
快捷方式已被添加到终端在最新的OS X版本。
我知道组合Ctrl+ A跳转到当前命令的开头,而Ctrl+ E跳转到结尾。
但是,有什么方法可以像Cocoa应用程序中的Alt+ ←/ 一样逐字跳跃→吗?
ALT
快捷方式已被添加到终端在最新的OS X版本。
Answers:
开箱即用,您可以使用非常奇怪的Esc+ F移至下一个单词的开头,而Esc+ B移至当前单词的开头。
Esc
+ F
,则只会插入字母。烦人!
~/.inputrc
。
在Mac OS X上-默认情况下,以下键盘快捷键有效。请注意,您必须在终端首选项中(在键盘选项卡下)使Option键像Meta一样运行
我观察到,用于简单文本导航的默认emacs键绑定似乎适用于bash shell。您可以使用
默认情况下,终端具有以下快捷方式来逐字移动(左右):
您可以配置alt+ ←并→为您生成这些序列:
⌥ ←
它(如果没有),或者添加它。\033b
(您不能手动输入此文本)。\033f
)或者,您可以在textmate上参考此博客文章:
B
的背面或F
为前到Esc+
现场
alt left
并alt right
生成了这些序列
切换到iTerm2。它是免费的,比普通的旧终端好得多。此外,它还有许多用于自定义的选项,例如键盘快捷键。
我也很喜欢您可以使用cmd和1-9在选项卡之间切换。尝试一下,您将永远不会回到常规终端:)
如何在iterm2中设置自定义键盘首选项
我经常用箭头键敲击错误的按钮(cmd/ control/ alt),因此我将箭头键组合在一起的那些按钮都设置为向前和向后跳转,但是请执行最适合您的操作。
Ctrl + Arrow Left
或Right
- Up
与Down
工程:/尝试使用和不使用新的配置文件设置为默认值
实际上,有更好的方法。按住option(alt在某些键盘上),然后向左或向右按箭头键逐字移动。就那么简单。
option←
option→
还ctrle可以将您带到行尾,ctrla并将您带到行头。
[D
和[C
。为了解决这个问题,添加bind '"[D": backward-word'
和bind '"[C": forward-word'
我的.bashrc
。
.bashrc
但是没有用,对我来说有什么问题吗?(我使用RubyMine)
.bashrc
终端启动时RubyMine是否读取。尝试echo "here"
查看打开新终端时是否显示该消息。另外,您必须关闭并重新打开终端,或者运行source ~/.bashrc
以使其读取新文件。
我有Alt+ ←/ →工作:打开“首选项”»“设置”»“键盘”,设置选项光标左侧的条目以将字符串发送到外壳:\ 033b,设置选项光标右侧以将字符串发送到外壳:\ 033f。您也可以将其用于其他控制键组合。
Enable option as meta key
。顺便说一句,这很酷。关键是一定要方便多了要达到比较Esc键+ B或Esc键+ F
实际上,这取决于您使用的外壳,但是大多数外壳具有相似的绑定。您所指的绑定(例如Ctrl+ A和Ctrl+ E)是您在许多其他程序中都可以找到的绑定,并且它们使用了很长时间,BTW在大多数UI应用程序中也可以使用。
这是Bash的默认绑定的外观:
另请注意,您可以自定义它们。您需要创建一个文件,其名称随心所欲,我将其命名为mine .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
这些确保仅字符就什么都不做,而是确保字符是“输入”的(将自己插入到外壳中)。
"\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
如您所见,您可以创建一个快捷方式,该操作可以立即导致一个操作,或者您可以创建一个快捷方式,该操作仅初始化一个字符序列,然后您必须键入一个(或多个)字符以使操作按以下步骤进行:如上例所示。
command
密钥代码如何?在您的示例中,control
是\C
,但是如何command
?
Meta
bash(\M
)映射到,cmd + left为\M-\e[D
。但是,您无法将cmd + ...映射到任何内容,所有命令快捷方式都由终端应用程序本身处理(因此被吞没了)(从来没有转发到Shell),并且如果您有多个命令,则cmd + left映射到“上一个窗口”终端窗口打开。抱歉,使用终端应用程序是不可能的。
使用自然文本编辑预设!
本质上,除了其他键序列外,它还绑定Option + LeftArrow到^[b
sequence和Option + RightArrow到^[f
这适用于fish和bash以及psql终端。
如果您恰好是Vim用户,则可以尝试bash的vim模式。运行此命令或将其放入~/.bashrc
文件中:
set -o vi
默认情况下,您处于插入模式;命中转义,您可以像在普通模式下的Vim一样来回走动,因此按字移动是w
或b
,通常的移动键也可以使用。
如果您Use option as meta key
在首选项的键盘选项卡中签入,则默认的emacs样式命令分别用于前向和后向单词以及⌥F
(Alt+ F)和⌥B
(Alt+ B)。
我建议阅读从Bash到Z-Shell。如果您想提高bash / zsh的实力!
iTerm2 Build 3.3.4用户的新答案:
步骤1:(macOS X)“系统偏好设置”>“键盘”>“快捷方式”选项卡>选择“任务控制”(左侧面板)>取消选中标记为“向左移动空间”和“向右移动空间”的快捷方式
步骤2:(iTerm2 Build 3.3.4)“首选项”>“配置文件”>“选择*默认值”(左面板)>“键”选项卡>删除“⌥->”和“⌥<-”条目,同时设置“左选项(⌥)”键: ”和“右键(⌥)键:”到Esc +
不要弄乱外壳轮廓,不要弄乱劣质masOS(默认)终端,不要笨拙地按Esc + F / 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'
要开始执行这些代码行,请选择source ~/.bashrc
或开始一个新的终端会话。