看起来history [number]
zshell 是落后的,因为它使用fc
.我怎样才能history [number]
像 bash 中那样表现出来?
➜ exec bash
bash-3.2$ history 3
35 history 5
36 exit
37 history 3
bash-3.2$
➜ history 3
1 pwd
2 ..
3 mv work Documents
➜ history
3133 history 5
3134 exec bash
3135 history
3136 history 3
3137 history -3
3138 history 20
所以在 bash 中它的行为就像我期望的那样:最后 3 个命令。但在 zshell 中它是倒退的:前 3 个历史命令。这很烦人,我想解决它。
到目前为止我最接近的:
function history {
fc -l -$1
}
但这仍然会产生从 1 开始的历史记录,而不是最后一个条目。
答案1
这并不像我想象的那么困难。将此添加到我的~/.profile
# zshell aliases history to "fc -l"
# quick version
alias h="fc -l -50" # last 50
# history searching
function hg {
echo "Searching for '$1'..."
fc -l 0 | grep "$1"
}
答案2
看起来好像bash
颠倒了,所以如果你翻转号码上的标志......
$ PS1='%% ' zsh -f
% echo blah
blah
% echo de
de
% echo blah
blah
% history() { num=$(( -1 * $1 )); builtin history $num }
% history 3
2 echo de
3 echo blah
4 history() { num=$(( -1 * $1 )); builtin history $num }
%