如何为 vim 安装插件?

我想尝试下面链接的 Vim 插件,它为 .haml和(也许) .sass文件增加了语法突显。

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

是我干的。

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

我在 Vim 中打开了一个 .haml文件,但是没有高亮显示。一定还有其他步骤需要执行。

133431 次浏览

确保实际的 .vim文件在 ~/.vim/plugin/

这两个命令将创建一个包含 ftplugin、语法等目录的 ~/.vim/vim-haml/目录。这些目录需要立即放在 ~/.vim目录中,或者需要将 ~/.vim/vim-haml添加到 vim 搜索插件的路径列表中。

编辑:

我最近决定调整我的 vim 配置,并在这个过程中结束了编写下面的 rakefile。它只能在 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

为了扩展 Karl 的回复,Vim 在一组特定的目录中查找它的运行时文件。您可以通过 :set runtimepath?看到这组目录。为了告诉 Vim 也看内部 ~/.vim/vim-haml你会想要添加

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

到你的 ~/.vimrc。您可能还希望在 ~/.vimrc中启用 vim-haml 提供的所有功能。

filetype plugin indent on
syntax on

有关更多信息,可以参考 Vim 中的 'runtimepath':filetype帮助主题。

我觉得你应该看看 病原体插件。安装完成后,您可以将所有插件保存在 ~/中的单独文件夹中。Vim/bundle/,病原体将负责装载它们。

或者,您可能更喜欢 Vundle,它提供了类似的功能(还附加了来自 github 插件的自动更新)。

更新(截至2019年) :

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

解说 (来自 :h pack ad :h packages) :

  1. 所有找到的目录都添加到 runtimepath。它们必须位于 ~/. vim/收拾行李/whatever/开始[您只能更改任何内容]。
  2. runtimepathplugins目录中找到的插件来源。

因此,这在开始时加载插件(因此命名为 start)。

如果你把它们放在 ~/. vim/收拾行李/bundle/选吧中,你也可以得到可选的插件(加载了 :packadd)