“设置listchars = tab:>-,, eol:$,space:·”“ space:·”部分不起作用?

时间:2019-02-20 10:34:43

标签: vim

奇怪的是,之前没事,但是在我使用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:·

Screenshot vimrc

2 个答案:

答案 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
相关问题