最开始 NeoVim 是 Vim 的功能增强,但是随着不断开发,功能越来越完善,而且已经分道扬镳,现在已经成为了更加接近现代的开发工具,尤其是随着 Vision 计划的开发,也包括了其子项目 Tree-sitter。
简介
直接从 GitHub 下载最新的稳定版本即可,可以是二进制包,也可以是类似 Deb 的安装包。
----- 在Debain或者Ubuntu上安装
# apt install nvim-linux64.deb
----- 直接使用二进制,需要配置环境变量,或者添加符号连接
# tar -xvf nvim-linux64.tar.gz -C /usr/local/
# export PATH=/usr/local/nvim-linux64/bin:$PATH
# cd /usr/bin && ln -s ../local/nvim-linux64/bin/nvim nvim
----- 查看版本号,会同时显示编译参数等
$ nvim --verion
如果使用二进制安装,那么后续可以通过如下命令进行更新。
# rm -rf /usr/local/nvim-linux64 && tar -xvf nvim-linux64.tar.gz -C /usr/local/
基础配置
这依赖于 runtimepath
变量的设置,对 Linux 来说,默认在 ~/.config/nvim
目录下,可通过 :set runtimepath?
查看当前的配置,如果要在命令行中执行 Lua 代码,可用 :lua print(vim.fn.stdpath('data'))
方式执行。
NeoVim 的配置文件不是 ~/.vimrc
文件,而是 ~/.config/nvim/init.vim
文件,在支持 Lua 语言之后,也可以直接使用 init.lua
文件,详细可以通过 :help config
命令查看,配置目录如下:
~/.config/nvim/
|-init.lua 加载的默认入口配置文件
|-lua/
| |-basic/ 基础配置
| | |-config.lua 常规配置项,例如编码、对齐等等
| | |-keymap.lua 按键映射
| | |-utils.lua 杂七杂八的配置,例如自动跳转上次打开位置
| |-config/ 插件的配置,每个配置文件以插件名命名
| |-plugins.lua 安装的插件以及部分相关的配置
|-plugin/ Packer编译后的文件
配置项
提供了一组 API 函数来设置选项/获取配置项,包括了:A) 全局选项 vim.api.nvim_set_option()
;B) 缓冲区选项 vim.api.nvim_buf_set_option()
;C) 窗口选项 vim.api.nvim_win_set_option()
三种。
包含了一个字符串参数,标识配置的选项,跟 VIM 类似,还有一个为将要设置的值,可以是字符串、数字、布尔类型;缓冲区和窗口设置需要通过第一个参数指定编号,其中 0
表示当前的窗口。
同时 NeoVim 提供了全局 vim
变量用来设置配置项,同样也是根据不同的范围设置配置项,也就是所谓的元访问器 (Meta-Accessors),如下是常见配置:
vim.o.{option}
通用选项。vim.g.{option}
全局选项。vim.bo.{option}
Buffer 选项。vim.wo.{option}
Window 选项。
另外,还可以通过 vim.opt
设置全局、Buffer、Window 的选项,这跟在 Vim 执行 set
命令的作用相同,例如可以通过 vim.opt.autoindext=true
设置,而对应的值可通过如下命令查看。
:lua print(vim.opt.autoindent:get())
:lua print(vim.inspect(vim.opt.autoindent))
如果只通过 print(vim.opt.autoindent)
打印实际上显示的是一个 Table 的内存地址。
其它
更新代理
因为 Wall 的原因可能需要频繁更新,这里维护需要更新的配置文件。
~/.config/nvim/init.lua
~/.config/nvim/lua/plugins.lua
删除掉 ~/.local/share/nvim
更新。