Обнаружение причины состояния выхода Vim

#vim

#vim

Вопрос:

При запуске:

 vim /tmp/blah
:q
echo $?
  

Я получаю статус выхода 1 . Это нарушает различные функции, включая Git. Если я запускаю vim без моего vimrc:

 vim -u NONE /tmp/blah
:q
echo $?
  

Я получаю статус выхода 0 . Я использую Pathogen, поэтому это также эффективно отключает плагины. Есть ли у кого-нибудь предложения по эффективному определению причины состояния выхода? Я знаю о подробном запуске Vim и входе в файл. Должен ли я искать что-то конкретное в этом файле?

Если есть способ найти точную строку, которая определяет статус выхода, я хотел бы знать об этом, поскольку поиск вокруг не дал особых результатов.

Комментарии:

1. Вероятно, было бы полезно, если бы вы опубликовали свой .vimrc.

2. Я боюсь, что это, вероятно, не было бы. В нем более 2000 строк, и я использую около 25 плагинов. Вы видите проблему, похожую на иголку в стоге сена.

Ответ №1:

Наконец-то нашел эту команду в справке: :cq[uit] . Итак, после того, как вы выполните подробное ведение журнала, выполните поиск <cq%[uit]> .

Обновление: Также существуют методы для изменения состояния выхода с использованием vim, скомпилированного с поддержкой некоторых интерпретаторов: по крайней мере, работает следующее:

 python import sys
python sys.exit(1)
" (same for python3)

perl exit 1
  

Я недостаточно знаю другие языки, чтобы написать здесь примеры кода, который завершал бы работу vim с другим статусом выхода. Обратите также внимание, что такие команды внутри файлов, полученных с использованием :pyfile , :rubyfile и других :*file , также должны работать, как и этот код в модулях, не распространяемых с плагином.

Я думаю, что наиболее эффективным способом здесь на данный момент является отключение плагинов до тех пор, пока вы не найдете источник проблемы.

Комментарии:

1. Спасибо за ответ, но, боюсь, не повезло. Я подумал, что это тоже может быть cquit, и должен был написать это в моем вопросе. Это не отображается в журнале (с -V15) и отсутствует ни в одном файле в my .vim / (включая .vimrc). Я также искал ‘cq’ и сканировал каждое попадание, чтобы убедиться, что их всего около дюжины.

2. Возникает вопрос: что еще может изменить статус выхода?

3. Просто чтобы вернуться к этому вопросу. Я, наконец, устранил проблему, обновившись до Vim 7.3. Где-то скрипт, должно быть, использовал новую функцию. Однако мне так и не удалось отследить это. Спасибо за вашу помощь.