#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. Где-то скрипт, должно быть, использовал новую функцию. Однако мне так и не удалось отследить это. Спасибо за вашу помощь.