zsh:显示反向历史记录编号

时间:2014-02-28 14:37:07

标签: zsh

爆炸历史机制允许指定向后相对命令,如!-2以重新启动倒数第二个命令。这很好但是如果你启动history,你将只有命令序列号,这取决于你的历史记录长度可能会更长。

所以我想要的是一种定义打印

的命令extended_history的方法
-5 12342 print example
[…]
-2 12345 print foo
-1 12346 print bar

2 个答案:

答案 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)

historyfc -l的同义词,我不知道使用fc显示您想要的内容的方法。几乎可以肯定可以扩展zsh以提供这样的命令,尽管我不太愿意写一个命令。简单的awk命令可以处理history的输出,但是:

history | awk "{print \$1-$HISTCMD, \$0}"