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


147

मैं नीचे दिए गए विम के लिए प्लगइन की कोशिश करना चाहता हूँ। यह .hamlऔर (शायद) .sassफ़ाइलों के लिए हाइलाइटिंग सिंटैक्स जोड़ता है ।

http://github.com/tpope/vim-haml

इसे मैने किया है...

$ cd ~/.vim
$ git clone git://github.com/tpope/vim-haml.git

मैंने .hamlविम में एक फ़ाइल खोली , लेकिन कोई हाइलाइटिंग नहीं है। मुझे प्रदर्शन करने के लिए एक और कदम होना चाहिए।


7
G'day, सिंटैक्स चालू है? (स्पष्ट पूछने के लिए)
रोब वेल्स

2
मैं विम के लिए नया हूँ। मैं सिंटैक्स को कैसे स्विच करूं?
एथन

5
@ सामान्य तरीके में,:syntax on
कार्ल

2
यहाँ अच्छा जवाब superuser.com/questions/404686/installing-plugins-in-vim
michael

नए विम QA के लिए सही प्रश्न: area51.stackexchange.com/proposals/76728/…
eckes

जवाबों:


52

वे दो कमांड्स ~/.vim/vim-haml/इसमें ftplugin, सिंटैक्स, आदि डायरेक्ट्री के साथ एक डायरेक्टरी बनाएंगे । उन निर्देशिकाओं को ~/.vimउचित रूप से निर्देशिका में तुरंत ~/.vim/vim-hamlकरने की आवश्यकता है या उन रास्तों की सूची में जोड़ने की आवश्यकता है जो प्लगइन्स के लिए खोज करते हैं।

संपादित करें:

मैंने हाल ही में अपने विम कॉन्फिग को ट्वीक करने का फैसला किया है और इस प्रक्रिया में निम्नलिखित रेकफाइल लिखकर घाव किया है। यह केवल मैक / लिनक्स पर काम करता है, लेकिन cpसंस्करणों पर लाभ यह है कि यह पूरी तरह से सुरक्षित है (सिमिलिंक मौजूदा फ़ाइलों को अधिलेखित नहीं करते हैं, केवल सिम्क्लिंक को हटाते हैं) और चीजों को अपडेट रखने के लिए आसान है।

# Easily install vim plugins from a source control checkout (e.g. Github)
#
# alias vim-install=rake -f ~/.vim/rakefile-vim-install
# vim-install
# vim-install uninstall

require 'ftools'
require 'fileutils'

task :default => :install
desc "Install a vim plugin the lazy way"
task :install do
  vim_dir      = File.expand_path("~/.vim")
  plugin_dir   = Dir.pwd

  if not (FileTest.exists? File.join(plugin_dir,".git") or
          FileTest.exists? File.join(plugin_dir,".svn") or
          FileTest.exists? File.join(plugin_dir,".hg"))
      puts "#{plugin_dir} isn't a source controlled directory. Aborting."
      exit 1
  end

  Dir['**/'].each do |d|
    FileUtils.mkdir_p File.join(vim_dir, d)
  end

  Dir["**/*.{txt,snippet,snippets,vim,js,wsf}"].each do |f|
    ln File.join(plugin_dir, f), File.join(vim_dir,f)
  end

  boldred = "\033[1;31m"
  clear = "\033[0m"
  puts "\nDone. Remember to #{boldred}:helptags ~/.vim/doc#{clear}"
end

task :uninstall do
  vim_dir      = File.expand_path("~/.vim")
  plugin_dir   = Dir.pwd
  Dir["**/*.{txt,snippet,snippets,vim}"].each do |f|
    safe_rm File.join(vim_dir, f)
  end
end

def nicename(path)
    boldgreen = "\033[1;32m"
    clear = "\033[0m"
    return "#{boldgreen}#{File.join(path.split('/')[-2..-1])}#{clear}\t"
end

def ln(src, dst)
    begin
        FileUtils.ln_s src, dst
        puts "    Symlink #{nicename src}\t => #{nicename dst}"
    rescue Errno::EEXIST
        puts "  #{nicename dst} exists! Skipping."
    end
end

def cp(src, dst)
  puts "    Copying #{nicename src}\t=> #{nicename dst}"
  FileUtils.cp src, dst
end

def safe_rm(target)
    if FileTest.exists? target and FileTest.symlink? target
        puts "    #{nicename target} removed."
        File.delete target
    else
        puts "  #{nicename target} is not a symlink. Skipping"
    end
