macOS 下 Neovim 与 LazyVim 配置指南

本文记录了在 macOS 系统下安装 Neovim 并配置 LazyVim(一个优秀的 Neovim 发行版)的完整流程,包含必要的依赖安装、插件管理及个性化按键设置。

一、安装 Neovim

推荐使用 Homebrew 进行安装,命令简洁高效:

1
brew install neovim

二、安装 LazyVim Starter

LazyVim 提供了便捷的启动配置。请参考其官方仓库 LazyVim/starter 的说明进行安装。截至本文撰写时 (2025-07-04),步骤如下:

1
2
3
4
5
6
7
8
# Clone the starter
git clone https://github.com/LazyVim/starter ~/.config/nvim

# Remove the .git folder, so you can add it to your own repo later
rm -rf ~/.config/nvim/.git

# Start Neovim!
nvim

首次启动时,Neovim 将自动开始下载并安装 LazyVim 的核心插件和依赖。

完成初始化

安装完成后,退出并重启 Neovim (:qa 然后再次执行 nvim)。后续可使用 nvim /path/to/folder 打开特定目录。

三、安装 Nerd Font 字体

LazyVim 界面中的许多图标依赖特殊字体渲染。若未安装,部分图标将显示异常。推荐使用NerdFonts

下载字体

访问 Nerd Fonts 官网,选择并下载您喜欢的字体文件(如 Jetbrains Mono 等)。双击下载的 .ttf 或 .otf 文件,并安装。

配置终端

打开使用的终端应用(如 iTerm2 等),将字体设置为刚才安装的 Nerd Font 字体。

四、配置 LSP 与扩展

LazyVim 通过内置的 Lazy 插件管理器简化了 LSP (Language Server Protocol) 服务器和工具扩展的安装。

打开插件界面

在 Neovim 命令模式下输入 :LazyExtras 并按回车。

管理扩展

此界面列出了可用的额外插件和 LSP 配置。使用方向键移动光标至目标条目:

x 切换插件的启用 (+) 或禁用 (-) 状态。界面通常会有简要的功能说明。

Enter 可查看插件详情。

应用更改

配置完成后,输入 :q 退出 LazyExtras 界面,并且退出并重启 Neovim (:qa 然后 nvim)。Lazy 将自动开始下载并安装新启用的插件和 LSP 服务器。

补充:个性化按键映射(Keymaps)

因默认的窗口导航 Ctrl - h/j/k/l 和 Buffer 切换 Shift - h/j/k/l 习惯不符合个人偏好,故修改了键位,可供参考。

编辑配置文件:

1
nvim ~/.config/nvim/init.lua

在文件末尾添加映射代码:

1
2
3
4
5
6
7
8
9
10
11
-- 个性化按键映射
local map = vim.keymap.set
local opts = { noremap = true, silent = true }

-- 切换窗口焦点:Option + ← / Option + → 映射到 Ctrl+h / Ctrl+l
map("n", "<M-Left>", "<C-w>h", opts)
map("n", "<M-Right>", "<C-w>l", opts)

-- 切换 Buffer:Shift + ← / Shift + → 映射到 :bprevious / :bnext
map("n", "<S-Left>", ":bprevious<CR>", opts)
map("n", "<S-Right>", ":bnext<CR>", opts)

"n": 表示在 Normal 模式下生效。

M-Left / M-Right: macOS 上的 Option+Left / Option+Right。

S-Left / S-Right: macOS 上的 Shift+Left / Shift+Right。

C-w>h / <C-w>l: Neovim 内置的窗口导航命令 (Ctrl+w 后按 h 或 l)。

:bprevious<CR> / :bnext<CR>: 切换到上一个/下一个 Buffer 的命令并执行回车。

opts: 确保映射非递归 (noremap) 且静默执行 (silent)。

保存并生效: 保存文件 (:wq) 后,重启 Neovim。

补充知识点

Buffer: 代表一个打开的文件内容。:bnext:bprevious 用于在 已打开的文件列表 (Buffer 列表) 之间切换。即使没有可见的窗口标签页,Buffer 也可以存在。

Tab: Neovim 中的 Tab 页是一个独立的窗口布局容器,可以包含多个窗口(分割视图)。切换 Tab 应使用 :tabnext / :tabprev 或对应快捷键(默认 gt / gT)。本文的映射是针对 Buffer 切换,而非 Tab 页切换。

Rust-Analyzer:如果希望在 Neovim 中使用 Rust 开发功能(如代码补全、跳转定义等),需要安装 rust-analyzer。可以在终端中运行以下命令进行安装:rustup component add rust-analyzer && rustup component add rust-src。随后在 :LazyExtras 中打开 Rust 相关的插件即可(自带 RustaceanVim 等插件调用本机的 Rust 工具链,也无需在 Mason 中进行配置。