奇怪的是,在我用Windows记事本在vimrc中添加一行代码后,错误就出现了!这让我发疯!
下面是我的vimrc的":set listchars“部分:
set listchars=tab:>-,eol:$,space:·遇到错误:
E474: invalid argument: listchars=tab:>-,eol:$,space:<a1><a4>


发布于 2019-02-20 20:28:05
由于使用的是非ASCII字符,因此需要使用:help :scriptencoding来指定~/.vimrc的编码。
您还覆盖了默认的'encoding',它会影响Vim中任何文本的表示,也会影响已经读入的任何非ASCII码文本的表示。因此,您首先需要:set encoding,然后(使用正确的内部表示集)才能指定脚本的编码:
set encoding=utf-8
scriptencoding utf-8
set listchars=...或者,您也可以通过在(双引号)字符串(:help expr-quote)中编码非ASCII字符并使用:let &option而不是:set来解决vimrc编码问题
let &listchars = "tab:>-,eol:$,space:\u00B7"发布于 2019-02-20 20:27:48
看起来,Vim加载的文件vimrc使用了一些非UTF-8的编码。我不知道使用的是哪种编码。
要强制Vim将vimrc解释为UTF-8,需要以下行:
scriptencoding utf-8然后,这些行后面的所有行都被解释为UTF-8。无论Vim确定什么,该行之前的所有行都会被解释。
如果在vimrc中设置了encoding,则scriptencoding行必须在该行之后。
因此,在您的情况下,您需要:
set encoding=utf-8
scriptencoding utf-8详情请参见:help :scriptencoding。
https://stackoverflow.com/questions/54784230
复制相似问题