本文记录在 Ubuntu 24.04 环境中,从源码编译安装 Neovim 稳定版,并部署一套实用的编辑器全家桶配置。
这套配置包含基础显示、文件树、OneDark 主题、OSC 52 远程复制,以及基于 conform.nvim 和 prettier 的代码格式化。适合新服务器、新桌面环境,或者需要统一 Neovim 使用体验的场景。
第一步:安装依赖并源码编译 Neovim
在全新 Ubuntu 24.04 系统中,先安装编译 Neovim 所需的基础工具和系统依赖。
sudo apt update
sudo apt install ninja-build gettext cmake unzip curl build-essential git -y
拉取 Neovim 源码,并切换到稳定版分支。使用 stable 分支可以规避开发版中可能出现的临时问题。
git clone https://github.com/neovim/neovim.git ~/neovim-src
cd ~/neovim-src
git checkout stable
开始编译并全局安装:
make CMAKE_BUILD_TYPE=Release -j$(nproc)
sudo make install
清理 shell 路径缓存,并验证 Neovim 版本:
hash -r
nvim -v
如果系统里原本安装过旧版 Neovim,可以额外确认实际调用路径:
which nvim
nvim --version
第二步:安装格式化所需环境
conform.nvim 本身负责调度格式化,但真正执行排版的是系统中的外部工具。这里安装 Node.js、npm 和全局 Prettier。
sudo apt install nodejs npm -y
sudo npm install -g prettier
安装完成后验证:
node -v
npm -v
prettier -v
第三步:安装 vim-plug 并写入完整配置
先安装 vim-plug 插件管理器:
curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
创建 Neovim 配置目录。如果已经存在旧配置,建议先手动备份后再继续。
mkdir -p ~/.config/nvim
写入完整 init.vim 配置:
cat << 'EOF' > ~/.config/nvim/init.vim
" =================================================
" 1. 基础显示设置
" =================================================
set nocompatible
syntax on
filetype plugin indent on
set encoding=utf-8
set mouse=a
set number
set relativenumber
set cursorline
if has("termguicolors")
set termguicolors
endif
" =================================================
" 2. 插件管理
" =================================================
call plug#begin('~/.local/share/nvim/plugged')
Plug 'preservim/nerdtree'
Plug 'joshdick/onedark.vim'
Plug 'ojroques/vim-oscyank'
Plug 'stevearc/conform.nvim'
call plug#end()
" =================================================
" 3. 视觉与颜色修复
" =================================================
silent! colorscheme onedark
function! s:fix_visual_style()
highlight Normal guibg=#1e2127 guifg=#abb2bf
highlight NonText guibg=#1e2127 guifg=#3b4048
highlight LineNr guifg=#4b5263 guibg=NONE
highlight CursorLineNr cterm=bold gui=bold guifg=#e5c07b guibg=NONE
highlight Visual guibg=#3e4452 guifg=NONE
highlight CursorLine guibg=#2c313a ctermbg=236
highlight Search guibg=#61afef guifg=#1e2127
highlight IncSearch guibg=#98c379 guifg=#1e2127
highlight VertSplit guifg=#3e4451 guibg=NONE
endfunction
augroup MyColors
autocmd!
autocmd ColorScheme * call s:fix_visual_style()
autocmd BufEnter,WinEnter * call s:fix_visual_style()
augroup END
call s:fix_visual_style()
" =================================================
" 4. 远程复制逻辑
" =================================================
autocmd TextYankPost * if v:event.operator is 'y' && v:event.regname is '' | execute 'OSCYankRegister "' | endif
" =================================================
" 5. 快捷键设置
" =================================================
let mapleader=";"
nmap <leader>w :w<CR>
nmap <leader>q :q<CR>
nmap <leader>fl :NERDTreeToggle<CR>
nnoremap <CR> :noh<CR><CR>
" =================================================
" 6. 代码格式化配置
" =================================================
lua << LUA_EOF
local status_ok, conform = pcall(require, "conform")
if not status_ok then
return
end
conform.setup({
formatters_by_ft = {
json = { "prettier" },
yaml = { "prettier" },
html = { "prettier" },
css = { "prettier" },
javascript = { "prettier" },
typescript = { "prettier" },
markdown = { "prettier" },
},
format_on_save = {
timeout_ms = 1000,
lsp_format = "fallback",
},
})
vim.keymap.set({ "n", "v" }, "<leader>f", function()
conform.format({
timeout_ms = 1000,
lsp_format = "fallback",
})
end, { desc = "Format file or range" })
LUA_EOF
EOF
第四步:初始化插件
在终端输入以下命令打开 Neovim:
nvim
首次进入后执行:
:PlugInstall
等待左侧窗口提示安装完成,所有插件显示 OK 后,执行:
:qa!
然后重新打开 Neovim,让插件配置完整加载。
第五步:验证格式化功能
创建一个 JSON 文件测试:
nvim test.json
写入一段未格式化的内容:
{"name":"ubuntu","version":"24.04","editor":"neovim"}
在普通模式下输入:
;f
如果配置正常,JSON 会被 Prettier 自动格式化。也可以直接保存:
;w
保存时 conform.nvim 会自动触发格式化。
检查格式化工具状态:
:ConformInfo
这个命令会弹出状态面板,显示当前文件匹配到的格式化工具,例如 prettier,以及该工具在 Ubuntu 系统中是否可用。
常用快捷键
;w:保存当前文件;q:退出当前窗口;fl:打开或关闭文件树;f:格式化当前文件或选中范围Enter:清除搜索高亮
排错建议
如果 :PlugInstall 下载失败,通常是网络无法访问 GitHub。确认网络后重新执行 :PlugInstall。
如果 :ConformInfo 显示 prettier 不可用,先检查命令是否存在:
which prettier
prettier -v
如果 nvim 仍然调用旧版本,检查路径优先级:
which -a nvim
hash -r
源码安装默认会把 Neovim 放到 /usr/local/bin/nvim,通常应优先于系统仓库中的 /usr/bin/nvim。
