Vim tidak dapat menemukan syntax.vim

13

Baru-baru ini, saya perlu membuat Vim dari sumber untuk menggunakan plugin yang membutuhkan interpretasi Lua. Ini berfungsi baik di laptop saya, tetapi komputer menara saya mengalami beberapa masalah. Setiap kali saya menjalankan Vim, saya menerima pesan:

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

Tidak mengherankan, Vim kemudian gagal untuk menyorot sintaksis, dan melemparkan banyak kesalahan lain saat mengedit teks.

Setelah melakukan riset sendiri, saya dapat mengatakan bahwa syntax.vim sebenarnya ada /usr/local/share/vim/vim74/syntax/syntax.vim, tidak seperti direktori yang disebutkan sebelumnya. Bagaimana saya bisa memecahkan masalah ini?

Info lebih lanjut

Vim diinstal menggunakan checkinstall. Untuk mengkompilasinya, saya menjalankan perintah:

./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
sumber
Bisakah Anda membuat symlink ke tempat yang menurut vim seharusnya? yaitusudo ln -s /usr/local/share/vim/vim74/syntax/syntax.vim /usr/share/vim/vim74/syntax/syntax.vim
Sparhawk
Hal ini tampaknya telah bekerja: sudo ln -s /usr/local/share/vim/vim74 /usr/share/vim/vim74. Saya membiarkan pertanyaan terbuka untuk saat ini, jika saya mengalami masalah terkait lainnya.
Dillmo
Anda mungkin ingin mengajukan pertanyaan baru jika Anda memiliki masalah terpisah. (Jika solusi ini bekerja sama sekali, saya tidak bisa membayangkan bagaimana itu bisa gagal sebagian di tempat lain.) Lagi pula, saya menuliskannya sebagai jawaban ...
Sparhawk

Jawaban:

5

Bisakah Anda membuat symlink ke tempat yang menurut vim seharusnya? yaitu

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

(Jika direktori target ini tidak ada, maka tautkan direktori level yang lebih tinggi.)

Sparhawk
sumber
3
Jawaban Anda pasti membantu: +1 untuk itu. Namun, karena itu tidak sepenuhnya benar, saya tidak dapat menandainya sebagai solusi. Perintah itu sudo ln -s /usr/local/share/vim/vim74 /usr/share/vim/vim74malah bekerja. Terima kasih atas bantuan Anda.
Dillmo
Oke, tapi saya memang menulis, "Jika direktori target ini tidak ada, maka tautkan direktori level yang lebih tinggi." Bagaimanapun, terserah Anda. Anda selalu dapat mengedit dalam perintah yang tepat jika Anda mau. Atau buat jawaban Anda sendiri. Terserah Anda, bagaimanapun juga, tetapi mungkin yang terbaik untuk menerima satu atau yang lain.
Sparhawk
Alih-alih menghubungkan hasil, menambahkan --prefix=/usrke panggilan mengkonfigurasi mungkin telah menginstal ke lokasi yang benar segera.
aquaherd
8

Masalahnya adalah perintah make.

make VIMRUNTIMEDIR=/usr/share/vim/vim74

Dari pertanyaan, syntax.vimsebenarnya terletak di /usr/local/share/vim/vim74jadi Anda harus menggunakan yang berikut.

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

Secara umum, VIMRUNTIMEDIRvariabel yang digunakan oleh makeharus konsisten dengan prefixvariabel yang digunakan oleh configureskrip.

Praxeolitic
sumber
1
Ini bekerja untuk saya. Saya tidak membuat koneksi saat membangun vim dari sumber untuk YouCompleteMe.
bd1251252
Saya menemukan saya tidak perlu VIMRUNTIME atau make prefix. Jika saya menyediakan, atau keduanya, saya punya masalah. Dengan hanya make prefixsaya mendapat masalah OP, dengan keduanya saya mendapat kesalahan dengan warna SlateBlue. Saya tidak percaya saya mencoba hanya dengan VIMRUNTIME.
trysis
8

Dalam bash run:

export VIMRUNTIME=/usr/share/vim/vim73

Kemudian dalam vim run:

:syntax on

(Dalam kasus saya vim sedang mencari /usr/share/vim/vim74, sedangkan tidak ada /usr/local/share/.... Saya menggunakan AWS EC2 Ubuntu.)

Juga, itu perlu VIMRUNTIME, bukan VIMRUNTIMEDIR.

Perhatikan bahwa untuk keabadian Anda dapat menempatkan exportbaris di atas ke dalam file inisialisasi pribadi shell Anda, mis ~/.bash_profile.

isomorfisma
sumber
Itu bekerja! Ini adalah perbaikan yang mudah bagi orang-orang tanpa akses root.
Osama Gamal