配置设置
约 623 字大约 2 分钟
Neovim配置VimscriptLua
2026-03-20
Neovim 的配置本质上就是在启动时提前执行一组设置、映射和自动命令。刚开始不需要追求复杂,先把最常用的几项写清楚就够了。
如何编辑配置文件
最常用的方式是直接打开当前配置文件:
:edit $MYVIMRC如果还没有配置文件,可以参考 2.关于手册 里的创建方式。
Neovim 既支持 init.vim,也支持 init.lua。如果你已经习惯 Lua,那么长期维护时通常会更偏向 init.lua。
一组最小示例
下面是一组偏入门的 init.vim 配置示例:
set noignorecase
set nohlsearch
set noincsearch
set wrapscan
set number
filetype plugin indent on
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab如何让配置生效
最直接的方式当然是重启 Neovim,但平时更常用的是:
:source $MYVIMRC这样就能在当前会话里重新加载配置。
常见配置示例
备份
set backup历史记录
set history=50文件类型识别
filetype plugin indent on显示缩进和空白
set list
set listchars=tab:>-,trail:-键盘映射
map Q gq这个例子把 Q 映射为格式化相关命令。
更复杂一点的例子:
map <F5> bi{<Esc>ea}<Esc>它会把当前单词包上一对 {}。
如果你后面开始做更正式的配置,通常会优先区分:
noremap:避免递归映射。nnoremap、inoremap、vnoremap:按模式分别映射。
自动命令
自动命令适合处理“打开文件时做什么、切换文件类型时做什么”这类逻辑。
例如下面这段会尝试在重新打开文件时恢复到上次光标位置:
augroup RestoreCursor
autocmd!
autocmd BufRead * autocmd FileType <buffer> ++once
\ let s:line = line("'\"")
\ | if s:line >= 1 && s:line <= line("$") && &filetype !~# 'commit'
\ && index(['xxd', 'gitrebase'], &filetype) == -1
\ | execute "normal! g`\""
\ | endif
augroup END自定义命令
command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ | diffthis
\ | wincmd p | diffthis这个命令可以把当前内容和原文件做差异对比,之后用 :DiffOrig 调用。
使用建议
- 入门阶段先只配显示、缩进、搜索和少量映射,不要急着一次性堆很多插件。
- 先把“为什么要改这个选项”写清楚,再决定要不要长期留在配置里。
- 如果后续配置越来越多,建议拆成多个 Lua 模块而不是把所有内容写在一个文件里。