1

Со мной происходит странная вещь в vim: я сделал некоторые изменения в ~/.vimrc , чтобы настроить строку состояния с помощью простой функции (изменения были сделаны в нескольких сохранениях, пока я улучшал код), и теперь этот код загружается без проблем, если я запускаю vim FILE из командной строки, но по какой-то причине он загружает предыдущую версию .vimrc (то есть ранее сохраненную версию), когда я запускаю sudo visudo или запускаю vim из GUI (меню приложения).

Очень странно.

Я могу заметить это, потому что это дает синтаксическую ошибку в этой функции из-за пропущенного let который я исправил в финальной версии, и прекрасно загружается для пользователя из оболочки, но не для пользователя при запуске из GUI или при использовании sudo где версия кода с синтаксической ошибкой загружается при запуске вместо.

Я попытался скопировать пользовательский .vimrc в /root и запустил grep -rI "functionName" ~ но ни один из них не помог.

Самое смешное, что когда внутри vim с ломаной строкой состояния, если я использую :e $MYVIMRC она загружает правильную, так что я могу также использовать :source $MYVIMRC и тогда все выглядит нормально (то есть строка состояния работает, а синтаксическая ошибка ушла).

Есть предположения, почему при запуске vim в этих двух ситуациях (а может и больше) используется предыдущая версия?

1 ответ1

1

Когда я слышу "устаревшую конфигурацию", я подозреваю следующее:

  • неработающая символическая ссылка / забыл скопировать пользовательский конфиг в root (это специфично для вашего случая использования под root)
  • сохраненный сеанс (:mksession) включает в себя старый конфиг и автоматически восстанавливается (здесь это не так)
  • проблема среды (у Vim есть несколько мест и переопределений для поиска конфигурации, как указано :help startup)

Я бы проверил :scriptnames в сеансе сломанного корня в первую очередь. Это должно сказать, какой ~/.vimrc выбран и какие ошибочно загружены любые другие (альтернативные) конфиги. Если это не дает никаких подсказок, вы можете записать полный журнал сеанса Vim с помощью vim -V20vimlog (возможно, с префиксом sudo в вашем случае, чтобы возникла проблема). После выхода из Vim изучите файл журнала vimlog и, возможно, добавьте комментарии к ~/.vimrc чтобы вы могли различать разные версии файлов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .