Как установить плагин для vim?

Я хочу попробовать плагин для Vim, связанный ниже. Он добавляет подсветку синтаксиса для файлов .haml и (возможно) .sass.

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

Я сделал это...

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

Я открыл файл .haml в Vim, но подсветки не было. Должен быть еще один шаг, который мне нужно выполнить.

Ответ 1

Эти две команды создадут каталог ~/.vim/vim-haml/ с файлами ftplugin, syntax и etc в нем. Эти каталоги должны быть немедленно в каталоге ~/.vim или ~/.vim/vim-haml необходимо добавить в список путей, которые vim ищет для плагинов.

Edit:

Недавно я решил настроить мою конфигурацию vim и в этом процессе запустил запись следующего файла rake. Он работает только на Mac/Linux, но преимущество над версиями 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

Ответ 2

Убедитесь, что фактический .vim файл находится в ~/.vim/plugin/

Ответ 3

Чтобы расширить ответ на вопрос Karl, Vim просматривает определенный набор каталогов для своих файлов времени исполнения. Вы можете увидеть этот набор каталогов через :set runtimepath?. Чтобы сообщить Vim и заглянуть внутрь ~/.vim/vim-haml, вы захотите добавить

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

на ваш ~/.vimrc. Вероятно, вам также понадобится следующее в вашем ~/.vimrc, чтобы включить все функции, предоставляемые vim-haml.

filetype plugin indent on
syntax on

Вы можете обратиться к 'runtimepath' и :filetype в Vim для получения дополнительной информации.

Ответ 4

Я думаю, вам стоит взглянуть на плагин Pathogen. После того, как вы установили это приложение, вы можете сохранить все свои плагины в отдельных папках в ~/.vim/bundle/, и Pathogen позаботится о их загрузке.

Или, альтернативно, возможно, вы предпочитаете Vundle, который обеспечивает аналогичную функциональность (с добавленным бонусом автоматических обновлений от плагинов в GitHub).