文章目录
Vim 插件管理-Prerequisite
何为插件?
插件(这里是指广义上的)用于扩充Vim的功能, 像代码提示、主题、语法、缩进, etc.
Vim 8提供了包的特性, 方便了插件的管理.
Scripts, Plugins and Packages
- Packages(包)是Plugins(插件)的集合, 一个包可含一个或多个插件.
- Plugins是Scripts(脚本)的集合, 一个插件可含一个或多个脚本.
- Script 是一个用VimScript写成的文本文件.
Vim和Neovim的一些区别
- Vim:
$HOME/.vimrc
是全局配置文件,$HOME/.vim/
是全局配置目录. - Neovim:
$HOME/.config/nvim/init.nvim
是全局配置文件, 全局配置目录也在
$HOME/.config/nvim/
下.
这些区别都只是默认配置上的.
只要修改runtimepath
变量, 就可修改Vim启动时查找的路径. 这类似命令行中的$PATH
.
插件实例
将以下内容保存到$HOME/.vimrc
(Vim)或$HOME/.config/nvim/init.vim
(Neovim), 重启Vim或在Vim中执行:source $MYVIMRC
.
" This is comment
" This is the definition of a function
function! SayHello()
echo 'Hello, world!'
endfunction
" This is the definition of a command
command! Hello call SayHello()
" Map Q to :Hello<cr> in normal mode
nnoremap Q :Hello<CR>
在Vim中执行:Hello
命令即可看到效果. 这就是一个毫无用处的插件,但它确实是个插件.
我们用的语言就是VimScript.
假设某个插件demo-plugin
的目录结构是这样的:
demo-plugin
|--- doc
| |--- demo.txt
|--- plugin
|--- demo.vim
doc
目录是文档, plugin
目录是插件.
在Vim中输入:set runtimepath+=~/demo-plugin
(假设该插件在~/demo-plugin
)下,
对应的插件即可被加载.
Vim 8的新特性-包
“A package is a directory that contains one or more plugins.”
Vim的包在~/.vim/pack/
下, Neovim的包在~/.config/nvim/pack/
下.
Vim在启动时会自动加载~/.vim/pack/*/start/
目录下的插件,
所以安装插件就意味着将插件放到该目录下.
Vim内置文档的浏览
Vim的内置文档包括两部分:
- 内置的用户手册和参考文档
- 用户安装的插件的文档
Vim的内置文档使用纯文本编写且包含两类标记:
- anchors(锚点)
- hyperlinks(超链接)
这类似网页中页面间的跳转. Vim中通过超链接跳转至对应的锚点.
如何跳转?
- 将光标置于对应的超链接处并按下
Ctrl-]
可跳转至相应锚点. - 按下
Ctrl-o
可回退至之前浏览的位置, 这个o
就是orignal.
在Vim中进入文档浏览可通过:help
命令加上对应的关键字, 可用Tab
补全.
Reference
Modern Vim: Cract Your Development Environment with Vim 8 and NeoVim, Chapter 2.