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