विम सिंटैक्स नहीं पा सकते हैं


13

हाल ही में, मुझे एक प्लगइन का उपयोग करने के लिए स्रोत से विम का निर्माण करने की आवश्यकता थी जो कि लूआ की व्याख्या की आवश्यकता थी। यह मेरे लैपटॉप पर ठीक काम करता है, लेकिन मेरे टॉवर कंप्यूटर में कुछ समस्याएं हैं। जब भी मैं विम चलाता हूं, मैं संदेश को पुनः प्राप्त करता हूं:

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

आश्चर्य नहीं कि विम तब वाक्य रचना को उजागर करने में विफल रहता है, और पाठ को संपादित करते समय अन्य त्रुटियों का एक गुच्छा फेंकता है।

कुछ शोध स्वयं करने के बाद, मैं बता सकता हूं कि वाक्य रचना.विम वास्तव में है /usr/local/share/vim/vim74/syntax/syntax.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

क्या आप सिर्फ एक सिमलिंक बना सकते हैं जहां विम को लगता है कि यह होना चाहिए? यानीsudo ln -s /usr/local/share/vim/vim74/syntax/syntax.vim /usr/share/vim/vim74/syntax/syntax.vim
२१:३k पर स्पार्कवॉक

यह काम किया है लगता है sudo ln -s /usr/local/share/vim/vim74 /usr/share/vim/vim74:। यदि मैं अन्य संबंधित मुद्दों में भाग लेता हूं, तो मैं इस प्रश्न को अभी के लिए खुला छोड़ रहा हूं।
डिलमो

आप शायद एक नया सवाल पूछना चाहते हैं यदि आपके पास एक अलग मुद्दा है। (यदि यह समाधान बिल्कुल काम करता है, तो मैं कल्पना नहीं कर सकता कि यह आंशिक रूप से कहीं और कैसे विफल हो सकता है।) वैसे भी, मैंने इसे एक उत्तर के रूप में लिखा है ...
Sparhawk

जवाबों:


5

क्या आप सिर्फ एक सिमलिंक बना सकते हैं जहां विम को लगता है कि यह होना चाहिए? अर्थात

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

(यदि यह लक्ष्य निर्देशिका मौजूद नहीं है, तो इसके बजाय उच्च-स्तरीय निर्देशिका लिंक करें।)


3
आपके उत्तर ने निश्चित रूप से मदद की: इसके लिए +1। हालाँकि, यह काफी सही नहीं था, मैं इसे एक समाधान के रूप में चिह्नित नहीं कर सकता। आदेश sudo ln -s /usr/local/share/vim/vim74 /usr/share/vim/vim74के बजाय काम किया। वैसे भी आपकी मदद के लिए धन्यवाद।
जिल्दो

ठीक है, लेकिन मैंने लिखा है "यदि यह लक्ष्य निर्देशिका मौजूद नहीं है, तो इसके बजाय उच्च-स्तरीय निर्देशिका को लिंक करें।" वैसे भी, आप पर। आप हमेशा सटीक कमांड में संपादित कर सकते हैं यदि आप चाहें। या अपना जवाब खुद बनाएं। आप तक, किसी भी तरह, लेकिन शायद एक या दूसरे को स्वीकार करने के लिए सबसे अच्छा है।
स्पर्हाक

परिणाम को सिमिलिंक करने के बजाय, --prefix=/usrकॉन्फ़िगर कॉल में जोड़ने से संभवतः सही स्थान पर स्थापित हो सकता है।
एक्वेरड

8

समस्या मेक कमांड है।

make VIMRUNTIMEDIR=/usr/share/vim/vim74

प्रश्न से, syntax.vimवास्तव में स्थित है /usr/local/share/vim/vim74इसलिए आपको इसके बजाय निम्नलिखित का उपयोग करना चाहिए।

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

सामान्य तौर पर, जिस VIMRUNTIMEDIRचर का उपयोग किया जाता है वह स्क्रिप्ट द्वारा उपयोग किए जाने makeवाले prefixचर के अनुरूप होना चाहिए configure


1
यह मेरे लिए काम करता है। YouCompleteMe के लिए स्रोत से विम का निर्माण करते समय मैंने संबंध नहीं बनाया।
bd1251252

मैंने पाया मैं VIMRUNTIME या जरूरत नहीं थी make prefix। अगर मैंने या तो प्रदान किया, या दोनों, मुझे समस्याएं मिलीं। केवल make prefixमुझे ओपी की समस्या मिली, दोनों के साथ मुझे स्लेटबॉल रंग के साथ एक त्रुटि मिली। मुझे विश्वास नहीं होता कि मैंने सिर्फ VIMRUNTIME के ​​साथ प्रयास किया।
23

8

बैश रन में:

export VIMRUNTIME=/usr/share/vim/vim73

फिर विम रन में:

:syntax on

(मेरे मामले में विम की तलाश थी /usr/share/vim/vim74, जबकि वहाँ नहीं था /usr/local/share/...। मैं AWS EC2 Ubuntu पर था।)

इसके अलावा, यह होना चाहिए VIMRUNTIME, नहीं VIMRUNTIMEDIR

ध्यान दें कि स्थायीता के लिए आप उपरोक्त exportपंक्ति को अपने शेल की व्यक्तिगत इनिशियलाइज़ेशन फ़ाइल में रख सकते हैं, जैसे ~/.bash_profile


यह काम करता है! बिना रूट एक्सेस वाले लोगों के लिए यह एक आसान फिक्स है।
ओसामा गमाल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.