Không có cú pháp tô sáng trong tmux


16

Tôi đã cài đặt tmuxtrong iTerm 2. (Build 3.0.13) Khi tôi thực hiện vimtrong tmux, cú pháp làm nổi bật vẻ như thế này.

không đánh dấu cú pháp

Nhưng bên ngoài tmux, cú pháp tô sáng trông ổn.

tô sáng cú pháp thông thường

$TERMTmux của tôi bên trong và bên ngoài là xterm-256color. Tôi cũng đã thêm

set -g default-terminal "screen-256color"

trong .tmux.confvà thêm điều này

set t_Co=256
set t_AB=m
set t_AF=m
if &term =~ '256color'
    set t_ut=
endif

trong .vimrc.

Tôi cũng đã thử tmux -2lệnh và đọc những câu hỏi này.

mất vim colorscheme trong chế độ tmux

Màu sắc không chính xác với vim trong iTerm2 bằng Solarized

Đây có phải là một vấn đề tmux, vimhoặc cấu hình của tôi?

BIÊN TẬP:

Của tôi .vimrctrong GitHub Gist

https://gist.github.com/sohnryang/3c63397f332f2e30c7d7b2a83c3c9f52


Điều gì sẽ xảy ra khi bạn bắt đầu tmux của mình với -2tùy chọn : tmux -2. Tốt nhất là khi không có phiên trong tmux.
grodzik

Tôi đã sử dụng tmux -2, nhưng vấn đề là như nhau.
sohnryang

Bạn có thể chia sẻ toàn bộ .vimrc?
grodzik

1
@sohnryang phần nào của "có lẽ bạn không nên" không hiểu?
muru

1
Hãy thử làm theo các bước sau . Bạn có rất nhiều plugin nên có lẽ một trong số đó đang can thiệp.
Martin Tournoij

Câu trả lời:


8

Vâng, tôi tự giải quyết vấn đề.

như @ Carpetsmoker ♦ nhận xét, tôi bắt đầu nghi ngờ rằng tôi .vimrclà một vấn đề. Tôi đọc câu hỏi này và bắt đầu vim với lệnh này bên trong tmux.

vim -u NONE -U NONE -N ~/.vimrc

Sau khi bắt đầu vim với lệnh ở trên, tôi đã chạy lệnh này bên trong vim.

:syn on
:colorscheme solarized8_dark

Chúng làm nổi bật .vimrctập tin của tôi . Vì vậy, tôi bắt đầu gỡ lỗi của tôi .vimrc.

Câu chuyện dài, set termguicolorslà vấn đề. Nếu tôi chạy vim với set termguicolorsnhận xét .vimrc, tôi có thể thấy đánh dấu cú pháp được sửa trong tmux.


Tôi gặp vấn đề tương tự. sẽ rất tuyệt khi được termguicolorslàm việc trên tmux mặc dù
Filype

4

Từ hướng dẫn sử dụng vim: :h termguicolorskhuyên bạn nên đọc:h xterm-true-color

Sometimes setting 'termguicolors' is not enough and one has to set the |t_8f|
and |t_8b| options explicitly.  [ ... these are]  only set [to some default] when `$TERM` is `xterm`.

Tôi sử dụng một điều kiện tương tự như dưới đây:

if &term =~# '256color' && ( &term =~# '^screen'  || &term =~# '^tmux' )
    let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
    let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
    set termguicolors
endif

3

Tôi thực sự làm cho nó hoạt động tốt với termguicolors. Đây là những gì tôi đã làm 1. trong ~ / .bash_profile của tôi, tôi đặt cái này:

export TERM=xterm-256color

và bên trong ~ / .vimrc của tôi, tôi đã có cái này

syntax enable
colorscheme Spacegray

set termguicolors

và nó hoạt động hoàn hảo! tài liệu tham khảo


: syn on: colorscheme Spacegray: set termguicolors
abbood
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.