在ZSH中重置提示时,如何保持上一个命令的退出状态?

时间:2011-02-11 05:42:28

标签: zsh exit-code zshrc zsh-zle

3 个答案:

答案 0 :(得分:1)

我从zsh-users邮件列表上的Bart Schaefer得到了以下答案。它有效!

  

这是在2010年7月修复的,所以最终你不需要做任何事情:

   * users/15217: Src/Zle/zle_main.c: use top-level status when redrawing prompt.
     

与此同时,试试这个:

     

function zle-keymap-select {       当地Q = $?       psvar [1] = “$ {$ {KEYMAP /(主| viins)/>} / vicmd /}”       (返回$ Q)       zle reset-prompt       psvar [1] = “”     }

     

如果您的zsh最近具有匿名功能,则可以将子(return $Q)替换为(){ return $Q }

答案 1 :(得分:0)

function zle-keymap-select {
  local saved_exitcode=$?
  psvar[1]="${${KEYMAP/(main|viins)/>}/vicmd/}"
  zle reset-prompt
  psvar[1]=""
  return $saved_exitcode
}

答案 2 :(得分:0)

oldexitcode=$?
∶
# do stuff...
∶
( exit $oldexitcode )