मैं विम / vi में प्लगइन कैसे स्थापित करूं?


96

मैं विम में प्लगइन कैसे स्थापित करूं?

फर्क पड़ता है क्या:

  • चाहे मैं vi या Vim का उपयोग करूं?
  • क्या मैं gVim का उपयोग करूं?
  • मैं किस संस्करण का उपयोग कर रहा हूं?
  • मेरा OS क्या है?

जवाबों:


65

एक प्लगइन स्थापित करने के लिए, हमें यह जानना होगा कि यह किस रूप में आता है।

एक एकल .vimफ़ाइल को .vim/pluginनिर्देशिका में रखा जाना चाहिए ।

Vimball फ़ाइल को Vim में खोलकर और चलाकर स्थापित किया जा सकता है:source %

मानक निर्देशिका लेआउट में फ़ाइलों का एक सेट या तो उन्हें कॉपी करके .vimया प्लगइन पैकेज मैनेजर का उपयोग करके स्थापित किया जा सकता है ।

प्लगइन्स कुछ विशेषताओं पर निर्भर हो सकते हैं। इसलिए:

  • आप वी या विम का उपयोग कर रहे हैं तो यह बात हो सकती है,
  • इससे कोई फर्क नहीं पड़ता कि आप जीवीएम का उपयोग कर रहे हैं या नहीं (जीवीएम में आम तौर पर समान वितरण में सक्षम समय से अधिक सुविधाएँ सक्षम हैं)।
  • यह बात हो सकती है कि विम का कौन सा संस्करण आप पर है, क्योंकि आपके संस्करण के बाद एक विशेषता जोड़ी जा सकती है।
  • यह बात हो सकती है कि आप किस ओएस पर हैं, खासकर यदि प्लगइन बाहरी कमांड में कॉल करता है।

अधिकांश प्लगइन्स के लिए, हालांकि, इससे कोई फर्क नहीं पड़ता।


9
यह निश्चित रूप से मायने रखता है यदि आप वीआई का उपयोग कर रहे हैं - प्लगइन्स की अवधारणा वीआई के लिए मौजूद नहीं है। बेशक, viकिसी भी आधुनिक बॉक्स पर टाइप करना संभवत: बस vimकुछ सुविधाओं के साथ लॉन्च होगा । मुझे संदेह है कि इन दिनों कई लोगों की वास्तविक वीए तक पहुंच है ।
tommcdo

37

vim-प्लग

मुझे विम-प्लग प्लगइन मैनेजर का उपयोग करना पसंद है ।

प्लगइन को मैन्युअल रूप से स्थापित करने में समस्या यह है कि प्लगइन को हटाना मुश्किल है ; आपके पास अक्सर अलग-अलग निर्देशिकाओं में कई अलग-अलग फाइलें होती हैं, आपको उन्हें मैन्युअल रूप से ढूंढना होगा और उन्हें निकालना होगा।

समस्याओं का उन्नयन करना भी उतना ही मुश्किल है: अगर autoload/old-name.vimनाम बदल दिया जाए तो क्या होगा autoload/new-name.vim? अब आपके पास दोनों एक प्लगइन के एक पुराने और नए संस्करण।

vim-plugयह प्रत्येक प्लगइन को स्वयं निर्देशिका में संग्रहीत करके इसे हल करता है; इसमें एक प्लगइन को आसानी से स्थापित करने / हटाने के लिए कमांड भी शामिल है, इसलिए आपको प्लगइन्स को अनज़िप करने और पसंद करने की ज़रूरत नहीं है।

पैथोजन पर विम-प्लग का एक प्रमुख लाभ यह है कि विम-प्लग आपको प्लगइन्स को आसानी से इंस्टॉल और हटाने की अनुमति देता है। पैथोजन जो करता है वह प्रत्येक प्लगइन को एक अलग निहित निर्देशिका में रहने की अनुमति देता है।

vim- प्लग गिट पर निर्भर करता है ; MS Windows के लिए, आप msysgit चाहते हैं ।

आप अपने vimrc में प्लगइन्स को इस तरह परिभाषित कर सकते हैं:

call plug#begin('~/.vim/plugged')

" For MS Windows, this is probably better:
"call plug#begin('~/vimfiles/plugged')

Plug 'embear/vim-localvimrc'
Plug 'kchmck/vim-coffee-script'
" ... etc

call plug#end()

फिर विम को पुनरारंभ करें, और उसके बाद प्लग इन को स्थापित करें:

:PlugInstall

यह प्लगइन्स को MS Windows में ~/.vim/pluggedया उसके $HOME\vimfiles\pluggedलिए रखेगा ।

