Vim は、coloscheme を使用して特定の動きの後に末尾の空白を強調表示します。

Vim は、coloscheme を使用して特定の動きの後に末尾の空白を強調表示します。

問題

Vim でカラースキームを設定した後 (colorscheme.vim ファイルを ~/.vim/colors に移動する規定の方法に従って)、Ctrl-D/Ctrl-U による Page Up/Down などの複数行の移動を実行すると、Vim は末尾の空白の一部またはすべてを強調表示します。次の画像で、私が見ているものを確認できます。

Vim での不適切なハイライト]

大量の行を移動するための「100j/k」などの他の動きでも同様の現象が見られました。エラーが発生した後、さらに動きを増やすと問題が悪化するようです。小さな動きでは、画面が動き始めるまで何も起こらないようです。

試みた

異なるカラースキームをインストールして、それがスキーム固有のものかどうかを確認し、Vagrant ボックスで Vim を試して、それが自分のコンピューターのものかどうかを確認しました。

Google、Stack Overflow、Super User で検索しましたが、驚くべきことに、類似するものは見つかりませんでした。

環境

Surface Pro 上の Windows 10。Windows (WSL) で Ubuntu Bash を使用。Vim 8.0。molokai.vim と rigel.vim のカラースキームを試しました。これが私の vimrc です:

set ruler
set number
set textwidth=80

" Creates tabs:
set softtabstop=4
set shiftwidth=4
set expandtab " whether tabs are tabs or spaces
set autoindent

syntax enable
set wildmenu " visual autocomplete menu <tab>/<alt-tab> to cycle
set incsearch " search as characters are entered
set hlsearch " highlights search results
" turn off search highlight, since it persists, with: \<space>
nnoremap <leader><space> :nohlsearch<CR>
colorscheme rigel

答え1

少し遅いかもしれませんが、他の人の役に立つかもしれません。私は vimrc から次の行を削除することでこの問題を解決しました。

set listchars=nbsp:█,eol:¶,tab:>-,extends:»,precedes:«,trail:• 

答え2

私は他の投稿でこの回答を見ました。私も同じ問題を抱えていましたが、それは listchars オプションが原因ではありませんでした。これですべて解決しました: を追加しますautocmd VimEnter * set t_ut= to your vimrc file

答え3

これは、同じ問題を解決しようとしたときに最初に見たスレッドだったので、私にとってうまくいった方法でこの質問を更新するのは良い考えだと思いました。

ページをスクロールしていくと、vimのカラースキームがターミナル(キティ)のカラースキームに取って代わられるようでした。幸いなことに、偶然、kittyのGitHubの問題を見つけました

私の場合は、以下のコードを追加することで.vimrc問題が解決しました。

" vim hardcodes background color erase even if the terminfo file does
" not contain bce (not to mention that libvte based terminals
" incorrectly contain bce in their terminfo files). This causes
" incorrect background rendering when using a color theme with a
" background color.
let &t_ut=''

関連情報