【发布时间】:2016-04-06 21:35:38
【问题描述】:
在 Bash 中,我们可以使用 Alt+number+. 来选择前面的第 n个参数命令,和 Alt+, 选择以前的命令。他们在历史中循环。
例如:
$ ls 1 2
$ echo 10 20
现在按住 Alt,然后按 0 再按点,它会显示“回声”。不松开Alt,再按.,会显示“ls”。在同一操作中使用 1 将显示 10 和 1 等。按 Alt 和逗号在历史记录中显示整个命令行。 Alt 和 . 还显示历史命令的最后一个参数。
请注意,所有这些操作只是将参数(或整个命令行)插入到当前光标。它们不会更改当前命令行中已有的内容。
我正在使用 Zsh 和最新的 Oh-My-Zsh 包,但似乎行为不同:
Zsh 有 Alt+, 来显示命令的最后一个参数。
Alt+0+. 与 Bash 相同(显示命令),但 Alt+number+. 显示最后第 n 个参数,即 Alt +1+. 在上面 案例显示 20 和 2。
Alt+, 不显示历史中的全部命令。
如何在 Zsh 中做同样的事情?谢谢。
【问题讨论】:
-
Alt-comma 默认情况下不会绑定到我知道的任何内容。 “历史中的最后一个命令”的默认绑定是 ctrl-p (如果你走得太远,ctrl-n 是历史中的下一个命令等)。 (例如,参见 bash 手册中的 Commands for History。)
bind -q previous-history为您输出什么? (我得到previous-history can be invoked via "\C-p", "\eOA", "\e[A".) -
zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html。了解
zle和bindkey。 ZLE 比 bash/readline 更强大且可定制得多,这是我唯一要说的。 -
Ctrl-p 和 Ctrl-n 的工作方式与 Bash 相同。他们只是用历史记录中的最后一个/下一个命令替换当前命令行。我想我必须学习 zle 和 bindkey。只是很惊讶没有这些有用的快捷方式。
标签: bash keyboard-shortcuts zsh oh-my-zsh