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