'“
,还有成角度的“智能引号”:
''“”
Vim spellcheck使用“直”引号而不是天使引号,因此这被认为是“错误”:
... Monty Python的
,即使不是。 />截图,以防您的字体没有显示出差异:
如何解决此问题?我希望使它同时适用于两种变体(而且是)。
#1 楼
$ 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
的输出已经排序。)#2 楼
到目前为止,您只需为VIM下载并编译新的拼写文件即可。 Unicode引号已添加到英语词典的当前版本中。基于本文的步骤:
创建目录
~/.vim/spell
并进行更改。 (该路径是VIM的runtimepath
的一部分。)对于英语,可以在此处下载该词典。 (或者:从LibreOffice存储库中-您同时需要
.dic
和.aff
文件。)N.B.为了获得更好的结果,我建议同时获取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引号的支持。至少对我来说是有效的。
评论
为什么将用作模式?不仅在搜索'正确,正确吗?这会漏掉在其他位置带有'的单词(例如,您想要的,等等)。
–马丁·图尔诺伊(Martin Tournoij)
2015年2月5日在17:44
是的,你是对的。我已经编辑了答案。
– wchargin
2015年2月5日,19:52
谢谢:-)我不确定您是否这样做是有原因的,所以犹豫自己编辑它...
–马丁·图尔诺伊(Martin Tournoij)
2015年2月5日在20:01
如果您选择:mkspell!路线,您可能还希望过滤掉不相关区域的单词。
–亚伦·梅西(Aaron Massey)
15年4月19日在22:57