Tôi không có hiểu biết đầy đủ về cách phối màu của tôi tương tác với term
cài đặt trong vim và điều này cản trở khả năng của tôi để làm cho nó hiển thị chính xác trong neovim.
Trong tệp .vimrc của tôi, hành vi đúng của bảng màu trong câu hỏi yêu cầu cài đặt
set term=xterm
set t_Co=256
Việc bỏ qua một trong các cài đặt đó dẫn đến hiển thị bảng màu không chính xác:
đúng sai khác nhau không đúng
Đề án trông như thế này:
set background=dark
hi clear
if exists("syntax_on")
syntax reset
endif
let g:colors_name="impact3"
if exists("g:impact_transbg")
hi Normal ctermfg=255 ctermbg=none
hi NonText ctermfg=DarkGray ctermbg=none
hi Statement ctermfg=Blue ctermbg=none
hi Comment ctermfg=DarkGray ctermbg=none cterm=bold term=bold
hi Constant ctermfg=173 ctermbg=none
hi Identifier ctermfg=Cyan ctermbg=none
hi Type ctermfg=DarkGreen ctermbg=none
hi Folded ctermfg=0 ctermbg=235 cterm=underline term=none
hi Special ctermfg=Blue ctermbg=none
hi PreProc ctermfg=LightGray ctermbg=none cterm=bold term=bold
hi Scrollbar ctermfg=Blue ctermbg=none
hi Cursor ctermfg=white ctermbg=none
hi ErrorMsg ctermfg=Red ctermbg=none cterm=bold term=bold
hi WarningMsg ctermfg=Yellow ctermbg=none
hi VertSplit ctermfg=0 ctermbg=0
hi Directory ctermfg=Cyan ctermbg=DarkBlue
hi Visual ctermfg=White ctermbg=Gray cterm=underline term=none
hi Title ctermfg=255 ctermbg=Blue
hi String ctermfg=Blue ctermbg=none
hi StatusLine term=bold cterm=bold,underline ctermfg=White ctermbg=Black
hi StatusLineNC term=bold cterm=bold,underline ctermfg=Gray ctermbg=Black
hi LineNr term=bold cterm=bold ctermfg=2 ctermbg=None
hi Search ctermfg=Black ctermbg=2
hi TabLine ctermfg=0 ctermbg=DarkGray
hi TabLineFill ctermfg=DarkGray ctermbg=DarkGray
else
hi Normal ctermfg=White ctermbg=Black
hi NonText ctermfg=DarkGray ctermbg=Black
hi Statement ctermfg=Blue ctermbg=Black
hi Comment ctermfg=DarkGray ctermbg=Black cterm=bold term=bold
hi Constant ctermfg=DarkCyan ctermbg=Black
hi Identifier ctermfg=Cyan ctermbg=Black
hi Type ctermfg=DarkGreen ctermbg=Black
hi Folded ctermfg=DarkGreen ctermbg=Black cterm=underline term=none
hi Special ctermfg=Blue ctermbg=Black
hi PreProc ctermfg=LightGray ctermbg=Black cterm=bold term=bold
hi Scrollbar ctermfg=Blue ctermbg=Black
hi Cursor ctermfg=white ctermbg=Black
hi ErrorMsg ctermfg=Red ctermbg=Black cterm=bold term=bold
hi WarningMsg ctermfg=Yellow ctermbg=Black
hi VertSplit ctermfg=White ctermbg=Black
hi Directory ctermfg=Cyan ctermbg=DarkBlue
hi Visual ctermfg=White ctermbg=DarkGray cterm=underline term=none
hi Title ctermfg=White ctermbg=DarkBlue
hi StatusLine term=bold cterm=bold,underline ctermfg=White ctermbg=Black
hi StatusLineNC term=bold cterm=bold,underline ctermfg=Gray ctermbg=Black
hi LineNr term=bold cterm=bold ctermfg=White ctermbg=Black
endif
Trong neovim, term
không thể được thiết lập. Tôi đã thử gọi neovim bằng cách đặt $ TERM theo cách thủ công như vậy:
TERM=xterm nvim
Điều này tạo ra sự hiển thị màu chính xác trong vim thông thường (nghĩa là tương đương với cài đặt thuật ngữ trong .vimrc), nhưng trong neovim thì nó trông như thế này:
Tại sao sự kết hợp set term=xterm
và set t_Co=256
cần thiết để tạo ra màn hình chính xác của bảng màu này trong vim và tại sao sự kết hợp cài đặt tương đương lại tạo ra kết quả khác nhau trong neovim?
Biên tập:
Mặc định là $TERM=xterm256-color
, vì một số lý do phải được ghi đè xterm
trong vim thông thường để hiển thị màu chính xác. Với biến môi trường ở mặc định 256, neovim trông như thế này:
Điều này giống hệt với vim thông thường với xterm256-color
, nhưng không như dự định. Mục tiêu của tôi là hiểu lý do tại sao hack xterm là cần thiết / hoạt động trong vim và tại sao nó không giống nhau trong neovim.
Lưu ý rằng nhiều màu xuất hiện chính xác với cài đặt biến env ở trên, ngoại lệ đáng chú ý là số dòng và nền. Tôi nghi ngờ rằng cách các màu được chỉ định trong bảng màu cụ thể này có thể được tham gia.
set term=xterm
.