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
Dillmo
источник
Можете ли вы просто сделать символическую ссылку, где 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

(Если этот целевой каталог не существует, вместо этого свяжите каталог более высокого уровня.)

Sparhawk
источник
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сценарием.

Praxeolitic
источник
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.

isomorphismes
источник
Это работает! Это легко исправить для людей без прав root.
Усама Гамаль