Vim使用了错误的拼写文件?

时间:2010-09-29 17:55:26

标签: vim spell-checking

我一直在使用vim很长一段时间,但最近我建了一个新的服务器,当我打开vim时,我发现它没有使用我的拼写文件。

历史上,vim会加载~/.vim/spell/en.utf-8.add作为拼写文件,但是当我尝试在字典中添加单词时,它会将其添加到en.latin1.add

ls ~/.vim/spell
en.latin1.add  en.latin1.add.spl  en.utf-8.add

作为一种可能的解决方法,我将set spelllang=en.utf-8放入我的vimrc中。但是,不是尝试使用en.utf-8.add,而是使用en.utf-8.latin1.add。如何将latin1变成utf-8?

另外作为旁注,这是我的环境变量:

declare -x LANG="en_US.UTF-8"
declare -x LC_ADDRESS="en_US.UTF-8"
declare -x LC_ALL=""
declare -x LC_COLLATE="C"
declare -x LC_CTYPE="en_US.UTF-8"
declare -x LC_IDENTIFICATION="en_US.UTF-8"
declare -x LC_MEASUREMENT="en_US.UTF-8"
declare -x LC_MESSAGES="en_US.UTF-8"
declare -x LC_MONETARY="en_US.UTF-8"
declare -x LC_NAME="en_US.UTF-8"
declare -x LC_NUMERIC="en_US.UTF-8"
declare -x LC_PAPER="en_US.UTF-8"
declare -x LC_TELEPHONE="en_US.UTF-8"
declare -x LC_TIME="en_US.UTF-8"

1 个答案:

答案 0 :(得分:2)

从文档(:help spell-load):

Vim searches for spell files in the "spell" subdirectory of the directories in
'runtimepath'.  The name is: LL.EEE.spl, where:
    LL  the language name
    EEE the value of 'encoding'
...
...
...
Exceptions:
- Vim uses "latin1" when 'encoding' is "iso-8859-15".  The euro sign doesn't
  matter for spelling.

尽管您的环境变量都列出了UTF-8,但看起来Vim的encoding设置为“latin1”或“iso-8859-15”。也许您可以通过运行:set encoding=utf-8手动设置Vim的编码。