Vim не может найти синтаксис.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

Можете ли вы просто сделать символическую ссылку, где Vim считает, что это должно быть? то есть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. Я оставляю вопрос открытым, на случай, если у меня возникнут другие связанные с этим вопросы.
Dillmo

Возможно, вы захотите задать новый вопрос, если у вас есть отдельная проблема. (Если это решение работает вообще, я не могу себе представить, как оно могло бы частично потерпеть неудачу в другом месте.) В любом случае, я написал это как ответ…
Sparhawk

Ответы:


5

Можете ли вы просто сделать символическую ссылку, где Vim считает, что это должно быть? т.е.

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к вызову конфигурации может быть установлено в правильное местоположение сразу.
Аквахерд

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меня возникла проблема с OP, с обоими я получил ошибку с цветом SlateBlue. Я не верю, что я пытался только с VIMRUNTIME.
Trysis

8

В bash запустить:

export VIMRUNTIME=/usr/share/vim/vim73

Затем в VIM запустить:

:syntax on

(В моем случае vim искал /usr/share/vim/vim74, тогда как его не было /usr/local/share/.... Я был на AWS EC2 Ubuntu.)

Кроме того, это должно было быть VIMRUNTIME, нет VIMRUNTIMEDIR.

Обратите внимание, что для постоянства вы можете поместить вышеуказанную exportстроку в личный файл инициализации вашей оболочки, например ~/.bash_profile.


Это работает! Это легко исправить для людей без прав root.
Усама Гамаль
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.