zshell과 bash에서 동일한 방식으로 작동하도록 기록 20에 별칭을 추가하려면 어떻게 해야 합니까?

zshell과 bash에서 동일한 방식으로 작동하도록 기록 20에 별칭을 추가하려면 어떻게 해야 합니까?

history [number]zshell 이 ​​.bash처럼 작동하도록 하려면 fc어떻게 해야 합니까 ?history [number]

➜  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부터 시작하는 기록을 생성합니다.

관련된:zsh의 History 명령을 사용하여 이전 또는 최신 기록 항목 표시

답변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"
}

관련 있고 도움이 되는 것:zsh의 History 명령을 사용하여 이전 또는 최신 기록 항목 표시

답변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 }
% 

관련 정보