не может правильно отображать цветовые схемы в neovim

Я уже какое-то время возился с цветовыми схемами neovim и не могу заставить их выглядеть так же, как на превью.

Я использую terminal.app на osx и подумал, что это проблема с 256-цветным колпачком, поэтому я перешел на iterm2 с поддержкой истинного цвета - хотя он улучшил некоторые вещи, цветовые схемы далеки от того, что я вижу!

enter image description here

так выглядит соляризованная тема в iterm2 + neovim

enter image description here

это совсем не похоже на https://github.com/altercation/vim-colors-solarized скриншоты!

Я использовал google foo, но безуспешно, конечно, есть способ получить правильные цвета. Есть идеи?

  "*****************************************************************************
"" Plug install packages
"*****************************************************************************

" Specify a directory for plugins
call plug#begin('~/.config/nvim/plugged')

Plug 'tomasr/molokai'
Plug 'dracula/vim'
Plug 'justb3a/vim-smarties'
Plug 'tyrannicaltoucan/vim-quantum' " let g:quantum_black = 1
Plug 'mhartington/oceanic-next'
Plug 'altercation/vim-colors-solarized'
" Plug 'vim-scripts/CSApprox'
Plug 'ctrlpvim/ctrlp.vim'
Plug 'scrooloose/nerdtree'
Plug 'airblade/vim-gitgutter'
Plug 'bronson/vim-trailing-whitespace'
Plug 'editorconfig/editorconfig-vim'
Plug 'Raimondi/delimitMate'
Plug 'scrooloose/syntastic'
Plug 'Yggdroot/indentLine'
Plug 'tpope/vim-commentary'
Plug 'sheerun/vim-polyglot'
Plug 'valloric/matchtagalways'

" Initialize plugin system
call plug#end()

"*****************************************************************************
"" Visual Settings
"*****************************************************************************
set number
set ruler
set nowrap

let $NVIM_TUI_ENABLE_TRUE_COLOR=1 
set termguicolors " unfortunately doesn't work in terminal.app - needs true color support, like iterm2 but it lags and diff in visuals is not that much so sticking to terminal.app for now

set background=dark
colorscheme solarized

"*****************************************************************************
"" NERDTree config
"*****************************************************************************

" open NERDTree automatically when vim starts up on opening a directory
autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | endif

" keep focus on NERDTree when opening a directory
autocmd VimEnter * wincmd p

" close vim if the only window left open is a NERDTree
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif

"*****************************************************************************
"" Optimizations
"*****************************************************************************

set lazyredraw

let g:python_host_skip_check = 1
let g:python3_host_skip_check = 1

"*****************************************************************************
"" syntastic
"*****************************************************************************

let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0

"*****************************************************************************
"" yank and cut to osx clipboard
"*****************************************************************************

noremap YY "+y
noremap XX "+x

"*****************************************************************************
"" indent
"*****************************************************************************

" tabs
set listchars=tab:˗\ ,eol:¬
set list

" spaces
let g:indentLine_enabled = 1
let g:indentLine_concealcursor = 0
let g:indentLine_char = '·'
let g:indentLine_faster = 1

set tabstop=2

"*****************************************************************************
"" matchtagalways
"*****************************************************************************

let g:mta_filetypes = { 'html' : 1, 'xhtml' : 1, 'xml' : 1, 'jinja' : 1, 'php': 1 }

"*****************************************************************************
"" ctrlp
"*****************************************************************************

set wildignore+=*.o,*.obj,.git,*.rbc,*.pyc,__pycache__
let g:ctrlp_custom_ignore = '\v[\/](node_modules|target|dist)|(\.(swp|tox|ico|git|hg|svn))$'

0
11.01.2017, 21:44
1 ответ

Есть два ответа да и нет:

Нет

Если удалить оболочки, то система перестанет работать. Оболочка используется много, для некоторых очень важных вещей. Например, но никоим образом не ограничиваясь :, программа входа в систему будет запущена сценарием оболочки (, все остальное также запускается сценарием оболочки, обычно для этого используется оболочкаsh). Поэтому вы не можете войти в систему, если нет оболочки. Даже если вы входите в среду оболочки, отличную от -.

Да

Как вы определили, существуют разные компоненты:

  • Ядро (, например. Linux, ядро ​​BSD, cygwin ),
  • виртуальный терминал/эмулятор терминала (например. konsole, xterm, консоли Linux ),
  • мультиплексор (напр. screen, tmux),
  • оболочка (напр. bash, dash, csh, программы, работающие в оболочке (, например ls, grep).

Вы можете изменить любой из них и использовать их в различных комбинациях.

-121 ---199154 ​​-

Каждая цветовая схема определяет цвета терминала отдельно от цветов GUI. Традиционно терминалы поддерживают не более 256 цветов и в основном используют палитру из 16 цветов. Графические интерфейсы обычно поддерживают 24 -битных цвета, поэтому Vim (и Neovim )предоставляют отдельные настройки подсветки для авторов цветовых схем.

В настоящее время многие современные терминалы также поддерживают 24 -битные цвета. Однако даже при работе в таком терминале Neovim обычно использует цветовую схему терминала и методы цветопередачи 256 -. Эта настройка

set termguicolors

заставляет Neovim отображать 24 -битных цвета,используя настройки цветовой схемы графического интерфейса. Однако это не заставляет Neovim притворяться, что он на самом деле работает в графическом интерфейсе, то есть has('gui_running')правильно все еще ложно.

К сожалению, из-за исторического смешения режима GUI с 24-битным цветовым режимом -вы можете обнаружить, что некоторые надстройки неправильно обрабатывают termguicolors. Ваша ситуация как раз такой сценарий. Текущая реализация цветов vim -solarized -использует has('gui_running')для установки правильных цветов для 24-битного -цветового режима, поэтому в итоге получается нечетная смесь -неправильных значений, когда Neovim использует 24 -битовые цвета, но не работает в графическом интерфейсе.

К счастью, исправление довольно простое :исправьте vim -соляризованные -цвета, чтобы соблюдать &termguicolorsтам, где это уместно. Вы можете найти патч в этой фиксации на моем форке аддона. Кстати, этот форк содержит некоторые другие патчи, которые могут оказаться полезными. Не стесняйтесь указывать на него в конфигурации Vim или применять патчи к своей версии по своему усмотрению.

2
28.01.2020, 02:46

Теги

Похожие вопросы