我尝试在某些 XML 文档中使用 Vim 的内置拼写检查。只需加载 XML 语法即可实现这一点,如以下简单示例所示(它重现了我在大型 XML 文档中也看到的情况):
请注意,对于具有完全相同内容的两个缓冲区,当Filetype
为 时text
,拼写检查有效;当为 时xml
,则无效。spell
在两个缓冲区中都设置了 。
但是,从这个大型 XML 文档的前三行来看,您可以看到拼写检查肯定已打开:
但它只是检查属性。
麻烦的是,它实际上找到的东西都没有拼写错误,而且它没有找到文档中大量的拼写错误。我希望它至少能找到文档正文中的拼写错误,并且能够关闭对属性的检查将是一个不错的选择。
@NoSpell
我已经在文件中搜索过xml.vim
,但没有返回任何结果。
答案1
这个 StackOverflow 问题包含部分答案,它打开了文档主体中的拼写检查。我将其放在初始化 XML 文件的自动命令部分中:
set spell
syntax spell toplevel
let &spellfile=$HOME . "/.xml." . &encoding . ".add"
第一个命令确保拼写正确。第二个命令是部分修复;第三个命令设置一个文件,例如/home/usr/.xml.utf-8.add
用于保存添加到 UTF-8 XML 文件的拼写词典中的单词的文件。
因为我已经将此文件特定于 XML 文件,如果我不担心这xsl
会在文档的其他地方出现实际的拼写错误,我可以将其添加到字典中等等;因此它可能是一个完整的答案。
但是,我找到了一种更好的方法来关闭属性的拼写检查:将@Spell
与属性相关的更改xml.vim
为@NoSpell
(这些行位于文件顶部附近):
syn region xmlString contained start=+"+ end=+"+ contains=xmlEntity,@NoSpell display
syn region xmlString contained start=+'+ end=+'+ contains=xmlEntity,@NoSpell display
这两组命令结合在一起提供了一个完整的解决方案。