【问题标题】:Vim spell check does not work with text fileVim 拼写检查不适用于文本文件
【发布时间】:2020-05-26 22:12:26
【问题描述】:

我尝试通过将其添加到我的 vimrc 来对文本文件进行拼写检查

augroup set_spell
    autocmd!
    autocmd FileType text :setlocal spell spelllang=en_us
augroup END
nnoremap <F10> :setlocal spell! spelllang=en_us<CR>

它没有工作
我试过:set spell,但什么也没发生
由于某些原因,当我运行:source $MYVIMRC(仍在那个窗口中)时,它起作用了。虽然我可以将采购命令添加到我的 vimrc,但我不喜欢它的故障感觉。
我该怎么办?

编辑:我找到了解决方案

这是这个 vim Rainbow 插件的问题 https://github.com/frazrepo/vim-rainbow
所以我卸载了那个并安装了这个 https://github.com/luochen1990/rainbow

【问题讨论】:

  • 不工作是什么意思?

标签: vim spell-checking


【解决方案1】:

打开文件并立即执行:set ft?:set spell?。确保它们分别返回 textspell。如果未返回 text,则未检测到文件类型。如果返回 text 但未返回 spell,则自动命令不起作用。

此外,您应该将自动命令包装在 augroup 中。见:h autocmd-groups。它可能看起来像这样:

augroup set_spell
    autocmd!
    autocmd FileType text setlocal spell
augroup END

因为这是一个 FileType 自动命令,您最好完全跳过 augroup 和自动命令,只将行 setlocal spell 放入 ft​​plugin 文件中。它通常会进入~/vim/ftplugin/text.vim

【讨论】:

  • 感谢您的回答。我运行这两个命令,它们返回“文本”和“拼写”。问题是拼写检查不起作用。我想我在这里没有清楚地描述我的情况。我已经更新了它。如果您有任何想法,请告诉我
  • 您在拼写检查不起作用时运行了这两个程序,对吧?你没有先获取你的 vimrc 吗?尝试做:verbose set spell? 看看它说了什么;它告诉你最后一件事打开了咒语。你的 vimrc 里还有别的东西吗?
  • 这里:“最后一组来自 ~/.config/nvim/init.vim”。我将我的 vimrc 拼写检查部分添加到我的问题中
  • 您可能需要检查 vim 和 neovim 之间关于 spell 选项的差异。除此之外,我没有更多信息可以告诉你。
  • @user12711 如果您查看 vim 对:h ft-tex-plugin 的帮助,它会解释它如何将ft 设置为tex、plaintex 或latex。如果你总是使用plaintex,你可以把let g:tex_flavor = "plain" 放在你的.vimrc 中。如果您也查看:h tex,还有更多信息和选项。
【解决方案2】:

作为更通用的解决方案:有时主题插件会覆盖 SpellBad 高亮组(这是 gui 与终端问题之一)。即使拼写检查有效,它也不会突出显示。在不删除主题的情况下,您可以根据需要向 SpellBad 高亮组添加更多样式:

只需将其添加到您的 .vimrc 中:

"underline spell errors in terminals
hi SpellBad cterm=underline

或其他任何风格:

hi SpellBad ctermfg=Cyan cterm=bold 

请注意,这些不会覆盖所有现有样式。要真正覆盖它,您可能需要先使用hi clear SpellBad

有关所有详细信息,请参阅:h highlight。其他法术组见:h hl-SpellBad

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-29
    • 2013-10-05
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多