2009-10-28 16 views
143

Mi piacerebbe provare il plugin per Vim collegato qui sotto. Aggiunge l'evidenziazione della sintassi per i file .haml e (forse) .sass.Come installo un plugin per vim?

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

ho fatto questo ...

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

ho aperto un file .haml in Vim, ma non c'è l'evidenziazione. Ci deve essere un altro passo che devo eseguire.

+7

G'day, la sintassi è attiva? (Per chiedere l'ovvio) –

+2

Sono nuovo di Vim. Come posso attivare la sintassi? – Ethan

+5

@ethan in modalità normale, ': syntax on' –

risposta

52

Questi due comandi creare una directory ~/.vim/vim-haml/ con la ftplugin, la sintassi, ecc directory in esso. Queste directory devono essere immediatamente nella directory ~/.vim o ~/.vim/vim-haml deve essere aggiunta all'elenco dei percorsi che vim cerca i plugin.

Edit:

Recentemente ho deciso di modificare il mio vim config e nel processo di liquidazione scrivendo il seguente rakefile. Funziona solo su Mac/Linux, ma il vantaggio rispetto alle versioni cp è che è completamente sicuro (i collegamenti simbolici non sovrascrivono i file esistenti, disinstalla solo cancella i collegamenti simbolici) e semplifica il mantenimento degli aggiornamenti.

# 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 
+0

Ah! OK, questo ha senso. – Ethan

125

Assicurarsi che il file effettivo .vim è in ~/.vim/plugin/

+17

Grazie per la semplice risposta! –

+0

Sì, immagino che questo risolva la maggior parte delle domande degli utenti. –

+0

O in qualsiasi sottodirectory in ~/.vim/plugin /? – RajaRaviVarma

44

Per espandere la risposta di Karl, Vim cerca in una serie specifica di directory per i suoi file di runtime. È possibile vedere questo insieme di directory tramite :set runtimepath?. Per dire a Vim di guardare anche dentro ~/.vim/vim-haml si vorrà aggiungere

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

al vostro ~/.vimrc. Probabilmente vorrai quanto segue nel tuo ~/.vimrc per abilitare tutte le funzionalità fornite da vim-haml.

filetype plugin indent on 
syntax on 

È possibile fare riferimento agli argomenti 'runtimepath' e :filetype aiuto in Vim per ulteriori informazioni.

+1

È "syntax on" o ": syntax on"? Allo stesso modo con "filetype"/": filtype". – Ethan

+4

Quando li digiti in modo interattivo, è necessario il ":" per accedere alla modalità cmdline. In uno script, non sono necessari perché lo script è in modalità cmdline, per così dire. Per questo motivo è normale omettere ":" negli script poiché tutto ciò che fa è aggiungere confusione inutile. – jamessan

19

Penso che dovresti dare un'occhiata allo Pathogen plugin. Dopo averlo installato, puoi tenere tutti i tuoi plugin in cartelle separate in ~/.vim/bundle/e Pathogen si occuperà di caricarli.

Oppure, in alternativa, si preferisce Vundle, che fornisce funzionalità simili (con il vantaggio aggiuntivo di aggiornamenti automatici dai plug-in in github).