Isso é feito intencionalmente no vim:
- as chamadas de comando
":wq"
,ex_exit
, - que chama
getout
com um código de saída nominal0
, - em
getout
, ele verifica se há um erro na modo, comentando
/* When running in Ex mode an error causes us to exit with a non-zero exit * code. POSIX requires this, although it's not 100% clear from the * standard. */ if (exmode_active) exitval += ex_exitval;
- a variável
ex_exitval
é definida pela mensagem de erro ememsg
:
called_emsg = TRUE; if (emsg_silent == 0) ex_exitval = 1;
- e
ex_exitval
são nunca limpos.
Portanto, "qualquer" mensagem de erro no modo ex (os comandos :
) produzirá este resultado. Uma verificação rápida mostra que o vi-mode ZZ
também é afetado por mensagens de erro ex-mode.