我了解我们可以扩展Vim的功能,以便添加新功能或修改现有功能并增强我们的编辑体验。
尽管自己长期以来都是Vim用户,但我现在仍处于未知领域:什么是Vim插件?编写插件的先决条件是什么,以便我可以在不久的将来编写自己的插件?
我了解我们可以扩展Vim的功能,以便添加新功能或修改现有功能并增强我们的编辑体验。
尽管自己长期以来都是Vim用户,但我现在仍处于未知领域:什么是Vim插件?编写插件的先决条件是什么,以便我可以在不久的将来编写自己的插件?
Answers:
插件是扩展vim功能的一种方式。
Vim将插件分为“全局”插件(无条件加载和运行)和“文件类型”插件(仅针对特定文件类型加载和运行,请参见:help filetype
)。假设您没有更改运行时路径(手动或使用诸如Pathogen或Vundle之类的插件),Vim会在特定位置查找插件:
~/.vim/plugin
$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完成插件,它具有已编译的组件)。
如今,诸如Pathogen和Vundle之类的插件管理插件是手动安装插件文件的流行替代方法,尤其是因为插件通常附带多个文件(如上所述)。有关更多信息,请参见此问题。