前言
工欲善其事,必先利其器,配置一个好用顺手的编辑器对开发体验的影响很大。但是市面上常见的编译器像VScode,IDEA之类,不是有很多强行绑定的软件就是ide干了太多的事情,有很多东西你无法完全掌控。这样固然可以便于使用,但是编辑器出现你期望之外的行为时,我们压根无法进行排查,更难进行修改。尤其对于一些较低层的开发,很多编辑器压根无法正确进行基本的语法分析,这时候自己配置一个完全受自己掌控的编辑器就成了不错的选择。
安装并配置neovim本体
安装neovim
在mac上可以直接使用包管理器BrewHome来进行安装
brew install neovim
[!TIP] 其他安装方式 可以阅读官方文档来进行安装.
nvim基本配置
nvim配置文件默认在~/.config/nvim/init.lua(如果没有可以自行创建).
首先先打开配置文件,进行一些基本配置.
-- 设置领导键
vim.g.mapleader = " "
vim.g.maplocalleader = " "
-- 显示行号
vim.opt.number = true
-- 当前行显示绝对行号,其他行显示相对行号
vim.opt.relativenumber = true
-- Tab 宽度
vim.opt.tabstop = 4
vim.opt.softtabstop = 4
vim.opt.shiftwidth = 4
-- Tab 转为空格
vim.opt.expandtab = true
-- 自动缩进
vim.opt.autoindent = true
-- 启用鼠标
vim.opt.mouse = 'a'
-- 高亮当前行
vim.opt.cursorline = true
-- 显示当前模式
vim.opt.showmode = false
-- 总是显示状态栏
-- vim.opt.laststatus = 2
-- 状态栏
-- vim.opt.statusline = '%f %m %r %= [%{&filetype}] [%{&fileformat}] [Ln %l/%L, Col %v] [%p%%]'
-- 快捷键(macOS)
vim.keymap.set('i', 'jj', '<Esc>')
vim.keymap.set('n', '<Esc>b', 'b')
vim.keymap.set('n', '<Esc>f', 'w')
vim.keymap.set('i', '<Esc>b', '<C-O>b')
vim.keymap.set('i', '<Esc>f', '<C-O>w')
-- 不显示文件信息
vim.opt.shortmess:append('F')
-- 不显示启动画面
vim.opt.shortmess:append('I')
-- 关闭交换文件
vim.opt.swapfile = false
-- 开启持久化撤销
vim.opt.undofile = true
-- Neovim 撤销文件目录
local undo_dir = vim.env.HOME .. "/.nvim/undo"
vim.opt.undodir = undo_dir
-- 自动创建撤销目录
if vim.fn.isdirectory(undo_dir) == 0 then
vim.fn.mkdir(undo_dir, "p", 448)
end安装插件加载器
插件管理器我这里选择了比较常用的LazyVim。其安装方式非常简单,直接使用git拉去官方模版仓库即可
git clone https://github.com/LazyVim/starter ~/.config/nvim
[!TIP] 提示 安装后可以删除.git文件,以便于之后建立自己nvim配置的git仓库。
之后打开nvim输入:Lazy即可打开LazyVim的主界面。
安装主题和常用插件
安装Gruvbox主题
安装主题也很简单,只需要在nvim配置目录config/plugins/下创建一个lua文件,这里我命名为grubbox.lua,之后写入如下配置:
return {
{
"ellisonleao/gruvbox.nvim",
priority = 1000,
lazy = false,
config = function()
vim.o.background = "dark"
vim.cmd.colorscheme("gruvbox")
end,
},
}
重启后即可完成安装。
安装常用插件
lualine
lualine是一个基于lua来配置nvim状态栏的插件,添加他可以让nvim的状态栏更加漂亮。安装过程和安装主题过程相似,在nvim配置目录config/plugins/下创建lualine.lua文件并写入如下内容:
return {
"nvim-lualine/lualine.nvim",
dependencies = {
"nvim-tree/nvim-web-devicons",
},
opts = {
options = {
theme = "auto",
icons_enabled = true,
component_separators = "",
section_separators = "",
globalstatus = true,
},
},
}
同样保存退出即可完成配置。
undotree
undotree是一个历史记录树软件,可以直观的查看历史记录。在nvim配置目录config/plugins/下创建lualine.lua文件并写入如下内容:
return {
"mbbill/undotree",
keys = {
{
"<F5>",
"<cmd>UndotreeToggle<CR>",
desc = "Toggle Undotree",
},
},
}
这里绑定了一个F5作为插件的快捷键来打开历史记录树面板。