奇怪的是,之前没事,但是在我使用Windows记事本在vimrc中添加了一行之后,就会发生错误!这让我发疯了!
这是我的vimrc的“:set listchars”部分:
lineAndDots.selectAll('line-circle')
.data(data)
.enter().append('circle')
.attr('class', 'data-circle')
.attr('r', 2)
.attr('cx', () => this.x(147))
.attr('cy', (d) => this.y(d.elevation));
遇到错误:
set listchars=tab:>-,eol:$,space:·
答案 0 :(得分:0)
看来,Vim正在使用某种非UTF-8编码加载文件vimrc
。我不知道使用哪种编码。
要强制Vim将vimrc
解释为UTF-8,需要以下行:
scriptencoding utf-8
此行之后的所有行都将解释为UTF-8。 Vim可以决定在该行之前的所有行。
如果您在encoding
中设置了vimrc
,则行scriptencoding
必须在该行之后。
因此,您需要:
set encoding=utf-8
scriptencoding utf-8
有关详细信息,请参见:help :scriptencoding
。
答案 1 :(得分:0)
在使用非ASCII字符时,需要使用:help :scriptencoding
来指定~/.vimrc
的编码。
您还将覆盖默认的'encoding'
,这会影响Vim中任何文本的表示以及已经读入的所有非ASCII文本。因此,您首先需要:set encoding
,并且仅然后(使用正确的内部表示形式设置),您可以指定脚本的编码:
set encoding=utf-8
scriptencoding utf-8
set listchars=...
或者,您也可以通过在(双引号)字符串(:help expr-quote
)中编码非ASCII字符,并使用:let &option
而不是{{1}来解决vimrc编码问题。 }:
:set