Vim non riesce a trovare syntax.vim


13

Di recente, ho dovuto costruire Vim dal sorgente per usare un plugin che richiedeva l'interpretazione di Lua. Questo ha funzionato bene sul mio laptop, ma il mio computer tower ha dei problemi. Ogni volta che eseguo Vim, ricevo il messaggio:

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

Non sorprende quindi che Vim non riesca a evidenziare la sintassi e genera molti altri errori durante la modifica del testo.

Dopo aver fatto alcune ricerche da solo, posso dire che syntax.vim è effettivamente in /usr/local/share/vim/vim74/syntax/syntax.vim, al contrario della directory menzionata in precedenza. Come posso risolvere questo?

Ulteriori informazioni

Vim è stato installato utilizzando checkinstall. Per compilarlo, ho eseguito i comandi:

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

Puoi semplicemente creare un link simbolico a dove vim pensa che dovrebbe essere? vale a diresudo ln -s /usr/local/share/vim/vim74/syntax/syntax.vim /usr/share/vim/vim74/syntax/syntax.vim
Sparhawk,

Questo sembra aver funzionato: sudo ln -s /usr/local/share/vim/vim74 /usr/share/vim/vim74. Lascerò la domanda aperta per ora, nel caso in cui mi imbatto in altri problemi correlati.
Dillmo,

Probabilmente vorresti fare una nuova domanda se hai un problema separato. (Se questa soluzione funziona affatto, non riesco a immaginare come potrebbe parzialmente fallire altrove.) Comunque, l'ho scritta come una risposta ...
Sparhawk

Risposte:


5

Puoi semplicemente creare un link simbolico a dove vim pensa che dovrebbe essere? vale a dire

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

(Se questa directory di destinazione non esiste, collega invece la directory di livello superiore.)


3
La tua risposta ha sicuramente aiutato: +1 per quello. Tuttavia, poiché non era del tutto corretto, non posso contrassegnarlo come soluzione. Il comando ha sudo ln -s /usr/local/share/vim/vim74 /usr/share/vim/vim74funzionato invece. Grazie per l'aiuto comunque.
Dillmo,

Va bene, ma ho scritto "Se questa directory di destinazione non esiste, collega invece la directory di livello superiore." Comunque, dipende da te. Se lo desideri, puoi sempre modificare l'esatto comando. O crea la tua risposta. A te, in entrambi i casi, ma probabilmente è meglio accettare l'uno o l'altro.
Sparhawk,

Invece di collegare simbolicamente il risultato, l'aggiunta --prefix=/usralla chiamata di configurazione potrebbe essere stata installata immediatamente nella posizione corretta.
circa

8

Il problema è il comando make.

make VIMRUNTIMEDIR=/usr/share/vim/vim74

Dalla domanda, in syntax.vimrealtà si trova /usr/local/share/vim/vim74quindi dovresti invece usare quanto segue.

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

In generale, la VIMRUNTIMEDIRvariabile utilizzata da makedovrebbe essere coerente con la prefixvariabile utilizzata dallo configurescript.


1
Questo funziona per me. Non ho effettuato la connessione durante la creazione di vim dal sorgente per YouCompleteMe.
bd1251252,

Ho scoperto che non avevo bisogno di VIMRUNTIME o make prefix. Se ho fornito uno o entrambi, ho avuto problemi. Con solo il make prefixproblema dell'OP ho riscontrato, con entrambi ho riscontrato un errore con il colore SlateBlue. Non credo di aver provato con VIMRUNTIME.
trysis,

8

In bash run:

export VIMRUNTIME=/usr/share/vim/vim73

Quindi in vim run:

:syntax on

(Nel mio caso vim stava guardando dentro /usr/share/vim/vim74, mentre non c'era /usr/local/share/.... Ero su un Ubuntu ECS AW2.)

Inoltre, doveva essere VIMRUNTIME, no VIMRUNTIMEDIR.

Si noti che per la permanenza è possibile inserire la exportriga sopra nel file di inizializzazione personale della shell, ad es ~/.bash_profile.


Che funzioni! È una soluzione semplice per le persone senza accesso root.
Osama Gamal,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.