vim за певних обставин використовує попередню версію vimrc


1

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

Дуже дивно.

Я можу це помітити, оскільки він дає синтаксичну помилку в межах цієї функції через відсутність, letяку я виправив у остаточній версії, і завантажує штраф для користувача з оболонки, але не для користувача, коли він працює з графічного інтерфейсу або коли використовується sudoверсія версії код із синтаксичною помилкою завантажується замість цього при запуску.

Я спробував копіювання користувача .vimrcдо /rootі я побіг , grep -rI "functionName" ~але ні допомагало.

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

Будь-які здогадки, чому при vimзапуску в цих двох ситуаціях (а може і більше) використовується попередня версія?


Відповідь Інго підштовхнула мене до потрійної перевірки коду функції, і це було ще однією помилкою в ланцюжку, якщо вона по черзі працює, залежно від відкритого файлу. Це дуже допомогло пройти через журнал vim.
Паоло

коментар видалено
Паоло

Відповіді:


2

Коли я почую "застарілу конфігурацію", я підозрюю таке:

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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.