Article

macOS 下从零配置 Neovim

macOS 终端窗口,显示 zsh 命令提示符

前言

工欲善其事,必先利其器,配置一个好用顺手的编辑器对开发体验的影响很大。市面上常见的编辑器或 IDE(如 VS Code、IDEA 等),不是捆绑了许多附加组件,就是在后台替你做了太多事情,很多细节无法完全掌控。这样固然上手方便,但一旦出现预期之外的行为,排查和修改都很困难;尤其在做偏底层的开发时,现成环境有时连基础的语法分析都配不顺,这时候自己动手配置一套完全受控的编辑器就是不错的选择。

安装并配置 Neovim 本体

安装 Neovim

在 macOS 上可以直接使用包管理器 Homebrew 进行安装:

shell
brew install neovim

提示

其他安装方式 可以阅读官方文档进行安装。

Neovim 基础配置

Neovim 配置文件默认位于 ~/.config/nvim/init.lua(如果没有可以自行创建)。 打开配置文件,先写入以下基础配置:

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 的基础启动模板(底层使用 lazy.nvim 加载插件)。安装方式非常简单,使用 Git 拉取官方模板仓库即可:

bash
git clone https://github.com/LazyVim/starter ~/.config/nvim

提示

提示 克隆完成后可以删掉其中的 .git 目录,方便后续建立自己 Neovim 配置的 Git 仓库。

之后打开 nvim 输入 :Lazy 即可打开插件管理界面。

安装主题和常用插件

安装 Gruvbox 主题

安装主题很简单,只需要在 ~/.config/nvim/lua/plugins/ 目录下创建一个 Lua 文件(这里命名为 gruvbox.lua),写入如下配置:

lua
return {
  {
    "ellisonleao/gruvbox.nvim",
    priority = 1000,
    lazy = false,
    config = function()
      vim.o.background = "dark"
      vim.cmd.colorscheme("gruvbox")
    end,
  },
}

重启后即可完成安装。

安装常用插件

lualine

lualine 是一个基于 Lua 配置 Neovim 状态栏的插件,可以让状态栏更加美观。安装过程与安装主题类似,在 ~/.config/nvim/lua/plugins/ 下创建 lualine.lua 文件并写入如下内容:

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 是一个撤销历史记录树插件,可以直观地查看和回退修改记录。在 ~/.config/nvim/lua/plugins/ 下创建 undotree.lua 文件并写入如下内容:

lua
return {
    "mbbill/undotree",

    keys = {
        {
            "<F5>",
            "<cmd>UndotreeToggle<CR>",
            desc = "Toggle Undotree",
        },
    },
}

这里绑定了 <F5> 作为快捷键来开关撤销历史树面板。

参考链接

macOS 下从零配置 Neovim

https://www.renpengyu.com/articles/neovim-macos/
作者
Penry
发布于
2026.09.11
许可协议
CC BY-NC-SA 4.0
站内搜索

找到你感兴趣的内容

文章分类
选择文章分类,匹配任意一个所选分类

多选时显示属于任一所选分类的文章。

文章标签
选择文章标签,多个标签需同时包含

多选时只显示同时包含所选标签的文章。

输入关键词开始搜索