在Terminal.app中的ctrl-o行为


16

我经常在bash中使用+ O快捷方式(来自“学习bash Shell”):

[G] o回到[历史中的命令]并按+ O而不是。这将执行命令并调出历史文件中的下一个命令。再次按+ O键输入此命令并显示下一个命令。

看来这个快捷方式在OS X上不可用; + O什么都不做。网页搜索提出了使用!bash内置建议,但我不知道如何用它来完成与+ 相同的事情O

是否有可能以某种方式在OS X上的Terminal.app中获得+ O行为?

Answers:


19

+ O由于某种原因(可能与某些类型的串行连接上的流控制一起使用)设置为由终端驱动程序丢弃(即不是Terminal.app,而是它与它之间的操作系统部分)贝壳)。你可以用命令摆脱这个stty discard undef。要使此更改成为永久更改,请将此命令添加到.bash_profile和.bashrc文件中。


3

man bash可能有帮助。“READLINE”和“Readline Key Bindings”讨论了如何绑定可用的按键以及如何设置readline的默认值。

另外Bash Emacs编辑模式备忘单在Bash的Vi命令行编辑模式(使用备忘单)中高效工作,如果你使用的是vi模式而不是默认的emacs,那么可以找出keypress的功能。在任何一种情况下,bind -P | grep found都会显示在vi模式下配置的键组合,bind -P并显示所有可用的组合。


2
哇,我不知道bash中有vi模式可用!这太可爱了。谢谢!
Mike Mazur 2010年

2
当我发现它可用时,我也有同感。
格雷格2010年

我也是我:)
Robert S Ciaccio 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.