Vim trong tmux hiển thị sai màu


57

Tôi đã cài đặt Ubuntu 11.10. Sau đó tải xuống chủ đề Solarized cho Gnome Terminal. Từ terminal, vim của tôi có vẻ tốt: plugin vim-powerline hiển thị chính xác và cú pháp được tô sáng với màu sắc phù hợp. Nhưng khi tôi chạy tmux và ở đó chạy vim - cú pháp tô sáng chỉ sử dụng một màu cơ bản và vim-powerline hiển thị không có màu. Tôi đã xem Câu hỏi thường gặp về vim-powerline và giải pháp nên là dòng này trong .tmux-config:

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

Nhưng nó không hoạt động. Tôi đã xem TATE và nó trả về 'xterm' vì vậy tôi đã thử:

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

Nhưng điều này cũng không giúp được gì.

Đây là dòng duy nhất trong .tmux.config. Trong .vimrc tôi có các dòng sau:

call pathogen#infect()
set nocompatible
set encoding=utf-8
set laststatus=2
let g:Powerline_symbols = 'fancy'
set t_Co=256
syntax enable
set background=dark
colorsheme solarized

Không có lý do tại sao bạn không có upvote, thậm chí từ những người phải được hưởng lợi bằng cách nhận upvote từ câu trả lời của riêng họ. +1 từ tôi. Câu hỏi là âm thanh và nó cũng giúp tôi giải quyết vấn đề của riêng mình, bằng cách tìm ra nó.
0xC0000022L

Câu trả lời:


54

Bắt đầu tmux với cờ sau sửa lỗi này cho tôi:

tmux -2

từ trang người đàn ông tmux:

-2 Buộc tmux giả sử thiết bị đầu cuối hỗ trợ 256 màu.


1
Gợi ý tốt Khi phiên bản Cygwin của màn hình bắt đầu gặp sự cố, tôi đã quay lại tmux một lần nữa rất nhanh. Yêu nó.
Grantbow

1
FYI - Đây là điều duy nhất phù hợp với tôi với tmux 2.3 và dòng điện mới nhất. Màu sắc trong thanh trạng thái vim và tmux thực sự kỳ lạ.
Plasty Grove

28

Tôi đang gặp vấn đề tương tự trên Ubuntu 10.04 LTS khi sử dụng Byobu 5.17 & tmux 1.5 bằng cách sử dụng Solarized mới nhất từ ​​repo GitHub.

Tôi đã có thể khắc phục một phần điều này bằng cách chỉ định $TERMtrong .bashrctệp:

export TERM="xterm-256color"

Dường như, cũng có một lỗi được gửi trên launchpad, nhưng nó vẫn chưa được giải quyết: byobu không hiển thị đúng màu


2
Đây là điều duy nhất làm việc cho tôi!
Tranquille

Cũng hoạt động trên Ubuntu 14.04 với tmux 2.0
dukedave

Đây cũng là giải pháp trên OS X haha
Jay

27

cái này làm việc cho tôi

trong .tmux.conf

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

trong .vimrc

set term=screen-256color

xóa giá trị thuật ngữ cũ cho .vimrc, hãy tin tôi điều này sẽ hoạt động


1
Không làm việc cho tôi. tmux 1.8, vim 7.4.1816, ubfox x86_64 với kernel 3.13.0-92-generic. FYI.
fstang

1
Nó hoạt động với tôi mà không cần cài đặt .vimrc, chỉ .tmux.conf.
Geison Santos

Cài đặt .tmux.conf đã giúp tôi!
h shipbom

4

Loại thiết bị đầu cuối phải được đặt thành màn hình-256 màu trong ~ / .tmux.conf. Nó cho tmux biết những gì cần thiết lập biến khử TATE, vì vậy nó sẽ không hoạt động cho phiên hiện tại - bắt đầu một cái mới và sau đó thử nghiệm.

Nếu nó vẫn không hoạt động, bạn có thể chạy Vim bằng cách sử dụng:

TERM=screen-256color vi

Điều này đặt biến môi trường chỉ để thực hiện vi một lần.

Nếu điều đó không làm cho vim hiển thị tất cả các màu, hãy kiểm tra xem thiết bị đầu cuối của bạn (tôi không chắc nếu bạn đang thử nghiệm chỉ với một trình giả lập thiết bị đầu cuối) được biên dịch để hỗ trợ bảng màu 256 - tải xuống và chạy tập lệnh Perl bên dưới từ trình giả lập thiết bị đầu cuối trong câu hỏi.

