端末vimの末尾の空白の見栄えの良い甘い表示が欲しいのですが。これにより、ファイルを閉じる前にそれらを削除できます。
私はこの質問が非常に人気があることを承知しており、SOですでに数十の回答を見つけました。残念ながら、満足できるものがまだ見つかりませんでした...
そのため、収集した情報と見つけた解決策を要約してみます。
解決策1:末尾のスペースを手動で強調表示する
highlight ExtraWhitespace ctermbg=red guibg=red
match ExtraWhitespace /\s\+$/
autocmd BufWinEnter * match ExtraWhitespace /\s\+$/
autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
autocmd InsertLeave * match ExtraWhitespace /\s\+$/
autocmd BufWinLeave * call clearmatches()
長所:
- 使いやすい
- 速い
- と互換性があります
cursorline
短所:
- 選択された色は、色が手動で設定されているため、他の配色と互換性がありません
red
- 大きな赤い背景のブロックはあまり美的ではありません
解決策2:リスト機能を使用する
set list
set listchars+=trail:◦
長所:
- 使いやすい
- 速い
短所:
:set cursorline
有効になっている場合は問題- の専用色
list/trail
は設定できません。他のリスト文字と同じである必要があります
解決策3:隠蔽機能を使用する
syn match WhiteSpace "\s\+$" containedin=ALL conceal cchar=◦
set conceallevel=2
set concealcursor=nv
highlight Conceal ctermfg=red
長所:
- 最初のソリューションよりもきれい
短所:
- 背景はカーソルラインの背景と同じではありません
- 他の隠蔽ルールに干渉する可能性があります
- 選択した色は、常に配色と互換性があるわけではありません
- 古いバージョンのVimと互換性がありません
私の質問
列挙されたソリューションのどれがパフォーマンスと互換性の点で最も適切であり、どのようにしてすべての長所と短所のすべてを取得できますか?
つまり、次のような解決策を見つけたいと思います。
- ハイライトの後続色は選択したカラースキームと一致します
- この色ははっきりと見えますが、目に対してあまり攻撃的ではありません
cursorline
(背景と前景)と互換性があります `- 隠蔽を使用する可能性のある他のプラグインと互換性があります
- 末尾の文字は任意のUnicode文字に設定できます
:hi link ExtraWhitespace CursorLine
。を参照してください:help hi-link
。