では または にvim
設定したいと思います。しかし、私はタブに興味がありません。nbsp
!
·
私のものには.vimrc
次のものがあります。
set listchars=nbsp:·
set list
しかし、vimセッションを開くと、タブはまだ^I
。
走る
:set listchars=eol:$,tab:>-,trail:~,extends:>,precedes:<
...エラーなしで実行され、変更を確認できます。
走れば
:set listchars=nbsp:!,tab:>
または
:set listchars=nbsp:!,tab:
わかりました。
E474: Argument invalide: listchars=nbsp:!,tab:>
ここで何が起こっているのでしょうか?listchars
Vimでタブを強調表示せずに強調表示するようにどのように設定できますかnbsp
?
走るVIM - Vi IMproved 7.4
答え1
問題は^I
Vim方式です。いいえタブ文字が表示されるのは、必要なタブがaのようにファイルに保存され、VimがCtrl文字記号を表す方法なのでですCtrl+I
。^I
タブが使用されている場合にのみ空白として表示されるようにするには、以下のよう:set list
に設定する必要があります'listchars'
。 (項目に2〜3文字が必要なので、スペースが2つ必要であることに注意してくださいtab:
。)もちろん、トリックがあります。スペースは通常:set
コマンドの区切り文字であるため、バックスラッシュを使用してエスケープする必要があります。
これは働きます:
set listchars=tab:\ \ ,nbsp:·
tab:\ \
オプションの末尾にを追加することもできますが、末尾のスペースは少しぎこちないように見えることがあります。
別のオプションは、:let
オプション値にアクセスするための構文を使用して設定することです。&
let &listchars = 'tab: ,nbsp:·'
2番目のアプローチの1つの利点は、nbspの中間点など、文字列の特殊文字に文字列エスケープシーケンスを使用できることです。
let &listchars = "tab: ,nbsp:\xb7"
(単純なデフォルトのASCII文字のみを使用してvimrcまたはそのフラグメントを保存する場合は、たとえばコピーと貼り付けを使用してこれらのフラグメントを別のシステムに転送するときにフォーマットとスペースを保存することが心配される場合、これは利点です。最近では大規模で、ほとんどの場合リモートで接続することは大きな問題ではありませんが、それでも言及する必要があると思いました。)