2012-12-17 17 views
6

में काम करने के लिए पथोजेन नहीं मिल सकता है मुझे पता है कि इस प्रश्न पर कई पोस्ट हैं लेकिन मैंने काम करने के लिए विम के इस साधारण हिस्से को पाने का कोई फायदा नहीं उठाया है। मैं विम के साथ काम करने के लिए रोगजनक प्लगइन प्राप्त करना चाहता हूं। कुछ बिंदुओं के रूप में, मैं एक विंडोज सिस्टम पर काम कर रहा हूं। मैंने github के माध्यम से pathogen डाउनलोड किया है और निर्देशिका .vim और उपनिर्देशिका autoload और bundle निर्देशिका बनाई है।विम

call pathogen#infect() 
syntax on 
filetype plugin indent on 

नीचे करने के लिए कहा: मेरे .vimrc डिफ़ॉल्ट के साथ mkvimrc के साथ बनाई गई है। अन्य पोस्टिंग को संबोधित करते मैंने देखा है:

:set cp? = nocompatible 

एक क्षेत्र मैं अनुमान लगा रहा हूँ मुद्दे का हिस्सा है के बाद मैं :scriptnames चलाने मैं .vim निर्देशिका नहीं मिलता है। मुझे केवल Vim\.vimrc और vim73 निर्देशिकाएं मिलती हैं। मैं इसे कैसे संबोधित करूं? मैं इस पर बहुत समय से रहा हूं और माफी माँगता हूं अगर यह दूसरों के लिए स्पष्ट है।

+0

बीटीडब्ल्यू, आपका 'सेट' वाक्यविन्यास गलत है। '=' के आस-पास कोई रिक्त स्थान नहीं होना चाहिए, और '?' ड्रॉप करें; यह वर्तमान मूल्य दिखाने के लिए है। –

उत्तर

9

विंडोज़ पर स्थानीय उपयोगकर्ता कॉन्फ़िगरेशन का डिफ़ॉल्ट स्थान $HOME/vimfiles है। आपकी फ़ाइलों $HOME/.vim में हैं तो आप या तो उन्हें vimfiles को स्थानांतरित करने या अपने .vimrc में अपने runtimepath को .vim जोड़ने की जरूरत:

set runtimepath+=~/.vim 

इसके अलावा, अगर पैथोजन bundle की उप-निर्देशिका के है आप यह स्पष्ट रूप से चलाने की आवश्यकता होगी वहां से, डिफ़ॉल्ट रूप से विम केवल ~/.vim/ में दिखाई देगा। अपने .vimrc में इस रखो pathogen#infect कॉल करने से पहले: अक्षम प्लग इन साथ

runtime bundle/pathogen/autoload/pathogen.vim 
+1

यह बिल्कुल ठीक था, मैंने vimfiles में .vim निर्देशिका को स्थानांतरित कर दिया और सभी काम कर रहे हैं। धन्यवाद, यह मुझे पागल कर रहा है। – Liam

+0

कोई समस्या नहीं है। विभिन्न प्लेटफ़ॉर्म के बीच फ़ाइलों को स्थानांतरित करते समय यह अक्सर मुझे भ्रमित करता है। मेरी इच्छा है कि विम के डिफ़ॉल्ट सुसंगत थे! –

0

ओपन विम और टाइप :set rtp - ध्यान दें कि:

  • यदि आप यूनिक्स पर कर रहे हैं, तो डिफ़ॉल्ट रूप से: पहले चला जाता है ~/.vim और अंतिम ~/.vim/after चला जाता है;
  • यदि आप विंडोज पर हैं, तो डिफ़ॉल्ट रूप से: पहला ~/vimfiles जाता है और अंतिम ~/vimfiles/after चला जाता है।

यह विम सम्मेलन का प्रकार है। after निर्देशिकाओं का उपयोग विम के डिफ़ॉल्ट या प्लगइन्स सेटिंग्स को मजबूती से ओवरराइड करने के लिए किया जाता है, जो कभी-कभी महत्वपूर्ण होता है। यही कारण है कि वे rtp में अंतिम हैं।

रोगजनक वास्तव में आपके वर्तमान rtp चर की संरचना का विश्लेषण करता है और इसे rtp में प्लगइन के पथ इंजेक्ट करने के लिए इसका उपयोग करता है। उदाहरण के लिए, मेरी rtp को देखो:

runtimepath= 
~/.vim, 
~\.vim\plugins\NERDCommenter, 
~\.vim\plugins\NERDTree, 
~\.vim\plugins\SameSyntaxMotion, 
~\.vim\plugins\Tabular, 
~\.vim\plugins\UltiSnips, 
~\.vim\plugins\c.vim, 
~\.vim\plugins\clang_complete, 
~\.vim\plugins\CountJump, 
~\.vim\plugins\delimitMate, 
~\.vim\plugins\fswitch, 
~\.vim\plugins\matchit, 
~\.vim\plugins\matlab, 
~\.vim\plugins\neocomplcache, 
~\.vim\plugins\protodef, 
~\.vim\plugins\python-syntax, 
~\.vim\plugins\solarized, 
~\.vim\plugins\syntastic, 
~\.vim\plugins\vim-creole, 
~\.vim\plugins\vim-latex, 
~\.vim\plugins\vim-markdown, 
~\.vim\plugins\vim-python-pep8-indent, 
~/vimfiles, 
D:\Applications\Vim/vimfiles, 
D:\Applications\Vim, 
D:\Applications\Vim/vimfiles/after, 
~/vimfiles/after, 
~\.vim\plugins\Tabular\after, 
~\.vim\plugins\UltiSnips\after, 
~\.vim\plugins\vim-markdown\after, 
~/.vim/after 

सूचना कैसे रोगज़नक़ इंजेक्शन पथ। यह पता चला है कि कई प्लगइन्स में after निर्देशिका है और ~/.vim/after से पहले उन्हें सही रखें - ताकि अंतिम शब्द हमेशा मेरा हो।

यह रोगजनक प्राप्त करने के लिए एक एंकर सही क्रम में प्लग इन 'रास्तों सुई के रूप में या तो ~/.vim और ~/.vim/after या ~/vimfiles और ~/vimfiles/after या यहाँ तक कि ~/stuff और ~/stuff/after की जोड़ी (यकीन है कि पिछले मामले यद्यपि के बारे में नहीं) की जरूरत है।

यदि इस जोड़ी से कोई निर्देशिका गुम है, तो आपको रोगजनक के साथ कुछ बुरा अनुभव होगा (जैसा कि मैंने कुछ समय पहले किया था, जब तक कि मैंने उपर्युक्त सामग्री को नहीं देखा और रोगजनक स्रोत कोड के माध्यम से स्किम किया) - क्योंकि पथ नहीं होंगे सही ढंग से इंजेक्शन करने में सक्षम।

अब आप देख सकते हैं कि Prince Goulash द्वारा प्रदान की जवाब पूरी तरह से गलत है:

  1. पहले गलती है कि वह rtp जबकि वह यह prepended किया जाना चाहिए था करने के लिए ~/.vim संलग्न है;
  2. दूसरी गलती यह है कि उन्होंने ~/.vim/after संलग्न नहीं किया था।

सही समाधान निम्नानुसार दिखता है। आप Windows इसके बजाय यदि आप में इस जोड़ना चाहिए सहित विभिन्न प्लेटफार्मों पर काम करने के लिए है, तो अपने .vimrc (मैं इस खान में के रूप में अच्छी तरह से रख - तुम मेरे rtp उदाहरण से यह अनुमान लगा सकते हैं):

if has('win32') || has('win64') 
    set runtimepath^=~/.vim 
    set runtimepath+=~/.vim/after 
endif 

यह स्निपेट स्थिरता भर में यह सुनिश्चित करना होगा प्लेटफार्मों। अब आप विंडोज़ में यूनिक्स जैसी निर्देशिका .vim का उपयोग कर सकते हैं और vimfiles बकवास भूल सकते हैं - जो आईएमओ बदसूरत और भयानक है।

उसके बाद आप फोन:

call pathogen#infect('plugins') " or wherever your plugins reside 
call pathogen#helptags()  " optional, but really cool 

नोट:'plugins' को दर्शाता है ~/.vim/plugins निर्देशिका, तो यह ~/.vim के रिश्तेदार है।

1

मेरे लिए समाधान pathogen.vim को फिर से डाउनलोड कर रहा था क्योंकि यह किसी भी तरह से रीडायरेक्ट का पालन करने में विफल होने के कारण डाउनलोड करने में असफल रहा था।

mkdir -p ~/.vim/autoload ~/.vim/bundle && \ 
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim 

आप रीडायरेक्ट पता चल जाएगा pathogen.vim की सामग्री के रूप में डाउनलोड करने के लिए एक 302 रीडायरेक्ट पेज होगा विफल रहा: यूआरएल tpope के github पर निर्दिष्ट निम्नलिखित कदम है। रीडायरेक्ट में निहित यूआरएल से बस डाउनलोड करें:

wget -N -O ~/.vim/autoload/pathogen.vim https://raw.githubusercontent.com/tpope/vim-pathogen/master/autoload/pathogen.vim