You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:Vim/Neovim中Markdown文件拼写检查失效,文本文件正常

解决Neovim Markdown文件拼写检查失效问题

问题原因

Neovim针对不同文件类型会加载对应语法配置,部分文件类型(如Markdown、Python)的默认配置中,要么通过局部spell设置限制了检查范围,要么通过spelloptions参数指定仅对特定区域(如注释)启用拼写检查,导致普通文本未被检查。

解决方案

1. 为Markdown文件自动开启拼写检查

在Neovim配置文件(如~/.config/nvim/init.vim或~/.config/nvim/init.lua)中添加自动命令,确保打开Markdown文件时强制启用拼写检查:

Vimscript 配置

autocmd FileType markdown setlocal spell spelllang=en

Lua 配置

vim.api.nvim_create_autocmd("FileType", {
  pattern = "markdown",
  callback = function()
    vim.opt_local.spell = true
    vim.opt_local.spelllang = "en"
  end,
})

2. 调整spelloptions扩大检查范围

如果默认仅对注释区域检查,可添加plainbuffer选项让拼写检查覆盖整个缓冲区:

Vimscript 配置

autocmd FileType markdown setlocal spell spelllang=en spelloptions+=plainbuffer

Lua 配置

vim.api.nvim_create_autocmd("FileType", {
  pattern = "markdown",
  callback = function()
    vim.opt_local.spell = true
    vim.opt_local.spelllang = "en"
    vim.opt_local.spelloptions:append("plainbuffer")
  end,
})

你可以在Markdown文件中执行:set spelloptions?查看当前配置,若返回包含noplainbuffer,则必须添加上述配置。

3. 验证语法组的拼写检查标记

普通Markdown文本应属于markdownText类语法组,这类组默认会被拼写检查。执行以下命令查看光标所在位置的语法组:

:echo synIDattr(synID(line('.'), col('.'), 1), 'name')

若返回非文本类组,可尝试更新Neovim内置Markdown语法插件,或安装第三方插件(如preservim/vim-markdown)修复语法识别问题。

4. Python文件的拼写检查配置(额外说明)

Python文件默认仅对注释和字符串启用拼写检查(避免干扰代码关键字、变量名),若需保持此逻辑,可添加以下配置确保生效:

Vimscript 配置

autocmd FileType python setlocal spell spelllang=en spelloptions+=comments,strings

Lua 配置

vim.api.nvim_create_autocmd("FileType", {
  pattern = "python",
  callback = function()
    vim.opt_local.spell = true
    vim.opt_local.spelllang = "en"
    vim.opt_local.spelloptions:append({"comments", "strings"})
  end,
})

验证步骤

  1. 打开/创建Markdown文件:$ nvim test.md
  2. 输入内容:Hello, the book is **oTn** the **tablw**.
  3. 配置会自动启用拼写检查,无需手动执行:set spell
  4. 错误单词oTn和tablw应被正确高亮

内容的提问来源于stack exchange,提问作者Gustavo Basso

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 07:25:17