आप कॉल से पहले इस स्निपेट को FAQ से अपनी vimrc फ़ाइल में जोड़ सकते हैं plug#begin():

if empty(glob('~/.vim/autoload/plug.vim'))
  silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
    \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
  autocmd VimEnter * PlugInstall
endif

ध्यान दें कि आपको curlकाम करने के लिए इसकी आवश्यकता है । यह लगभग हमेशा लिनक्स और ओएसएक्स पर उपलब्ध है, लेकिन एमएस विंडोज पर नहीं; इसलिए यह चाल वहाँ काम नहीं करेगी ...

प्लगइन हटाने के लिए, इसे vimrc फ़ाइल से निकालें और चलाएँ:

:PlugClean

ध्यान दें कि विम-प्लग विम स्क्रिप्ट्स वेबसाइट से स्क्रिप्ट्स को इंस्टॉल करने का समर्थन नहीं करता है, लेकिन उन स्क्रिप्ट्स को GitHub पर मिरर किया जाता है , इसलिए ऐसा करने की कोई आवश्यकता नहीं है।

इसके कुछ अतिरिक्त फायदे भी हैं जैसे कि बेहतर तरीके से प्लगइन को अपडेट करना, और बेहतर प्रदर्शन के लिए ऑन-डिमांड लोडिंग। आप अपने vimrc को दूसरे कंप्यूटर पर आसानी से कॉपी कर सकते हैं, चला सकते हैं :PlugInstallऔर अपने सभी प्लगइन्स रख सकते हैं ।

ध्यान दें कि अधिक प्लगइन प्रबंधक हैं; मैं उपयोग करने के लिए होता है vim-plug। यह भी देखें: विम पैकेज प्रबंधकों के बीच क्या अंतर है?


1
सबसे महत्वपूर्ण लाभ विम-प्लग में से एक दूसरों पर है प्लगइन्स की समानांतर स्थापना / अपडेशन
r3bo0t

"उन लिपियों को GitHub पर दिखाया गया है, इसलिए ऐसा करने की कोई आवश्यकता नहीं है।" दुर्भाग्य से स्क्रैपर ने बहुत पहले काम करना बंद कर दिया था। github.com/vim-scraper/vim-scraper/issues/…
Bluu

@ बल्लू हां, मैंने पिछले साल उस के मेंटेनर से संपर्क किया था; कुछ तकनीकी बिट्स हैं जिन्हें अपडेट करने की आवश्यकता है, और किसी ने कहा कि अपडेट करने के लिए वास्तव में कदम नहीं उठा रहा है: - / यह अभी भी कुछ हद तक उपयोगी है, क्योंकि कई स्क्रिप्ट्स को अक्सर अपडेट नहीं किया जाता है (विशेषकर वे जो गिटहब पर नहीं हैं)।
मार्टिन टूरनोइज

25

रोगज़नक़

पैथोजन एक रनटाइम पथ प्रबंधक है, जो विम के भीतर प्लगइन्स लोड करता है। यह प्लगइन स्थापना को सरल बनाता है; यहां देखिए यह कैसे काम करता है:

नोट: यदि आप विंडोज का उपयोग कर रहे हैं, तो ~/.vimसाथ बदलें $HOME\vimfiles

  1. को कॉपी pathogen.vimकरें ~/.vim/autoload/pathogen.vim

  2. ~/.vim/bundleनिर्देशिका बनाएँ , अगर यह पहले से मौजूद नहीं है।

  3. निम्नलिखित लाइन को अपनी शुरुआत में जोड़ें .vimrc:

    execute pathogen#infect()
    
  4. हो गया! जब आप एक प्लगइन जोड़ना चाहते हैं, तो बस पूरे प्लगइन की निर्देशिका को कॉपी करें ~/.vim/bundle, या git cloneवहां। उदाहरण के लिए:

    cd ~/.vim/bundle
    git clone https://github.com/tpope/vim-surround
    
  5. * कैविएट: यदि आपका प्लगइन एक .vimफाइल के रूप में आता है , तो यह पैथोजन के साथ काम नहीं करेगा। ~/.vim/pluginइसके बजाय इसे कॉपी करें (यदि यह मौजूद नहीं है तो आपको यह निर्देशिका बनानी पड़ सकती है)।


5
नोट: रोगज़नक़ एक प्लगइन प्रबंधक नहीं है।
रोमेनियल

या git submodule add(इसके बजाय git clone) यदि आपका vim कॉन्फ़िगरेशन पहले से ही आपके git प्रोजेक्ट का हिस्सा है।
मार्टिन

