2009-10-28 13 views
143

Chciałbym wypróbować wtyczkę dla Vima poniżej. Dodaje podświetlanie składni dla plików .haml i (być może) .sass.Jak zainstalować wtyczkę dla vima?

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

Zrobiłem to ...

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

otworzyłem plik .haml w vim, ale nie ma podświetlania. Musi być jeszcze jeden krok, który muszę wykonać.

+7

G'day, Czy włączona jest składnia? (Aby zapytać o to, co oczywiste) –

+2

Jestem nowy w Vimie. Jak włączyć składnię? – Ethan

+5

@etan w trybie normalnym, ': składnia włączona' –

Odpowiedz

52

Te dwie komendy stworzy katalog ~/.vim/vim-haml/ z ftplugin, składni itp katalogów w nim. Katalogi te muszą znajdować się bezpośrednio w katalogu ~/.vim właściwym lub ~/.vim/vim-haml należy dodać do listy ścieżek, w których vim wyszukuje wtyczki.

Edit:

Niedawno postanowiłem podkręcić mój vim config oraz w procesie likwidacji pisząc następujące Rakefile. Działa tylko na Mac/Linux, ale przewaga nad wersjami cp polega na tym, że jest całkowicie bezpieczny (dowiązania symboliczne nie zastępują istniejących plików, dezinstalacja usuwa tylko dowiązania symboliczne) i łatwo można je aktualizować.

# 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, to ma sens. – Ethan

125

Upewnij się, że rzeczywista .vim plik jest w ~/.vim/plugin/

+17

Dzięki za prostą odpowiedź! –

+0

Tak, myślę, że ten rozwiązuje większość pytań użytkowników. –

+0

Lub w dowolnym podkatalogu pod ~/.vim/plugin /? – RajaRaviVarma

44

Aby rozwinąć odpowiedź Karla, Vim wyszukuje w określonym zestawie katalogów pliki runtime. Możesz zobaczyć ten zestaw katalogów przez :set runtimepath?. Aby powiedzieć Vima również zajrzeć ~/.vim/vim-haml będziemy chcieli dodać

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

do ~/.vimrc. Najprawdopodobniej będziesz także potrzebować następujących elementów w swoim ~/.vimrc, aby umożliwić pełną funkcjonalność dostarczaną przez vim-haml.

filetype plugin indent on 
syntax on 

Można odwołać się do 'runtimepath' i :filetype tematów pomocy w vim, aby uzyskać więcej informacji.

+1

Czy "składnia włączona" lub ": składnia włączona"? Podobnie z "filetype"/": filtype". – Ethan

+4

Po wpisaniu ich interakcyjnie, musisz wpisać ":", aby przejść do trybu cmdline. W skrypcie nie są potrzebne, ponieważ skrypt jest w trybie cmdline, że tak powiem. Z tego powodu standardową praktyką jest pomijanie ":" w skryptach, ponieważ wszystko, co robi, dodaje niepotrzebnego bałaganu. – jamessan

19

Myślę, że powinieneś rzucić okiem na Pathogen plugin. Po zainstalowaniu tego, możesz przechowywać wszystkie swoje wtyczki w oddzielnych folderach w ~/.vim/bundle /, a Pathogen zajmie się ich ładowaniem.

Lub alternatywnie, może wolisz Vundle, który zapewnia podobną funkcjonalność (z dodatkowym atutem automatycznych aktualizacji z wtyczek w github).

Powiązane problemy