3分钟
我的Neovim配置
我自己正在使用的配置: Github
目前还没在新环境做测试,并且只在Arch Linux这一个发行版上使用,遇到的问题我都会补充在下面
动机
我的工作环境从windows迁移到linux有一段时间了,使用习惯逐渐向终端靠拢,正好尝试下neovim这类编辑器
安装
根据自己的喜好选择安装方式,系统包管理或者是从源码编译,等等,这里不再赘述
Arch Linux
$ sudo pacman -S neovim
插件管理
我使用的插件管理器是lazy.nvim
之前看到了一个视频,利用lazy.nvim的懒加载将nvim的启动速度提升到了20ms上下,非常的快,于是就有了我的nvim配置重构(之前用的是lazyvim发行版)
基本是直接照着博客的介绍抄的解决方案,但因为我的插件更多一些,所以遇到了一些问题
配置重构与遇到的问题
-
nvim-tree插件打开文件浏览器后lualine插件的状态栏被分成了两个
设置
vim.o.laststatus = 3
即可解决,保证全局只有一个状态栏 -
bufferline插件,主题颜色不生效
我懒得做其他处理了,直接设置bufferline的颜色来修改
主题色
local bufferline_theme = { normal = { bg = "#1e2030", }, visible = { bg = "#0c253c", }, selected = { bg = "#2A3458", }, }
在配置函数中自动设定颜色
local highlights = { fill = { bg = "", }, background = bufferline_theme.normal, indicator_visible = bufferline_theme.visible, separator = bufferline_theme.normal, } for _, v in ipairs({ "buffer", "error", "numbers", "close_button", "diagnostic", "warning", "warning_diagnostic", "error", "error_diagnostic", "modified", "duplicate", "hint", "hint_diagnostic", "info", "info_diagnostic", }) do highlights[v] = bufferline_theme.normal highlights[v .. "_visible"] = bufferline_theme.visible highlights[v .. "_selected"] = bufferline_theme.selected end opts.highlights = highlights
配置结构
- lua/config/ 用来存放nvim自身的配置
- lua/lib/ 存放工具函数等多次重用的代码
- lua/plugins/ 存放插件的配置
插件
像nvim-lspconfig,mason这类插件的基础配置网上很容易查到,这里说我自己的部分配置
lsp,treesitter之类的长一些的配置都在lua/plugins/conf.lua中
Mason
比较核心的插件,用来安装一系列程序(formatter,lsp等)
LSP
我这里使用mason-lspconfig插件来自动安装lsp,这个插件可以自动将nvim-lspconfig插件的lsp名称翻译成mason package的名称进行安装
mason-lspconfig
opts = {
ensure_installed = table.keys(config.lsp),
} -- 自动按lsp配置表的键名安装
Formatter
手动格式化代码太累,用过formatter就再也回不去了,不配不行
我这里使用的格式化插件是conform.nvim,formatter同样使用mason自动安装
轻量化,模块化
我设定了一个指令用于开关插件启用(TogglePluginsEnabled
),默认是关闭的,执行指令后才会启用lazy.nvim和所有的插件
接下来还有把插件进行细分,之后可选安装的打算
成果
究极电子积木,可自定义程度太高,对我来说不少场景已经可以代替vscode