Article

mac上从0开始配置nvim

前言

工欲善其事,必先利其器,配置一个好用顺手的编辑器对开发体验的影响很大。但是市面上常见的编译器像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作为插件的快捷键来打开历史记录树面板。

参考链接

站内搜索

找到你感兴趣的内容

输入关键词开始搜索