Vim kann syntax.vim nicht finden


13

Vor kurzem musste ich Vim aus dem Quellcode erstellen, um ein Plugin zu verwenden, das Lua-Interpretation erforderte. Das hat auf meinem Laptop gut funktioniert, aber mein Tower-Computer hat einige Probleme. Jedes Mal, wenn ich Vim starte, erhalte ich die Nachricht:

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

Es überrascht nicht, dass Vim dann die Syntax nicht hervorhebt und beim Bearbeiten von Text eine Reihe anderer Fehler ausgibt.

Nachdem ich selbst einige Nachforschungen angestellt habe, kann ich feststellen, dass sich syntax.vim im /usr/local/share/vim/vim74/syntax/syntax.vimGegensatz zum zuvor erwähnten Verzeichnis tatsächlich in befindet. Wie kann ich das lösen?

Mehr Info

Vim wurde mit installiert checkinstall. Um es zu kompilieren, habe ich die folgenden Befehle ausgeführt:

./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

Kannst du einfach einen Symlink zu der Stelle setzen, an der vim denkt, dass es sein sollte? dhsudo ln -s /usr/local/share/vim/vim74/syntax/syntax.vim /usr/share/vim/vim74/syntax/syntax.vim
Sparhawk

Dies scheint gearbeitet zu haben: sudo ln -s /usr/local/share/vim/vim74 /usr/share/vim/vim74. Ich lasse die Frage vorerst offen, falls ich auf andere verwandte Probleme stoße.
Dillmo

Sie möchten wahrscheinlich eine neue Frage stellen, wenn Sie ein separates Problem haben. (Wenn diese Lösung überhaupt funktioniert, kann ich mir nicht vorstellen, wie sie an anderer Stelle teilweise scheitern könnte.) Wie auch immer, ich habe sie als Antwort
aufgeschrieben

Antworten:


5

Kannst du einfach einen Symlink zu der Stelle setzen, an der vim denkt, dass es sein sollte? dh

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

(Wenn dieses Zielverzeichnis nicht vorhanden ist, verknüpfen Sie stattdessen das übergeordnete Verzeichnis.)


3
Ihre Antwort hat definitiv geholfen: +1 dafür. Da es jedoch nicht ganz richtig war, kann ich es nicht als Lösung markieren. Der Befehl sudo ln -s /usr/local/share/vim/vim74 /usr/share/vim/vim74funktionierte stattdessen. Trotzdem vielen Dank für Ihre Hilfe.
Dillmo

Okay, aber ich habe geschrieben: "Wenn dieses Zielverzeichnis nicht existiert, verknüpfe stattdessen das übergeordnete Verzeichnis." Wie auch immer, bis zu dir. Sie können jederzeit den genauen Befehl eingeben, wenn Sie möchten. Oder erstellen Sie Ihre eigene Antwort. Wie auch immer, es liegt an Ihnen, aber wahrscheinlich am besten, den einen oder anderen zu akzeptieren.
Sparhawk

Anstatt das Ergebnis zu symbolisieren, wurde das Hinzufügen --prefix=/usrzum Konfigurationsaufruf möglicherweise sofort am richtigen Speicherort installiert.
Aquaherd

8

Das Problem ist der Befehl make.

make VIMRUNTIMEDIR=/usr/share/vim/vim74

Aus der Frage, syntax.vimbefindet sich eigentlich in, /usr/local/share/vim/vim74so sollte man stattdessen folgendes verwenden.

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

Im Allgemeinen sollte die von verwendete VIMRUNTIMEDIRVariable makemit der prefixvom configureSkript verwendeten Variable übereinstimmen .


1
Das funktioniert bei mir. Ich habe die Verbindung nicht hergestellt, als ich vim aus dem Quellcode für YouCompleteMe erstellt habe.
bd1251252

Ich habe festgestellt, dass ich weder VIMRUNTIME noch das benötige make prefix. Wenn ich eines oder beide zur Verfügung stellte, bekam ich Probleme. Nur make prefixmit dem OP habe ich ein Problem, mit beiden habe ich einen Fehler mit der SlateBlue Farbe bekommen. Ich glaube nicht, dass ich es nur mit VIMRUNTIME versucht habe.
Trysis

8

In Bash Run:

export VIMRUNTIME=/usr/share/vim/vim73

Dann in vim Lauf:

:syntax on

(In meinem Fall hat sich vim umgesehen /usr/share/vim/vim74, während es keine gab /usr/local/share/.... Ich war auf einem AWS EC2-Ubuntu.)

Auch musste es VIMRUNTIMEnicht sein VIMRUNTIMEDIR.

Beachten Sie, dass Sie aus Gründen der Beständigkeit die obige exportZeile in die persönliche Initialisierungsdatei Ihrer Shell einfügen können, z ~/.bash_profile.


Das funktioniert! Dies ist eine einfache Lösung für Benutzer ohne Root-Zugriff.
Osama Gamal
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.