Answers:
要安装插件,我们需要知道它以什么形式出现。它可以是:
.vim
文件plugin/*
,syntax/*
等)的目录中的一组文件(是什么使插件Vundle兼容并且其他插件管理器可互换的?).vim
应该在.vim/plugin
目录中放置一个文件。
可以通过在Vim中打开并运行Vimball文件来安装它:source %
。
可以通过将标准文件复制到.vim
或使用插件包管理器来安装标准目录布局中的一组文件。
插件可能取决于某些功能。因此:
但是,对于大多数插件而言,这可能并不重要。
我喜欢使用vim-plug插件管理器。
手动安装插件的问题在于,删除插件相当困难 。您通常在不同的目录中有几个不同的文件,因此必须手动找到并删除它们。
升级问题也同样困难:如果autoload/old-name.vim
重命名为autoload/new-name.vim
怎么办?现在,您既有旧版本的插件,也有新版本的插件。
vim-plug
通过将每个插件存储在自己的目录中解决此问题;它还包含用于轻松安装/删除插件的命令,因此您不必为插件解压缩等烦恼。
与Pathogen相比,vim-plug的主要优点 是vim-plug允许您更轻松地安装和删除插件。Pathogen所做的一切就是允许每个插件位于单独的包含目录中。
vim-plug依赖git ; 对于MS Windows,您需要 msysgit。
您可以在vimrc中定义插件,如下所示:
call plug#begin('~/.vim/plugged')
" For MS Windows, this is probably better:
"call plug#begin('~/vimfiles/plugged')
Plug 'embear/vim-localvimrc'
Plug 'kchmck/vim-coffee-script'
" ... etc
call plug#end()
然后重新启动Vim,然后使用以下命令安装插件:
:PlugInstall
这会将插件放入MS Windows ~/.vim/plugged
或$HOME\vimfiles\plugged
用于Windows。
您可以在调用之前将FAQ中的此代码段添加
到vimrc文件中plug#begin()
:
if empty(glob('~/.vim/autoload/plug.vim'))
silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
autocmd VimEnter * PlugInstall
endif
请注意,您需要curl
执行此操作。在Linux和OSX上几乎总是可用,但在MS Windows上却不可用。所以这个技巧在那儿行不通...
要删除插件,请将其从vimrc文件中删除并运行:
:PlugClean
请注意,vim-plug不支持从Vim脚本网站安装脚本,但是这些脚本已镜像到GitHub,因此无需这样做。
这样做还具有其他一些优点,例如,更容易更新插件以及按需加载以提高性能。您还可以轻松地将vimrc复制到另一台计算机上,运行:PlugInstall
,并拥有所有插件。
请注意,还有更多的插件管理器;我碰巧用了vim-plug
。另请参见:vim软件包管理器之间有什么区别?
Pathogen是一个运行时路径管理器,可在Vim中加载插件。它使插件安装变得简单。运作方式如下:
注意:如果您使用的是Windows,请替换~/.vim
为$HOME\vimfiles
。
复制pathogen.vim
到~/.vim/autoload/pathogen.vim
。
创建~/.vim/bundle
目录(如果尚不存在)。
将以下行添加到您的开始.vimrc
:
execute pathogen#infect()
你完成了!当您要添加插件时,只需将整个插件的目录复制到~/.vim/bundle
或git clone
在其中。例如:
cd ~/.vim/bundle
git clone https://github.com/tpope/vim-surround
*警告:如果您的插件以.vim
文件形式出现,则它不适用于Pathogen。将其复制到~/.vim/plugin
(如果不存在,则可能必须创建此目录)。
git submodule add
(而不是git clone
)(如果您的vim配置已经是您自己的git项目的一部分)。
runtimepath
选项,仅此而已。它根本不涉及更新,添加,检索,删除插件。
版本8引入了一种新的包机制,该机制在撰写本文时(2017年)基本取代了对现有插件管理器(病原体,vim-plug,vundle等)的需求。
从文档中:
Vim 软件包是一个包含一个或多个插件的目录。
软件包目录包含两个子目录:
start/
-包含将自动加载的插件opt/
-包含按需加载的插件 :packadd
看起来似乎有点复杂,但是实际上您要做的就是在这里添加插件:
↓ package name
~/ .vim / pack / bundle / start / some-plugin
↑ packages dir ↑ plugin dir
在Windows上:使用~\vimfiles\pack\
代替~/.vim/pack/
按照惯例,我们将包名称“ bundle”用作包含所有插件的目录。您可以使用任何想要的名称,如果愿意,甚至可以将插件放在单独的软件包目录中。
mkdir -p ~/.vim/pack/bundle/start
cd ~/.vim/pack/bundle/start
git clone https://github.com/tpope/vim-sensible.git
在Windows上:使用~\vimfiles\pack\
代替~/.vim/pack/
下次启动Vim时,该插件将自动加载。
.vim
受版本控制,最好使用git的子模块安装插件。参见shapeshed.com/vim-packages/#adding-a-package。
让我们不要忘记伟大而强大的Vundle!
Vundle是一个完整的插件管理器,具有以下功能:
:PluginSearch
):PluginInstall
):PluginUpdate
):PluginClean
)如您所见,它很像Carpetsmoker提到的vim-plug Manager。我不知道哪一个最先出现,但是它们的API和我的设置非常相似,设置过程也是如此。
.vimrc
,因此,在新服务器上安装时,您所需要做的就是安装Vundle + .vimrc
安装所有内容。另外,您可以注释掉插件并“清理”它们,但是当您早已忘记它们的名称时,便可以在几个月或几年后对其进行注释。
您的插件很可能是单个.vim文件。
在这种情况下,我搜索了帮助并进行了尝试并找出了以下内容。在vim(命令模式)中,键入:
:set runtimepath
这将向您显示一系列目录。其中一些目录将有一个plugin
子目录。plugin
当从任何地方启动vim时,将任何.vim文件放在这些子目录之一中将自动加载它。
对于我来说,在Ubuntu linux上,我发现可以/usr/share/vim/vim74/plugin
为所有用户安装都很好。您可能需要root权限才能将文件复制到此处(在cp
或mv
命令前面加上sudo
)。
vim74
,这意味着它是特定于版本的,因此升级到Vim 8.0将失去该插件。更多升级,证明的方式是使用/etc/vim/
为(如果不存在创建它,并添加路径runtimepath
,如果不提供/etc/vimrc
)
Most likely, your plugin will be a single .vim file
我不同意。绝大多数插件都带有一个.txt
包含文档的文件,您需要生成标签来获取功能文档。另外,许多插件都带有autoload
目录。我认为使用插件管理器比手动管理您的运行时
/usr/share/vim/vimXX
是库存运行时,不是站点配置/插件的位置。相反,应该将站点配置/插件放置$VIM
在该系统上的任何位置(请参阅参考资料:h vimfiles
)。通常/usr/share/vim
情况就是这样,对于Ubuntu来说就是这样,并持有指向的符号链接/etc/vim
。通常,/usr/local/
是在软件包管理器外部进行站点配置的实际位置。请注意,Neovim使用$XDG_(CONFIG|DATA)_DIRS
和site
目录,为站点配置提供了更好的现成默认值。
vi
在任何现代包装盒上打字都可能会在vim
关闭某些功能的情况下启动。我怀疑这些天有很多人可以使用实际的 Vi。