@romainl तब क्या है?
रॉड्रिकइडर

3
यह एक रनटाइमपथ मैनेजर है। जैसा कि इसमें runtimepathविकल्प का प्रबंधन है और यह सब है। यह सभी प्लगइन्स को अपडेट करने, जोड़ने, पुनर्प्राप्त करने, हटाने के साथ सौदा नहीं करता है।
रोमिला

1
इसके अलावा Pathrom का उपयोग करने के बारे में @romainl का उत्कृष्ट जिस्ट देखें ।
icc97

23

विम 8+ / नियोविम

संस्करण 8 एक नया पैकेज तंत्र पेश करता है जो लेखन (2017) के समय मुख्य रूप से मौजूदा प्लगइन प्रबंधकों (पैथोजन, विम-प्लग, वंडल, आदि) की आवश्यकता को प्रतिस्थापित करता है।

से प्रलेखन :

विम पैकेज एक निर्देशिका है जिसमें एक या अधिक प्लगइन्स होते हैं

एक पैकेज निर्देशिका में दो उप-निर्देशिकाएं होती हैं:

  • start/ - ऐसे प्लगइन्स शामिल हैं जो स्वचालित रूप से लोड किए जाएंगे
  • opt/ - इसमें ऐसे प्लगइन्स होते हैं जो डिमांड पर लोड होते हैं :packadd

यह थोड़ा जटिल लग सकता है, लेकिन व्यवहार में आपको बस अपना प्लगइन जोड़ना होगा :

                 ↓ package name
~/ .vim / pack / bundle / start / some-plugin
          ↑ packages dir          ↑ plugin dir

विंडोज पर : के ~\vimfiles\pack\बजाय का उपयोग करें~/.vim/pack/

सम्मेलन द्वारा, हमने पैकेज नाम "बंडल" का उपयोग उस निर्देशिका के रूप में किया है जिसमें हमारे सभी प्लगइन्स शामिल होंगे। आप अपने इच्छित किसी भी नाम का उपयोग कर सकते हैं, और यदि आप वास्तव में चाहें तो अपने प्लगइन्स को अलग पैकेज निर्देशिकाओं में भी डाल सकते हैं।

उदाहरण: समझदार सं थापन

mkdir -p ~/.vim/pack/bundle/start
cd ~/.vim/pack/bundle/start
git clone https://github.com/tpope/vim-sensible.git

विंडोज पर : के ~\vimfiles\pack\बजाय का उपयोग करें~/.vim/pack/

अगली बार जब आप विम शुरू करेंगे, तो प्लगइन अपने आप लोड हो जाएगा।


3
यदि कोई .vimसंस्करण नियंत्रण में है, तो git के सबमॉड्यूल्स के साथ प्लगइन्स इंस्टॉल करना बेहतर हो सकता है; देख shapeshed.com/vim-packages/#adding-a-package
आर्क स्टैंटन

यदि कोई समय-आधारित उत्तर होता, तो यह आज के अनुसार वर्तमान स्वीकृत उत्तर होता।
अमीन NAIRI

12

हमें महान और शक्तिशाली Vundle मत भूलना !

Vundle एक पूर्ण प्लगइन प्रबंधक है, जिसके लिए कार्यक्षमता है:

  • प्लगइन्स की खोज करना (उपयोग करना :PluginSearch)
  • प्लगइन्स इंस्टॉल करना (उपयोग करना :PluginInstall)
  • प्लगइन्स का अद्यतन करना (उपयोग करना :PluginUpdate)
  • .Vrc पर प्लगइन लोड पथ को प्रबंधित करना (केवल उन प्लगइन प्रविष्टियों को टिप्पणी करें जिन्हें आप लोड नहीं करना चाहते हैं)
  • प्लगइन्स हटाना अब आप नहीं चाहते (उपयोग करते हुए :PluginClean)

जैसा कि आप देख सकते हैं, यह कारपेटस्मोकर द्वारा उल्लिखित विम-प्लग प्रबंधक की तरह है। मुझे नहीं पता कि कौन सा पहले आया था, लेकिन उनके एपीआई मेरे जैसे ही दिखते हैं, जैसे सेटअप प्रक्रिया


