Vim không thể tìm thấy cú pháp.vim


13

Gần đây, tôi cần xây dựng Vim từ nguồn để sử dụng một plugin yêu cầu phiên dịch Lua. Điều này hoạt động tốt trên máy tính xách tay của tôi, nhưng máy tính tháp của tôi đang gặp một số vấn đề. Bất cứ khi nào tôi chạy Vim, tôi nhận được tin nhắn:

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

Không có gì đáng ngạc nhiên, Vim sau đó không làm nổi bật cú pháp và đưa ra một loạt các lỗi khác khi chỉnh sửa văn bản.

Sau khi thực hiện một số nghiên cứu, tôi có thể nói rằng cú pháp.vim thực sự nằm trong /usr/local/share/vim/vim74/syntax/syntax.vim, trái ngược với thư mục được đề cập trước đó. Làm sao tôi có thể giải quyết việc này?

Thêm thông tin

Vim đã được cài đặt bằng cách sử dụng checkinstall. Để biên dịch nó, tôi chạy các lệnh:

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

Bạn có thể chỉ cần tạo một liên kết tượng trưng đến nơi vim nghĩ nó nên được không? tức làsudo ln -s /usr/local/share/vim/vim74/syntax/syntax.vim /usr/share/vim/vim74/syntax/syntax.vim
Sparhawk

Điều này dường như đã làm việc : sudo ln -s /usr/local/share/vim/vim74 /usr/share/vim/vim74. Bây giờ tôi đang bỏ ngỏ câu hỏi, trong trường hợp tôi gặp phải các vấn đề liên quan khác.
Dillmo

Bạn có thể muốn hỏi một câu hỏi mới nếu bạn có một vấn đề riêng. (Nếu giải pháp này hoạt động hoàn toàn, tôi không thể tưởng tượng làm thế nào nó có thể thất bại một phần ở nơi khác.) Dù sao, tôi đã viết nó như một câu trả lời Cách
Sparhawk

Câu trả lời:


5

Bạn có thể tạo một symlink đến nơi mà vim nghĩ nó nên được không? I E

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

(Nếu thư mục đích này không tồn tại, thì hãy liên kết thư mục cấp cao hơn.)


3
Câu trả lời của bạn chắc chắn đã giúp: +1 cho điều đó. Tuy nhiên, vì nó không hoàn toàn chính xác, tôi không thể đánh dấu nó là một giải pháp. Lệnh sudo ln -s /usr/local/share/vim/vim74 /usr/share/vim/vim74đã làm việc thay thế. Cảm ơn sự giúp đỡ của bạn dù sao đi nữa.
Dillmo

Được rồi, nhưng tôi đã viết "Nếu thư mục đích này không tồn tại, thay vào đó hãy liên kết thư mục cấp cao hơn." Dù sao, tùy bạn. Bạn luôn có thể chỉnh sửa trong lệnh chính xác nếu bạn muốn. Hoặc tạo câu trả lời của riêng bạn. Tùy bạn, dù bằng cách nào, nhưng có lẽ tốt nhất để chấp nhận cái này hay cái khác.
Sparhawk

Thay vì liên kết kết quả, thêm --prefix=/usrvào cuộc gọi cấu hình có thể đã được cài đặt vào đúng vị trí ngay lập tức.
thủy thủ

8

Vấn đề là lệnh make.

make VIMRUNTIMEDIR=/usr/share/vim/vim74

Từ câu hỏi, syntax.vimthực sự nằm ở /usr/local/share/vim/vim74vì vậy thay vào đó bạn nên sử dụng những điều sau đây.

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

Nói chung, VIMRUNTIMEDIRbiến được sử dụng makephải phù hợp với prefixbiến được sử dụng bởi configuretập lệnh.


1
Điều này làm việc cho tôi. Tôi đã không tạo kết nối trong khi xây dựng vim từ nguồn cho YouCompleteMe.
bd1251252

Tôi thấy tôi không cần VIMRUNTIME hoặc make prefix. Nếu tôi cung cấp hoặc cả hai, tôi có vấn đề. Chỉ với make prefixvấn đề tôi gặp phải OP, với cả hai tôi đều gặp lỗi với màu SlateBlue. Tôi không tin rằng tôi đã thử chỉ với VIMRUNTIME.
phân ly

8

Trong bash chạy:

export VIMRUNTIME=/usr/share/vim/vim73

Sau đó trong vim chạy:

:syntax on

(Trong trường hợp của tôi, vim đã tìm kiếm /usr/share/vim/vim74, trong khi không có /usr/local/share/.... Tôi đã sử dụng Ubuntu AWS EC2.)

Ngoài ra, nó cần phải được VIMRUNTIME, không VIMRUNTIMEDIR.

Lưu ý rằng để có tính lâu dài, bạn có thể đặt exportdòng trên vào tệp khởi tạo cá nhân của shell, vd ~/.bash_profile.


Đó là công việc! Nó là một sửa chữa dễ dàng cho những người không có quyền truy cập root.
Osama Gamal
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.