Подсветка синтаксиса работает для gvim (версия vim с графическим интерфейсом), но не для vim (vim на основе терминала) - PullRequest
0 голосов
/ 18 сентября 2018

Я новичок в vim и хочу написать код в vim.Я установил необходимые плагины для подсветки синтаксиса JSX в TypeScript, и все отлично работает для версии Vim с графическим интерфейсом, но не для терминальной Vim.Пожалуйста, помогите мне разобраться в проблеме.Ниже приведены плагины, которые я использую для подсветки синтаксиса.

  1. Для TypeScript: https://github.com/leafgarland/typescript-vim
  2. Для JSX в TypeScript: https://github.com/peitalin/vim-jsx-typescript

Я использую Vundle для установки плагинов.Я попытался сделать некоторые настройки цвета, как указано в разделе README второго плагина, упомянутого выше.В соответствии с этим, когда я использовал команду hi, она не оказала никакого влияния на Vim на основе терминала, но она прекрасно работала на Vim на основе графического интерфейса.Кроме того, если возможно, укажите мне любую статью / блог, чтобы новичок узнал больше о vim и vimscript.

РЕДАКТИРОВАТЬ:

Я пытаюсь настроить подсветку синтаксиса для JSX в TypeScript для ReactРазработка и я установил выше плагины для достижения этой цели.Ниже приведен контент моего файла .vimrc.

set nocompatible                " choose no compatibility with legacy vi syntax enable
set encoding=utf-8
set showcmd                     " display incomplete commands
set t_Co=256
filetype plugin indent on       " load file type plugins + indentation

"" monkai theme
syntax enable
colorscheme monokai

set nu
set guifont=monacob\ bold\ 9

highlight ColorColumn ctermbg=gray
set colorcolumn=80

"" Whitespace
set nowrap                      " don't wrap lines
set tabstop=2 shiftwidth=2      " a tab is two spaces (or set this to 4)
set expandtab                   " use spaces, not tabs (optinal)
set backspace=indent,eol,start  " backspace through everything in insert mode

"" Searching
set hlsearch                    " highlight matches
set incsearch                   " incremental searching
set ignorecase                  " searches are case insensitive...
set smartcase                   " ... unless they contain at least one capital letter

" set the runtime path to include Vundle and initialize
set rtp +=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')

" let Vundle manage Vundle, required
Plugin 'gmarik/Vundle.vim'
Plugin 'tpope/vim-fugitive.git'
Plugin 'tpope/vim-rails'
Plugin 'leafgarland/typescript-vim'
Plugin 'peitalin/vim-jsx-typescript'
" The following are examples of different formats supported.
" Keep Plugin commands between vundle#begin/end.

" All of your Plugins must be added before the following line
call vundle#end()            " required
filetype plugin indent on    " required
" autocmd FileType typescript.tsx setlocal commentstring={/*\ %s\ */}
autocmd BufNewFile,BufRead *.tsx,*.jsx set filetype=typescript.tsx
autocmd BufNewFile,BufRead *.ts,*.js set filetype=typescript.jsx

" dark red
hi tsxTagName guifg=#E06C75

" orange
hi tsxCloseString guifg=#F99575
hi tsxCloseTag guifg=#F99575
hi tsxAttributeBraces guifg=#F99575
hi tsxEqual guifg=#F99575

" yellow
hi tsxAttrib guifg=#F8BD7F cterm=italic

Ниже приведен снимок экрана с подсветкой синтаксиса JSX в графической версии Vim enter image description here

Нижеснимок экрана подсветки синтаксиса JSX в терминальной версии Vim enter image description here

Как мы видим на .vimrc и скриншотах, цвета тегов JSX и т. д., объявленные в концефайл работает нормально для Gvim, но не работает для терминала vim.Пожалуйста, помогите мне понять, что я не так делаю здесь.

1 Ответ

0 голосов
/ 19 сентября 2018
" dark red
hi tsxTagName guifg=#E06C75

С атрибутом guifg вы определяете цвета только для GVIM.

Начиная с Vim 8, существует опция :help 'termguicolors';Вы можете попытаться :set termguicolors;некоторые терминалы поддерживают это.

В противном случае вам придется отдельно определять цвета (из ограниченной цветовой палитры, в зависимости от количества доступных цветов, которые вам скажет :set t_Co?) для цветного терминала черезctermfg / ctermbg атрибуты.Например:

hi tsxTagName guifg=#E06C75 ctermfg=DarkRed

Альтернативные подходы с помощью плагинов

Плагины, такие как CSApprox , могут принимать определения цветов графического интерфейса и преобразовывать их в близко совпадающие 256 цветов ctermцветовая палитра для цветных терминалов.Это помогает с цветовыми схемами, которые в противном случае выбирают только из простой 16-цветовой терминальной цветовой палитры по умолчанию или предоставляют только определения цвета GUI.

Другой подход - csexact , который изменяет (поддерживается) Палитра терминала точно соответствует цветам графического интерфейса Vim.

...