有“常规”直引号:
“
并且您有一个成角度的“智能引号”:
''“”
Vim的拼写检查使用“直”引号,但不能使用天使引号,因此这被认为是“错误”:
这是... Monty Python的
即使不是。
屏幕截图,以防您的字体没有区别:
我该如何解决?我希望让它同时适用于两种变体。
有“常规”直引号:
“
并且您有一个成角度的“智能引号”:
''“”
Vim的拼写检查使用“直”引号,但不能使用天使引号,因此这被认为是“错误”:
这是... Monty Python的
即使不是。
屏幕截图,以防您的字体没有区别:
我该如何解决?我希望让它同时适用于两种变体。
Answers:
$ grep "'" /usr/share/dict/words | wc -l
26226
$ grep -i python /usr/share/dict/words
Python
Python's
python
python's
pythons
问题在于所有这些带有撇号的单词实际上都在字典文件中。因此,如果您可以修改vim拼写字典,请这样做:
$ grep "'" /usr/share/dict/words | sed "s/'/’/g" >> ~/.vim/spell/en.utf-8.add
这将
grep
在系统字典中查找所有包含撇号('
)的单词;sed
将直引号更改为智能引号(即s/'/’/g
,第一个引号是直引号,第二个引号是智能引号);和您需要将其重新编译为.spl
文件,可以从Vim中进行操作:
:mkspell! ~/.vim/spell/en.utf-8.add
如果要使用Vim用作起始位置的实际拼写文件(而不是系统词典),可以使用以下:spelldump
命令。输出将包括Vim当前使用的所有单词spelllang
,包括已经从.add
文件中添加的单词。将结果保存:spelldump
到文件中并删除前两行(标题信息),然后使用与上述相同的命令。您可能还希望通过管道将其uniq
删除,以删除重复的条目。(无需sort
;的输出:spelldump
已经排序。)
:mkspell!
条路线,则可能还需要过滤掉不相关区域的单词。
到目前为止,您只需为VIM下载并编译新的拼写文件即可。Unicode引号已添加到英语词典的当前版本中。
根据本文步骤:
创建目录~/.vim/spell
并更改到该目录。(该路径是VIM的一部分runtimepath
。)
对于英语,可以在此处下载字典。(或者:从LibreOffice存储库中 -您需要.dic
和.aff
文件。)
注意:为了获得更好的结果,我建议同时获取en_US和en_GB。可以在LibreOffice存储库中找到en_GB词典。
解压缩文件:
unzip -x hunspell-en_US-2017.01.22.zip
归档文件必须至少包含以下文件:en_US.aff
和en_US.dic
。
启动VIM(在~/.vim/spell
目录中),然后在VIM中执行以下命令::mkspell! en en_US
或者,如果您还下载了en_GB文件: :mkspell! en en_US en_GB
退出VIM,然后检查当前目录中的文件。应该en.utf-8.spl
创建了文件。
做完了!
现在,在启动VIM并激活英语的拼写检查之后,它应该首先选择新创建的.spl
文件,~/.vim/spell
该文件中已经包含对Unicode引号的支持。至少它对我有用。
's
用作图案?不仅仅是在寻找'
正确的答案吗?这将错过有一个词'
在不同的位置(如you'd
,you've
等)