爆炸历史机制允许指定向后相对命令,如!-2
以重新启动倒数第二个命令。这很好但是如果你启动history
,你将只有命令序列号,这取决于你的历史记录长度可能会更长。
所以我想要的是一种定义打印
的命令extended_history
的方法
-5 12342 print example
[…]
-2 12345 print foo
-1 12346 print bar
答案 0 :(得分:2)
至少在linux上有一个工具tac
(以相反的顺序打印行)和nl
(用数字行编号)。
所以这应该可以解决问题,尽管没有领先-
:
extended_history () {
history "$@" | tac | nl | tac
}
如果你真的想要-
extended_history () {
history "$@" | tac | nl | tac | sed 's/^\( *\)\([0-9]\)/\1-\2/'
}
答案 1 :(得分:2)
history
是fc -l
的同义词,我不知道使用fc
显示您想要的内容的方法。几乎可以肯定可以扩展zsh
以提供这样的命令,尽管我不太愿意写一个命令。简单的awk
命令可以处理history
的输出,但是:
history | awk "{print \$1-$HISTCMD, \$0}"