Vundle के बारे में अच्छी बात यह है कि आप अपने सभी प्लग इन को स्टोर कर सकते हैं .vimrc, इसलिए vim-प्लग के समान है , इसलिए जब एक नया सर्वर स्थापित करना हो , तो आपको एक Vundle इंस्टॉलेशन + अपना .vimrcसब कुछ इंस्टॉल करना होगा। साथ ही आप अपने प्लगइन्स को कमेंट कर सकते हैं और उन्हें 'क्लीन' कर सकते हैं, लेकिन महीनों या सालों बाद जब आप उनका नाम भूल गए हैं, तो उन्हें कमेंट कर सकते हैं।
icc97

इसके अलावा मुझे वंडले पसंद है क्योंकि यह अपेक्षाकृत शुरुआती अनुकूल है। यह चीजों को करने का एक ही तरीका देता है और उदात्त पाठ के समान तरीके से काम करता है।
icc97

1

सबसे अधिक संभावना है, आपका प्लगइन एक .vim फ़ाइल होगा।

यदि यह मामला है, तो मैंने मदद की खोज की और प्रयोग किया और निम्नलिखित का पता लगाया। Vim (कमांड मोड) से, टाइप करें:

:set runtimepath

यह आपको निर्देशिकाओं की एक श्रृंखला दिखाएगा। इनमें से कुछ निर्देशिकाओं में एक pluginउपनिर्देशिका होगी । किसी भी .vim फ़ाइल को इन pluginसबडायरेक्ट्रीज़ में से किसी एक में डालने पर यह स्वचालित रूप से लोड हो जाएगी जब आप कहीं से भी विम शुरू करेंगे।

मेरे लिए, Ubuntu linux पर, मैंने पाया कि /usr/share/vim/vim74/pluginसभी उपयोगकर्ताओं के लिए स्थापित करने के लिए, अच्छी तरह से काम किया है। आप (अपने उपसर्ग यहाँ करने के लिए एक फ़ाइल की प्रतिलिपि करने जड़ अनुमति की आवश्यकता होगी cpया mvके साथ आदेश sudo)।


3
IMHO यह सबसे अच्छा अभ्यास नहीं है। ध्यान दें कि आपके पास है vim74, जिसका अर्थ है कि यह संस्करण विशिष्ट है, इसलिए Vim 8.0 में अपग्रेड करना, उस प्लगइन को ढीला कर देगा। अधिक उन्नयन प्रूफ तरीके से उपयोग किया जाएगा /etc/vim/कि के लिए (यदि मौजूद नहीं इसे बनाने के लिए, और करने के लिए उस मार्ग को जोड़ने runtimepathमें यदि उपलब्ध नहीं /etc/vimrc)
grodzik

3
@Grodzik टिप्पणी में जोड़ने के लिए: Most likely, your plugin will be a single .vim fileमैं असहमत हूं। प्लगइन्स का एक बड़ा हिस्सा .txtदस्तावेज़ वाली एक फ़ाइल के साथ आता है और आपको कार्यात्मक डॉक प्राप्त करने के लिए टैग उत्पन्न करने की आवश्यकता होती है। इसके अलावा बहुत सारे प्लगइन्स एक autoloadडायरेक्टरी के साथ आते हैं । मुझे लगता है कि एक प्लगइन प्रबंधक का उपयोग कर मैन्युअल रूप से अपने runtimepath प्रबंध तुलना में एक बेहतर उपाय है
statox

-1 /usr/share/vim/vimXXस्टॉक रनटाइम है और साइट कॉन्फ़िगरेशन / प्लगइन्स के लिए जगह नहीं है। इसके बजाय, साइट कॉन्फ़िगरेशन / प्लगइन्स को $VIMउस सिस्टम पर कुछ भी बिंदुओं पर रखा जाना चाहिए (देखें :h vimfiles)। आमतौर पर, यह वह है /usr/share/vim, जो उबंटू के लिए मामला है और इसके प्रति सहानुभूति रखता है /etc/vim। सामान्य तौर पर, पैकेज मैनेजर के बाहर/usr/local/ साइट कॉन्फ़िगरेशन के लिए डी-फैक्टो प्लेस है । ध्यान दें कि साइट कॉन्फिगर के लिए बेहतर आउट-ऑफ-द-बॉक्स डिफॉल्ट्स प्रदान करते हुए, Neovim और डायरेक्ट्रीज़ का उपयोग करता है । $XDG_(CONFIG|DATA)_DIRSsite
ZeroKnight

1

Vire प्लग-इन इंस्टॉल करने के लिए नवीनतम पैक प्रारूप लाभ उठाता है और विम और Neovim का समर्थन करता है। आपको यह जानने की ज़रूरत नहीं है कि कुछ भी कहाँ जाता है। बस एक vimrc प्रदान करें और Vire बाकी का ध्यान रखेगा।

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