end

132

सुनिश्चित करें कि वास्तविक .vimफ़ाइल में है~/.vim/plugin/


17
सरल उत्तर के लिए धन्यवाद!
बजे ड्रू लेसुर

हां, मुझे लगता है कि यह उपयोगकर्ताओं के अधिकांश प्रश्नों को हल करता है।
डायल्सन सेल्स

या ~ / .vim / plugin / के तहत किसी भी उपनिर्देशिका में?
राजाविरवर्मा

स्पष्ट होने के लिए: जब आप कहते हैं ~/.vim, तो आपका मतलब है कि जहाँ भी विम स्थापित किया गया है, है ना? जगह में संग्रहीत $VIM(यानी यदि आप :echom $VIM, वह जगह है)
फंड मोनिका का मुकदमा

मेरे सिस्टम पर @QPaysTaxes :echom $VIMदिखाता है /usr/share/vim। लेकिन यह उत्तर ~ उपयोगकर्ता के होम डायरेक्टरी में प्लगइन्स को स्थापित करने के सुझाव के लिए उपसर्ग का उपयोग करता है ।
पॉल रौजीक्स

45

कार्ल के जवाब पर विस्तार करने के लिए, विम अपनी रनटाइम फ़ाइलों के लिए एक विशिष्ट निर्देशिका में दिखता है। आप निर्देशिका के उस सेट को देख सकते हैं :set runtimepath?। विम को यह बताने के लिए कि ~/.vim/vim-hamlआप अंदर भी देखना चाहते हैं

set runtimepath+=$HOME/.vim/vim-haml

अपने को ~/.vimrc। आप यह भी चाहेंगे कि ~/.vimrcvim-haml द्वारा प्रदान की गई सभी कार्यक्षमता को सक्षम करने के लिए आप निम्नलिखित में से कोई भी चाहते हैं ।

filetype plugin indent on
syntax on

आप अधिक जानकारी के लिए Vim में विषयों का उल्लेख 'runtimepath'और :filetypeमदद कर सकते हैं ।


1
"सिंटैक्स ऑन" या ": सिंटैक्स ऑन" है? इसी तरह "फाइलपेप" / ": फिल्टाइप" के साथ।
एथन

4
जब आप उन्हें अंतःक्रियात्मक रूप से टाइप करते हैं, तो आपको cmdline मोड में प्रवेश करने के लिए ':' की आवश्यकता होती है। स्क्रिप्ट में, इनकी आवश्यकता नहीं है क्योंकि स्क्रिप्ट cmdline मोड में है, इसलिए बोलना है। इस वजह से, यह स्क्रिप्ट में ':' को छोड़ने के लिए मानक अभ्यास है क्योंकि यह सब करता है अनावश्यक अव्यवस्था है।
जामसेन

19

मुझे लगता है कि आपको पैथोजन प्लगइन पर एक नज़र डालनी चाहिए । आपके द्वारा यह इंस्टॉल किए जाने के बाद, आप अपने सभी प्लगइन्स को ~ / .vim / बंडल / में अलग-अलग फ़ोल्डरों में रख सकते हैं, और Pathogen उन्हें लोड करने का ध्यान रखेगा।

या, वैकल्पिक रूप से, शायद आप वुंडले को पसंद करेंगे , जो समान कार्यक्षमता प्रदान करता है ( गीथब में प्लगइन्स से स्वचालित अपडेट के अतिरिक्त बोनस के साथ)।


2

अपडेट (2019 तक):

cd ~/.vim
git clone git://github.com/tpope/vim-haml.git pack/bundle/start/haml

स्पष्टीकरण ( :h packविज्ञापन से :h packages):

  1. सभी निर्देशिकाओं को मिलाया गया है runtimepath। वे ~ / .vim / pack / जो कुछ भी हो / शुरू होना चाहिए [आप केवल जो कुछ भी बदल सकते हैं]।
  2. pluginsdir में पाए गए प्लगइन्स खट्टे runtimepathहैं।

तो यह शुरू में प्लगइन लोड करता है (इसलिए नाम शुरू)।

:packaddयदि आप इन्हें ~ / .vim / pack / बंडल / ऑप्ट में लगाते हैं तो आप वैकल्पिक प्लगइन (लोडेड ) भी प्राप्त कर सकते हैं


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