vim: termguicolors с xterm-true-color все еще вызывает проблемы - PullRequest
0 голосов
/ 28 мая 2020

Я видел множество сообщений, в которых отключение 'tg c' с помощью:

if exists('+termguicolors')
   let &t_8f =  "\<Esc>[38:2:%lu:%lu:%lum"
   let &t_8b =  "\<Esc>[48:2:%lu:%lu:%lum"
   " let &t_8f =  "\<Esc>[38:2;%lu;%lu;%lum" ( I have tried both ':' and ';' )
   " let &t_8b =  "\<Esc>[48:2;%lu;%lu;%lum"
   set t_Co=256
   set termguicolors
   " colorscheme gruvbox " color scheme
 endif

приводит к тому, что vim выводит странные цвета - обычно с tmux.

Первоначально я добился успеха и в этом. Пока в один прекрасный день (серьезно!) Vim не начнет вести себя странно, но по-другому. Это моно chrome.

Если я не установил его, то есть se notgc, я действительно получаю правильную цветовую схему. То же самое и при использовании vim + tmux.

Но, когда я использую vim + tmux, если я, скажем, убиваю панель или перезагружаю ~ / tmux.config, существующие сеансы vim становятся странными снова!

Здесь - это один из таких случаев, левый - это недавно открытый буфер, а правый, с теми же настройками, внезапно становится странным.

Мои настройки:

  • Это рабочий сервер моей компании, у меня нет прав su.
$ cat /proc/version
Linux version 2.6.32-504.30.3.el6.x86_64 (mockbuild@c6b8.bsys.dev.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) ) #1 SMP Wed Jul 15 10:13:09 UTC 2015
  • VIM
vim --version
VIM - Vi IMproved 8.1 (2018 May 18, compiled Jul 26 2019 22:56:22)
Included patches: 1
Compiled by bob@c6x64
Huge version with GTK2 GUI.  Features included (+) or not (-):
+acl               +farsi             +mouse_sgr         -tag_any_white
+arabic            +file_in_path      -mouse_sysmouse    -tcl
+autocmd           +find_in_path      +mouse_urxvt       +termguicolors
-autoservername    +float             +mouse_xterm       +terminal
+balloon_eval      +folding           +multi_byte        +terminfo
+balloon_eval_term -footer            +multi_lang        +termresponse
+browse            +fork()            -mzscheme          +textobjects
++builtin_terms    +gettext           +netbeans_intg     +timers                                                                                               [25/126]
+byte_offset       -hangul_input      +num64             +title
+channel           +iconv             +packages          +toolbar
+cindent           +insert_expand     +path_extra        +user_commands
+clientserver      +job               -perl              +vertsplit
+clipboard         +jumplist          +persistent_undo   +virtualedit
+cmdline_compl     +keymap            +postscript        +visual
+cmdline_hist      +lambda            +printer           +visualextra
+cmdline_info      +langmap           +profile           +viminfo
+comments          +libcall           -python            +vreplace
+conceal           +linebreak         -python3           +wildignore
+cryptv            +lispindent        +quickfix          +wildmenu
+cscope            +listcmds          +reltime           +windows
+cursorbind        +localmap          +rightleft         +writebackup
+cursorshape       -lua               -ruby              +X11
+dialog_con_gui    +menu              +scrollbind        -xfontset
+diff              +mksession         +signs             +xim
+dnd               +mouse             +startuptime       +xsmp_interact                                                                                         
-ebcdic            +mouseshape        +statusline        +xterm_clipboard
+emacs_tags        +mouse_dec         -sun_workshop      -xterm_save
+eval              +mouse_gpm         +syntax
+ex_extra          -mouse_jsbterm     +tag_binary
+extra_search      +mouse_netterm     +tag_old_static
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "$VIM/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
2nd user gvimrc file: "~/.vim/gvimrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
    system menu file: "$VIMRUNTIME/menu.vim"
  fall-back for $VIM: "/tools/apps/local/vim/latest/share/vim"
Compilation: gcc -std=gnu99 -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freety
pe2 -I/usr/include/libpng12     -O2 -fno-strength-reduce -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: gcc -std=gnu99   -L/usr/local/lib -Wl,--as-needed -o vim   -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixb
uf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0   -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE  -lm -lti
nfo -lelf -lnsl  -lselinux -lacl -lattr -lgpm

По умолчанию cshr c имеет TERM, явно установленный как vt100. Если я изменю его на xterm-256color или screen-256color, я действительно получу хорошие цветовые схемы в vim, а :set term=$TERM или явно на любой из двух вышеупомянутых, при этом будут обнаружены те же проблемы. TMUX v2.3, пробовал следующее:

set -g default-terminal "screen/xterm-256color" 
set -ga terminal-overrides ",*256col*:Tc"
  • Я использую gnome-terminal (v2.31.3), я также пробовал Konsole (v 2.3.3, Qt: 4.6.2 , KDE: 4.3.4) - и здесь я не вижу проблемы! Но консоль ужасно медленная по моему подключению vn c, что не относится к gnome-terminal, поэтому я решил придерживаться его.

- Поддержка цвета: нет поддержки истинного цвета поскольку

awk 'BEGIN{
    s="/\\/\\/\\/\\/\\"; s=s s s s s s s s;
    for (colnum = 0; colnum<77; colnum++) {
        r = 255-(colnum*255/76);
        g = (colnum*510/76);
        b = (colnum*255/76);
        if (g>255) g = 510-g;
        printf "\033[48;2;%d;%d;%dm", r,g,b;
        printf "\033[38;2;%d;%d;%dm", 255-r,255-g,255-b;
        printf "%s\033[0m", substr(s,colnum+1,1);
    }
    printf "\n";
}

возвращает this. где, поскольку Konsole возвращает гораздо более плавный вывод .

Должен ли я отказаться от gnome-terminal и попробовать другой эмулятор (который шустрее, чем Konsole)? Я был бы очень признателен, если бы решение можно было найти в самом gnome-terminal.

Надеюсь, я предоставил все необходимые детали, спасибо

1 Ответ

0 голосов
/ 29 мая 2020

Я считаю, что это частично из-за вашей конфигурации tmux. Вы захотите установить следующее в .tmux.conf:

set -g default-terminal screen-256color
set -ag terminal-overrides ",xterm-256color:Tc"

Обратите внимание, что вы не можете использовать sla sh в параметре терминала по умолчанию, поскольку это должен быть допустимый тип терминала. Я предполагаю, что все системы, в которые вы входите, имеют тип терминала screen-256color, но вы можете проверить, запустив infocmp screen-256color, который должен печатать информацию о терминале в случае успеха и ошибку в случае ошибки. Вам может потребоваться установить дополнительные пакеты, чтобы добавить этот тип терминала.

Что касается терминала GNOME, версия 2.31 очень устарела. Версия VTE, используемая в GNOME 2, определенно не поддерживает истинные цвета. В идеале вы настроите свою локальную систему для использования современного эмулятора терминала и войдете в систему через S SH вместо использования VN C, и все будет работать.

Я буду ясен, поскольку вы ' Если вы используете здесь CentOS или RHEL 6, то практически любой эмулятор терминала, который вы пытаетесь использовать, скорее всего, сломается. Этой ОС уже десять лет, и с ноября она потеряет поддержку безопасности. Как уже упоминалось, лучше всего использовать более современную среду на своем ноутбуке или настольном компьютере и входить в систему через S SH.

...