NeoVim 基本环境配置

2022-09-02 linux vim

最开始 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 更新。