http://scie.nti.st/dist/256colors2.pl

Tái bút Tôi cho rằng bạn đã sửa lỗi đánh máy jordanbrock nhận thấy.


2

Theo giải thích của Marcin Kaminski, nếu TERM=screen-256color vim <filename> làm việc cho bạn thì chỉ cần thêm theo sau vào.bashrc

TERM=screen-256color

và theo dõi trong .tmux.conf:

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

Tôi đã có cùng một vấn đề, điều này làm việc cho tôi.


Đây là người duy nhất làm việc cho tôi (tmux 1.8).
Yamaneko

Trên thực tế, tôi chỉ thử nghiệm và chỉ thay đổi TERM=screen-256colorlà đủ cho tôi, độc lập với việc đặt tmux thành screen-256colorhoặc thành xterm-256color. Cảm ơn bạn!
Yamaneko

1

Có một lỗi đánh máy trong dòng cuối cùng của bạn .vimrc.

Nó nên colorscheme solarized

Không chắc nó sẽ giúp ích :)


0

Bạn có thể có cùng một vấn đề được ghi lại trong câu trả lời này .

Về cơ bản, cài đặt .tmux.conf hoạt động và TERMđược đặt thành screen-256color, nhưng sau đó tmux mở bash và gọi .bashrc của bạn, đặt TERMthành một thứ khác (có lẽ xterm-256color).

Giải pháp là đặt TERMtrong cài đặt thiết bị đầu cuối của bạn chứ không phải trong .bashrc. Nếu đó không phải là một tùy chọn, bạn có thể kiểm tra TERMbên trong .bashrc và không thay đổi nếu đã có screen-256color.



0

[Solucion] [1] có thể làm phiền tầm nhìn của bạn và khiến Vim khó chịu khi sử dụng trong một thời gian dài.

Bạn có thể khắc phục điều này bằng cách chạy: set term = screen-256color trong Vim hoặc khởi chạy lại Vim trong môi trường TERM = screen-256color, như một số chuyên gia khuyên dùng: http://sunaku.github.io/vim-256color-bce.html


2
Bạn có ý nghĩa gì bởi [Solucion] [1]? Bạn đã cố gắng để tham khảo hoặc liên kết đến một câu trả lời khác? Câu trả lời không luôn xuất hiện theo cùng một thứ tự. Tôi khuyên bạn nên mở rộng điều này để làm rõ những gì bạn đang nói có thể "làm phiền tầm nhìn của bạn và khiến Vim khó chịu khi sử dụng trong một khoảng thời gian dài."
Eliah Kagan

0

Trong .bashrc hoặc .zshrc của bạn chỉ cần thêm

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

và cũng bắt đầu với tmux -2


0

Đối với những người đang tiêu tốn thời gian cho màu sắc và nếu vim năng lượng mặt trời không hoạt động trên tmux hoặc mệt mỏi với việc tìm kiếm màu sắc của vim, thì điều này sẽ hoạt động trong một phút, cũng là từ kho lưu trữ chính thức như sau.

yum install vim-jellybeans

hoặc là

mkdir -p ~/.vim/colors
cd ~/.vim/colors
curl -O https://raw.githubusercontent.com/nanotech/jellybeans.vim/master/colors/jellybeans.vim
touch ~/.vimrc 
sed -i '/colorscheme/d' ~/.vimrc
echo colorscheme jellybeans >> ~/.vimrc

Điều này sẽ khắc phục nó với bộ màu sắc đẹp và các mẫu rất tập trung và hữu ích, nếu bạn cũng đang cố gắng đặt các điểm nổi bật đó, tìm kiếm các từ, đây là nó. tất cả mọi thứ đã được thiết lập để sử dụng. Bạn thậm chí có thể thay đổi màu sắc trong tập tin cấu hình.

Nếu bạn không muốn cài đặt bất cứ thứ gì, nhưng chỉ là giải pháp nhanh chóng đơn giản, bỏ qua ở trên và thử điều này trong vim

:colo ron bạn cũng có thể thay thế 'ron' bằng các bộ sau và thậm chí khôi phục lại solo default

blue 
darkblue 
default
delek
desert
elflord
evening
koehler
morning.vim
murphy
pablo
peachpuff
ron
shine
slate
torte
zellner

và lưu trong .vimrc

colo ron
syntax on

Bất cứ ai đã đưa ra phản hồi tiêu cực. Hãy để tôi nghe lý do hợp lệ.
Seandex
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.