nền tmux vim colorscheme không hiển thị


12

Tôi đã cài đặt tmux nhưng bây giờ chế độ văn bản vim colorcheme không điền đúng màu nền. Đây là giao diện của nó với colorscheme xoria256 trong thiết bị đầu cuối Ubuntu 14.10 bình thường:

nhập mô tả hình ảnh ở đây

Và ở đây khi tôi chạy nó trong cùng một thiết bị đầu cuối sau tmux:

nhập mô tả hình ảnh ở đây

Vì vậy, như bạn có thể thấy máy tính để bàn đang hiển thị thông qua bất cứ nơi nào không có văn bản trong vim. Tôi có một thiết bị đầu cuối 256 màu.

.Tmux.conf của tôi:

~ cat .tmux.conf
set -g mode-mouse on
set -g default-terminal "screen-256color"

và tôi có một thiết bị đầu cuối 256 màu:

~ tput colors
256

Làm cách nào để tmux hoạt động chính xác với các màu vim 256 màu hoạt động tốt trong thiết bị đầu cuối bình thường?


Theo kinh nghiệm của tôi, tmux hành xử kỳ lạ khi được phóng vào bên trong gnome-terminal. Hãy thử khởi chạy tmux với TERM=xterm tmuxvà xem nếu nó hoạt động khác đi. Nếu xtermkhông hoạt động, hãy thử xterm-256colorhoặc xterm-color.
jw013

@ jw03 Đáng buồn thay, không có tùy chọn nào hoạt động để khắc phục nó. Hành vi giống hệt nhau. Hành vi tương tự nếu tôi chạy tmux bên trong terminator
Thomas Browne

1
Trong một vỏ bên trong tmux, giá trị của là $TERMgì? Nếu không screen-256color, hãy thử khởi chạy vimdưới dạng TERM=screen-256color vim, sau đó đảm bảo không có tập lệnh khởi động nào TERM(hoặc, nếu bạn cần làm điều đó để khắc phục phần mềm lỗi, trước tiên hãy đảm bảo rằng nó sẽ kiểm tra giá trị ban đầu).
Ry-

@minitech: Chơi lô tô. Tôi đã có xterm-256color trong khi màn hình-256color khắc phục vấn đề. Nếu bạn làm điều này một câu trả lời tôi sẽ chấp nhận nó.
Thomas Browne

Điều này làm việc cho tôi: stackoverflow.com/a/15095377/96855
Olivier Lalonde

Câu trả lời:


5

Điều này xảy ra khi TERMkhông được đặt thành chính xác screen[-256color]trong môi trường của Vim, thường là bởi một số tập lệnh khởi động shell. Nếu đó là trường hợp - ví dụ, bạn có một

TERM=xterm-256color

, hoặc xóa nó hoặc đảm bảo nó kiểm tra giá trị ban đầu TERMtrước khi thay đổi nó, vd

if [[ $TERM == xterm ]]; then
    TERM=xterm-256color
fi


2

Nhận xét muộn, nhưng tôi đã xem qua tất cả các chủ đề và không thể giải quyết nó cho đến khi tôi làm như sau. Tất cả tôi phải làm là thêm một kiểm tra thứ hai về

if [[ $TERM == screen]]; then
    TERM=screen-256color
fi

ngoài tuyên bố điều kiện đầu tiên trong .bashrctập tin của tôi :

if [[ $TERM == xterm ]]; then
    TERM=xterm-256color
fi

Tôi cũng đã có điều này trong .tmux.conf:

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

trong tôi .vimrc tập tin :

set term=screen-256color
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.