在Bash中,我们可以使用Alt+数字+.来选择先前命令的第n个参数,而Alt+,则可以选择先前的命令。它们会循环浏览历史记录。
例如:
现在按住Alt键,然后按0再按点号,它将显示“echo”。不释放Alt,再次按下.,它将显示“ls”。在同一操作中使用1将显示10和1等。按下Alt和逗号会显示历史命令行中的整个命令行。同时,Alt和.会显示历史命令中的最后一个参数。
请注意,所有这些操作只是将参数(或整个命令行)插入到当前光标处。它们不会改变当前命令行中已有的内容。
我正在使用Zsh和最新的Oh-My-Zsh软件包,但似乎行为不同:
例如:
$ ls 1 2
$ echo 10 20
现在按住Alt键,然后按0再按点号,它将显示“echo”。不释放Alt,再次按下.,它将显示“ls”。在同一操作中使用1将显示10和1等。按下Alt和逗号会显示历史命令行中的整个命令行。同时,Alt和.会显示历史命令中的最后一个参数。
请注意,所有这些操作只是将参数(或整个命令行)插入到当前光标处。它们不会改变当前命令行中已有的内容。
我正在使用Zsh和最新的Oh-My-Zsh软件包,但似乎行为不同:
Zsh具有Alt+,以显示命令的最后一个参数。
Alt+0+.与Bash相同(显示命令),但Alt+number+.显示历史记录中的第n个参数,即上面的例子中Alt+1+.显示20和2。
Alt+,不会显示历史命令中的整个命令。
bind -q previous-history
对您输出什么? (我得到previous-history can be invoked via "\C-p", "\eOA", "\e[A".
) - Etan Reisnerzle
和bindkey
,它们是与http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html相关的编程内容。ZLE比bash/readline更强大和可定制,这是我唯一想说的事情。 - 4ae1e1