zsh:显示反向历史编号

zsh:显示反向历史编号,zsh,Zsh,bang历史机制允许指定向后相对命令,如-2重新启动倒数第二个命令。这很好,但是如果启动历史记录,您将只有命令序列号,这取决于您的历史记录长度,可能要长得多 所以我想要的是一种定义命令扩展历史的方法,它可以打印 -5 12342 print example […] -2 12345 print foo -1 12346 print bar 至少在linux上有一个工具tac,它按相反顺序打印行,nl为行编号 因此,虽然没有引导-,但这应该可以做到: 如果你真的想要- 至少在linux上有一个工

bang历史机制允许指定向后相对命令,如-2重新启动倒数第二个命令。这很好,但是如果启动历史记录,您将只有命令序列号,这取决于您的历史记录长度,可能要长得多

所以我想要的是一种定义命令扩展历史的方法,它可以打印

-5 12342 print example
[…]
-2 12345 print foo
-1 12346 print bar

至少在linux上有一个工具tac,它按相反顺序打印行,nl为行编号

因此,虽然没有引导-,但这应该可以做到:

如果你真的想要-


至少在linux上有一个工具tac,它按相反顺序打印行,nl为行编号

因此,虽然没有引导-,但这应该可以做到:

如果你真的想要-

历史是fc-l的同义词,我不知道有什么方法使用fc来显示您想要的内容。几乎可以肯定的是,扩展zsh来提供这样的命令是可能的,尽管我还不足以编写这样的命令。一个简单的awk命令可以处理历史记录的输出,但是:

历史是fc-l的同义词,我不知道有什么方法使用fc来显示您想要的内容。几乎可以肯定的是,扩展zsh来提供这样的命令是可能的,尽管我还不足以编写这样的命令。一个简单的awk命令可以处理历史记录的输出,但是:


我真的很惊讶zsh没有将此作为内置选项!我真的很惊讶zsh没有将此作为内置选项!出于某种原因,好的倒数有一个移位a2,所以我成功地使用了:history$@|tac | nl-v2 | sed-e's/\[0-9]\/-\1/''tac。出于某种原因,好的倒数有一个移位a2,所以我成功地使用了:history$@|tac | nl-v2 | sed-e's/\[0-9]\/-\1/'tac。
extended_history () {
    history "$@" | tac | nl | tac
}
extended_history () {
    history "$@" | tac | nl | tac | sed 's/^\( *\)\([0-9]\)/\1-\2/'
}
history | awk "{print \$1-$HISTCMD, \$0}"