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

в 12:11, , рубрики: Neovim, nvim, ssh, vim

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

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

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

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

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

mobaxterm.mobatek.net

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

lscolors

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

Шаг 2. NeoVim

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

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

github.com/neovim/neovim/wiki/Installing-Neovim

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

github.com/junegunn/vim-plug

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

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

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

Я выбрал тему challenger_deep с поддержкой True Color, лично мне понравилась. Но их много разных, можно подобрать по вкусу, только надо смотреть, чтобы была поддержка 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

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js