摘要:
我在.vimrc文件中包含以下行时收到以下错误
错误:
E474: Invalid argument: listchars=tab:»·,trail:·
Run Code Online (Sandbox Code Playgroud)
.vimrc中:
set list listchars=tab:»·,trail:·
Run Code Online (Sandbox Code Playgroud)
我研究了这个,它似乎与正确设置的UTF-8编码有关.
系统设置:
lsb_release:
Distributor ID: Ubuntu
Description: Ubuntu 12.04 LTS
Release: 12.04
Codename: precise
Run Code Online (Sandbox Code Playgroud)
地点:
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
Run Code Online (Sandbox Code Playgroud)
Jus*_*eck 91
解:
将以下行放在.vimrc的顶部错误提及:
.vimrc中:
scriptencoding utf-8
set encoding=utf-8
Run Code Online (Sandbox Code Playgroud)
Mat*_*ski 17
其他解决方案都不适合我.
我listchars看起来像这样:
listchars=eol:~,tab:>.,trail:~,extends:>,precedes:<,space:_
Run Code Online (Sandbox Code Playgroud)
问题是我的Vim对于space:参数来说太旧了listchars.我们可以在这篇文章中看到(我修改了引用以使其更具可读性):
space:被Bram于2015-04-21 添加listchars进来v7.4.710.Vim的Debian安装版本不提供space:.
删除尾随,space:_解决了问题.
好吧,正如816-8055建议您可以if has()在您的vimrc中使用:
if has("patch-7.4.710")
listchars=eol:~,tab:>.,trail:~,extends:>,precedes:<,space:_
else
listchars=eol:~,tab:>.,trail:~,extends:>,precedes:<
endif
Run Code Online (Sandbox Code Playgroud)
不是您特定问题的真正解决方案,但另一种(非 utf8 安全)方法可能只是使用 ASCII 字符,如下所示:
set listchars=tab:>-,trail:.,precedes:<,extends:>
Run Code Online (Sandbox Code Playgroud)
如果您有可用的 UTF-8,Justins 解决方案当然是更好的解决方案。
只是放置set encoding=utf8在我的 _vimrc 中的任何位置,但在set lcs=tab:>-,trail:·,nbsp:·,extends:>,precedes:<解决它之前
| 归档时间: |
|
| 查看次数: |
13735 次 |
| 最近记录: |