Jak zainstalować wtyczkę dla Vima?

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

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 Vimie, ale nie ma podświetlenia. Musi być jeszcze jeden krok, który muszę wykonać.

 146
vim
Author: Ethan, 2009-10-28

4 answers

Te dwa polecenia utworzą katalog ~/.vim/vim-haml/ z katalogami ftplugin, syntax, itp. Te katalogi muszą być natychmiast w katalogu ~/.vim właściwym lub ~/.vim/vim-haml musi być dodany do listy ścieżek, które vim szuka wtyczek.

Edit:

Niedawno zdecydowałem się dostosować mój vim config i w procesie skończyło się pisanie poniższego rakefile. Działa tylko na Mac / Linux, ale zaletą wersji cp jest to, że jest całkowicie bezpieczny (dowiązania symboliczne nie nadpisują istniejących plików, Odinstaluj tylko usuwa dowiązania symboliczne) i łatwo aktualizować rzeczy.

# 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
 52
Author: Karl Guertin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-17 13:53:01

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

 128
Author: gir,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-30 19:30:39

Aby rozszerzyć odpowiedź Karla, vim szuka określonego zestawu katalogów dla swoich plików runtime. Możesz zobaczyć ten zestaw katalogów za pomocą :set runtimepath?. Aby powiedzieć Vimowi, aby również zajrzał do środka ~/.vim/vim-haml, musisz dodać

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

Do twojego ~/.vimrc. Prawdopodobnie będziesz chciał również, aby w ~/.vimrc włączyć wszystkie funkcje dostarczane przez vim-haml.

filetype plugin indent on
syntax on

Możesz odnieść się do 'runtimepath' oraz :filetype tematy pomocy w Vimie, aby uzyskać więcej informacji.

 44
Author: jamessan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-15 17:20:43

Myślę, że powinieneś rzucić okiem na wtyczkę patogen . Po zainstalowaniu wtyczek możesz przechowywać wszystkie wtyczki w osobnych folderach w~/.vim / bundle/ , a patogen zajmie się ich załadowaniem.

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

 19
Author: yngve,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-02 10:14:10