首页 > 解决方案 > Vim 在 wsl 上显示随机尾随颜色

问题描述

每次我从 Github 为 vim(WSL) 使用颜色方案时,它通常会在前 10 行中显示一些尾随颜色,有时会显示链接中的整个代码。起初,我以为它只是突出显示尾随空格,但即使在删除它们之后,它也会在更改光标位置时恢复到原来的形式。vim 很新,所以请帮助我。

可憎的

我的.vimrc:

set nocompatible
set clipboard=unnamed
set clipboard=unnamedplus
syntax on
set tabstop=4
set shiftwidth=4
set autoindent
set smartindent
set shortmess+=I
set number
set termguicolors
set relativenumber
set laststatus=2
set backspace=indent,eol,start
set hidden
set ignorecase
set smartcase
set incsearch
nmap Q <Nop> " 'Q' in normal mode enters Ex mode. You almost never want this.
set noerrorbells visualbell t_vb=
set mouse+=a
colorscheme pablo
nnoremap <Left>  :echoe "Use h"<CR>
nnoremap <Right> :echoe "Use l"<CR>
nnoremap <Up>    :echoe "Use k"<CR>
nnoremap <Down>  :echoe "Use j"<CR>
inoremap <Left>  <ESC>:echoe "Use h"<CR>
inoremap <Right> <ESC>:echoe "Use l"<CR>
inoremap <Up>    <ESC>:echoe "Use k"<CR>
inoremap <Down>  <ESC>:echoe "Use j"<CR>

更新:刚刚发现每次我使用 ^D 或 ^U 向上 - 向下翻页时都会发生这种情况。现在它甚至发生在内置颜色中。但是,如果我使用 j 或 k,则不会发生。我对 .vimrc 所做的唯一更改是添加了 set termguicolors。发现我所有的问题都是由于 termguicolors 而发生的。但这包含在每个 github 中,因此它们都显示了这种随机颜色。有什么办法可以解决这个问题吗?

标签: vimwindows-subsystem-for-linux

解决方案


因此,显然问题在于 Windows,或者准确地说是 WSL。WSL 似乎不支持导致set termguicolors屏幕上出现奇怪颜色的原因。并且因为这对于几种配色方案是必不可少的(否则它们看起来会非常不同)。因此,除非 WSL2 提供此功能,否则我认为 Windows 不可能拥有任何花哨的配色方案。最好的选择可能是使用虚拟机并运行 linux 或双引导您的设备。


推荐阅读