什么是Vim插件?


14

我了解我们可以扩展Vim的功能,以便添加新功能或修改现有功能并增强我们的编辑体验。

尽管自己长期以来都是Vim用户,但我现在仍处于未知领域:什么是Vim插件?编写插件的先决条件是什么,以便我可以在不久的将来编写自己的插件?

Answers:


16

插件是扩展vim功能的一种方式。

Vim将插件分为“全局”插件(无条件加载和运行)和“文件类型”插件(仅针对特定文件类型加载和运行,请参见:help filetype)。假设您没有更改运行时路径(手动或使用诸如Pathogen或Vundle之类的插件),Vim会在特定位置查找插件:

  • 在* nix和OS X上,默认值为 ~/.vim/plugin
  • 在Windows上,默认值为 $HOME/vimfiles/plugin

文件类型插件使用ftplugin代替,并且必须命名为(或在名为子目录),用于文件类型它们对应于(例如foo.vim用于foo文件类型)。

插件只是vim脚本,因此您可以像使用vim脚本那样使用它们来定义函数,映射和命令.vimrc,尽管编写插件时,通常您希望比仅仅使用vim脚本来编写通用性更高的脚本。自行入侵.vimrc。如果您的vim是使用适当的选项编译的,则还可以使用其他语言(例如Python,Ruby或Lua)编写插件。

但是,插件通常不仅仅是.vim位于适当目录中的单个文件。它们通常还包括自动加载脚本(:help autoload),语法脚本(:help syntax)和缩进处理脚本。这些脚本中的所有代码打包在一起,提供了强大的钩子来增强vim。

Vim的内置帮助(:help plugin)包含各种其他详细信息。编写插件是一个相当广泛的话题,但是vim的内置帮助可能非常有用。此外,互联网上还有一些出色的资源,例如:


使用插件(无论是您编写的插件还是从互联网下载的插件),只需将其放置在适当的目录(或多个目录,如果适用)中并启动vim即可。当然,某些插件可能具有更复杂的安装过程(例如流行的YouCompleteMe完成插件,它具有已编译的组件)。

如今,诸如PathogenVundle之类的插件管理插件是手动安装插件文件的流行替代方法,尤其是因为插件通常附带多个文件(如上所述)。有关更多信息,请参见此问题

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.