Vim не може знайти syntax.vim


13

Нещодавно мені потрібно було створити Vim з джерела, щоб використовувати плагін, який потребував інтерпретації Lua. Це добре спрацювало на моєму ноутбуці, але на моєму комп'ютері вежі виникають деякі проблеми. Щоразу, коли я запускаю Vim, я отримую повідомлення:

Error detected while processing /home/XXXXXX/.vim/vimrc:
line   55:
E484: Can't open file /usr/share/vim/vim74/syntax/syntax.vim

Не дивно, що тоді Vim не вдається виділити синтаксис і видає купу інших помилок під час редагування тексту.

Провівши кілька досліджень самостійно, я можу сказати, що насправді є syntax.vim /usr/local/share/vim/vim74/syntax/syntax.vim, на відміну від раніше згаданого каталогу. Як я можу це вирішити?

Більше інформації

Vim був встановлений за допомогою checkinstall. Для його складання я запустив команди:

./configure --with-features=huge --enable-cscope --enable-pythoninterp=yes --with-python-config-dir=/usr/lib/python2.7/config-x86_64-linux-gnu --enable-multibyte --enable-fontset --disable-gui --disable-netbeans --enable-luainterp=yes --with-lua-prefix=/usr/include/lua5.1 --enable-largefile
make VIMRUNTIMEDIR=/usr/share/vim/vim74

Чи можете ви просто зробити симпосилання на те, де Вім вважає, що має бути? тобтоsudo ln -s /usr/local/share/vim/vim74/syntax/syntax.vim /usr/share/vim/vim74/syntax/syntax.vim
Sparhawk

Це , здається, працює: sudo ln -s /usr/local/share/vim/vim74 /usr/share/vim/vim74. Я поки залишаю це питання відкритим, якщо я зіткнувся з іншими пов'язаними питаннями.
Ділмо

Напевно, ви хочете задати нове запитання, якщо у вас є окреме питання. (Якщо це рішення взагалі працює, я не можу уявити, як воно може частково вийти з ладу в іншому місці.) У будь-якому випадку, я написав це як відповідь…
Sparhawk

Відповіді:


5

Чи можете ви просто зробити симпосилання на те, де Вім вважає, що має бути? тобто

sudo ln -s /usr/local/share/vim/vim74/syntax/syntax.vim /usr/share/vim/vim74/syntax/syntax.vim

(Якщо цього цільового каталогу не існує, замість цього пов'яжіть каталог вищого рівня.)


3
Ваша відповідь безумовно допомогла: +1 для цього. Однак, оскільки це було не зовсім коректно, я не можу відзначити це як рішення. Команда sudo ln -s /usr/local/share/vim/vim74 /usr/share/vim/vim74працювала замість цього. Дякуємо за вашу допомогу.
Ділмо

Гаразд, але я написав "Якщо цього цільового каталогу не існує, замість цього пов'яжіть каталог вищого рівня". У будь-якому разі, залежить від вас. Ви завжди можете редагувати в точній команді, якщо хочете. Або створити власну відповідь. Від вас залежить будь-який спосіб, але, мабуть, найкраще прийняти те чи інше.
Sparhawk

Замість того, щоб поєднувати результат, додавання --prefix=/usrдо виклику конфігурації, можливо, було б встановлено в правильне місце розташування відразу.
aquaherd

8

Проблема - команда make.

make VIMRUNTIMEDIR=/usr/share/vim/vim74

З питання, що syntax.vimнасправді знаходиться в, /usr/local/share/vim/vim74тому вам слід замість цього використовувати наступне.

make VIMRUNTIMEDIR=/usr/local/share/vim/vim74

Загалом, використовувана VIMRUNTIMEDIRзмінна makeповинна відповідати prefixзмінній, що використовується configureсценарієм.


1
Це працює для мене. Я не встановив з'єднання, будуючи vim з джерела для YouCompleteMe.
bd1251252

Я виявив, що мені не потрібен VIMRUNTIME або make prefix. Якщо я забезпечив або інше, або і те, і інше, у мене виникли проблеми. Тільки make prefixя отримав проблему ОП, і з обома я отримав помилку з кольором SlateBlue. Я не вірю, що я спробував лише VIMRUNTIME.
трис

8

У баш-бігу:

export VIMRUNTIME=/usr/share/vim/vim73

Потім у vim run:

:syntax on

(У моєму випадку vim шукав /usr/share/vim/vim74, тоді як його не було /usr/local/share/.... Я був на AWS EC2 Ubuntu.)

Також, це потрібно було VIMRUNTIME, ні VIMRUNTIMEDIR.

Зауважте, що для постійності ви можете помістити вищезазначений exportрядок у файл особистого ініціалізації вашої оболонки, наприклад ~/.bash_profile.


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