Vim错误:E474:无效参数:listchars = tab:»·,trail:·
概要:
我在.vimrc文件中收到以下错误信息
错误:
E474: Invalid argument: listchars=tab:»·,trail:· .vimrc中:
 set list listchars=tab:»·,trail:· 
我已经研究过这个,它似乎与正确设置的UTF-8编码有关。
系统设置:
lsb_release:
 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 
	
解:
在.vimrc的顶部放置以下几行提到的错误:
.vimrc中:
 scriptencoding utf-8 set encoding=utf-8 
没有其他解决scheme为我工作。
 我的listchars看起来像这样: 
 listchars=eol:~,tab:>.,trail:~,extends:>,precedes:<,space:_ 
 问题是我的Vim对于listchars的space:参数太旧了。 正如我们可以阅读这篇文章 (我修改了报价,使其更具可读性): 
space:2015-04-21被Bram添加到listchars的v7.4.710。 Vim的股票Debian安装不提供space:。
 尾随,space:_的去除,space:_解决了问题。 
可是等等! 我想我的vimrc是可移植的
 那么,正如816-8055build议你可以在你的vimrc中使用if has() : 
 if has("patch-7.4.710") listchars=eol:~,tab:>.,trail:~,extends:>,precedes:<,space:_ else listchars=eol:~,tab:>.,trail:~,extends:>,precedes:< endif 
对于您的具体问题,不是真正的解决scheme,但另一种(非UTF8安全)的方式可能只是使用ASCII字符,如下所示:
 set listchars=tab:>-,trail:.,precedes:<,extends:> 
如果你有UTF-8,Justins的解决scheme当然是更好的。