- PVSM.RU - https://www.pvsm.ru -

Поддержка 24-bit цветов в терминале в связке ssh + tmux + neovim

Поддержка 24-bit цветов в терминале в связке ssh + tmux + neovim - 1

На windows я всегда использовал SecureCRT для работы по ssh и горя не знал. Но тут мне в голову стукнуло, что надо попробовать 24-битный терминал и поработать по ssh, используя красивую тему для vim на удаленном сервере.

Шаг 1. Программа-терминал с поддержкой 24-bit

К сожалению, на данный момент SecureCRT не поддерживает 24-битный экран, висит только тред на форуме [1], что поддержку добавят в отдаленном светлом будущем.

Поэтому я пошел на поиски и нашел вот такой гит [2] на эту тему. Там список разных терминалов для Linux / Mac / Windows с поддержкой True Color. Можно перебирать, смотреть, что нравится. Я остановился на MobaXterm для windows, он чем-то похож на привычный для меня SecureCRT, даже конфиг от SecureCRT подхватывает. Есть портабельная версия, скачать можно отсюда:

mobaxterm.mobatek.net [3]

После запуска, если наберете команду:

lscolors

то увидите тестовую табличку как на скриншоте в начале статьи.

Шаг 2. NeoVim

Дальше поставил neovim на удаленной машине, к которой я собирался конектится по ssh, используя терминал от MobaXterm.

Вот инструкция по установке neovim:

github.com/neovim/neovim/wiki/Installing-Neovim [4]

И поставил vim-plug:

github.com/junegunn/vim-plug [5]

Шаг 3. Тема challenger_deep с поддержкой True Color

Поддержка 24-bit цветов в терминале в связке ssh + tmux + neovim - 2

Поддержка 24-bit цветов в терминале в связке ssh + tmux + neovim - 3

Я выбрал тему challenger_deep [6] с поддержкой True Color, лично мне понравилась. Но их много разных [7], можно подобрать по вкусу, только надо смотреть, чтобы была поддержка True Color.

И самая минимальная конфигурация для neovim:

call plug#begin('~/.local/share/nvim/plugged')
Plug 'vim-airline/vim-airline'
Plug 'itchyny/lightline.vim'
Plug 'challenger-deep-theme/vim'
call plug#end()

syntax on
filetype on
filetype plugin on
filetype plugin indent on
set termguicolors
colorscheme challenger_deep

Файл ~/.config/nvim/init.vim — это аналог .vimrc для классического vim.

Дальше:

:PlugInstall

И, собственно, все должно стать похожим на скриншот.

Шаг 4. Поддержка цветов в tmux

По умолчанию, если запустить сессию tmux (аналог screen), то цвета поблекнут и вернутся в обычное скучное русло. Вот как можно это победить и вернуть цветовую гамму.

Создаем файл ~/xterm-24bit.terminfo со следующим содержимым:


xterm-24bit|xterm with 24-bit direct color mode,
   use=xterm-256color,
   sitm=E[3m,
   ritm=E[23m,
   setb24=E[48;2;%p1%{65536}%/%d;%p1%{256}%/%{255}%&%d;%p1%{255}%&%dm,
   setf24=E[38;2;%p1%{65536}%/%d;%p1%{256}%/%{255}%&%d;%p1%{255}%&%dm,

Убедитесь, что есть пустая строка в конце файла.

Запускаем команду:


tic -x -o ~/.terminfo xterm-24bit.terminfo

И далее:

export TERM=xterm-24bit

Ее можно засунуть в .bashrc
В конфиг .tmux.conf добавляем:


set -g default-terminal "xterm-24bit"
set -g terminal-overrides ',xterm-24bit:Tc'

Запускаем tmux и enjoy!

P.S.

Я не пробовал сделать тоже самое в классическом vim и не пробовал сделать это в screen, вместо tmux. Если у кого-то работает, напишите, плз.

Автор: pcdesign

Источник [8]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/vim/330199

Ссылки в тексте:

[1] тред на форуме: https://s2-forums.vandyke.com/showthread.php?t=13226

[2] такой гит: https://gist.github.com/XVilka/8346728

[3] mobaxterm.mobatek.net: https://mobaxterm.mobatek.net

[4] github.com/neovim/neovim/wiki/Installing-Neovim: https://github.com/neovim/neovim/wiki/Installing-Neovim

[5] github.com/junegunn/vim-plug: https://github.com/junegunn/vim-plug

[6] challenger_deep: https://github.com/challenger-deep-theme/vim

[7] много разных: https://github.com/rafi/awesome-vim-colorschemes

[8] Источник: https://habr.com/ru/post/467567/?utm_campaign=467567&utm_source=habrahabr&utm_medium=rss