运行时:
vim /tmp/blah
:q
echo $?
我的退出状态为
1
.这破坏了包括 Git 在内的各种东西。如果我在没有 vimrc 的情况下运行 vim:vim -u NONE /tmp/blah
:q
echo $?
我的退出状态为
0
.我使用 Pathogen 所以这也有效地禁用了插件。有没有人建议有效地确定退出状态的原因?我知道详细运行 Vim 并记录到文件中。我应该在这个文件中寻找特定的东西吗?如果有一种方法可以找到确定退出状态的确切行,我很想知道它,因为搜索并没有出现太多。
最佳答案
终于在帮助中找到了这个命令::cq[uit]
.因此,在进行详细日志记录后,搜索 \<cq\%[uit]\>
.
更新:还有一些方法可以使用在某些解释器支持下编译的 vim 来更改退出状态:至少,以下工作:
python import sys
python sys.exit(1)
" (same for python3)
perl exit 1
我不太了解其他语言,无法在这里编写以不同退出状态退出 vim 的代码示例。另请注意,使用
:pyfile
获取的文件中的此类命令, :rubyfile
和其他 :*file
也应该可以工作,以及未随插件分发的模块中的此代码。我认为此时最有效的方法是禁用插件,直到找到问题的根源。
关于vim - 发现 Vim 退出状态的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5956001/