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当然是更好的。