51

概要:

.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
4

5 に答える 5

101

解決:

エラーが言及している .vimrc の先頭に次の行を配置します。

.vimrc:

scriptencoding utf-8
set encoding=utf-8
于 2013-08-19T19:25:30.437 に答える
22

他の解決策はどれもうまくいきませんでした。

listcharsはこのように見えます:

listchars=eol:~,tab:>.,trail:~,extends:>,precedes:<,space:_

space:問題は、私の Vim が のパラメータに対して古すぎることでしたlistcharsこの投稿で読むことができるように (より読みやすくするために引用を変更しました):

space:2015-04-21 に Bram によって追加されましlistcharsた。v7.4.710Vim の標準の Debian インストールでは、space:.

末尾を削除すると,space:_、問題が解決します。


ちょっと待って!vimrcを移植可能にしたい

さて、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
于 2016-04-02T14:01:50.153 に答える
6

特定の問題に対する実際の解決策ではありませんが、別の (utf8 セーフではない) 方法は、次のように ASCII 文字を使用することです。

set listchars=tab:>-,trail:.,precedes:<,extends:>

UTF-8 を使用できる場合は、もちろん Justins ソリューションの方が適しています。

于 2014-05-02T12:42:19.113 に答える
0

タブ文字は、XY2 文字の形式にする必要があります。ここで回答しました。

于 2021-01-13T07:31:06.917 に答える