摘要:
我收到以下错误,因为我的.vimrc文件中有下面一行
错误:
E474: Invalid argument: listchars=tab:»·,trail:·
.vimrc:
set list listchars=tab:»·,trail:·
我已经研究了这一点,它似乎与UTF-8编码被正确设置有关。
系统设置:
lsb_释放:
Distributor ID: Ubuntu
Description: Ubuntu 12.04 LTS
Release: 12.04
Codename: precise
语言环境:
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US"
LC_NUMERIC="en_US"
LC_TIME="en_US"
LC_COLLATE="en_US"
LC_MONETARY="en_US"
LC_MESSAGES="en_US"
LC_PAPER="en_US"
LC_NAME="en_US"
LC_ADDRESS="en_US"
LC_TELEPHONE="en_US"
LC_MEASUREMENT="en_US"
LC_IDENTIFICATION="en_US"
LC_ALL=en_US
6条答案
按热度按时间tkclm6bt1#
解决方案:
将以下行放在错误提到的.vimrc的顶部:
.vimrc:
laik7k3q2#
其他的解决方案都不适合我。
我的
listchars
看起来像这样:问题是我的Vim对于
listchars
中的space:
参数来说太旧了。正如我们在this post中所读到的那样(我修改了引用以使其更可读):space:
由Bram于2015年4月21日添加到v7.4.710
中的listchars
中。Vim的Debian安装版本不提供space:
。删除尾随的
,space:_
就解决了这个问题。但是等等!我希望我的vimrc是便携式的
正如816-8055所建议的,您可以在vimrc中使用
if has()
:bjp0bcyl3#
只是把
set encoding=utf8
放在my _vimrc中的任何地方,但在set lcs=tab:>-,trail:·,nbsp:·,extends:>,precedes:<
解决之前wkftcu5l4#
这不是解决您的特定问题的真实的方法,但另一种(非utf8安全)方法可能是使用ASCII字符,如下所示:
如果您有UTF-8可用,Justins解决方案当然是更好的一个。
g2ieeal75#
制表符的格式应为
XY
,即两个字符。已回答here。14ifxucb6#
这不是这里的问题,但可能会帮助其他人解决相同的错误:如果值中包含空格,则必须对其进行转义,这样Vim就不会将列表解析为单独的参数。