Bắt 256 màu để hoạt động trong tmux


177

Tôi có 256 màu hoạt động tốt konsole,. Tôi nghĩ tôi sẽ tmuxthử vì không giống như màn hình, nó dường như hỗ trợ vichế độ. Tuy nhiên tôi thấy rằng màu sắc của lời nhắc của tôi hiển thị và điều này rất có thể là do tôi có lời nhắc chế độ 256 màu. Tôi cần làm gì để nhận tmuxra tất cả 256 màu?


2
tmux -2Tôi đã phải làm điều này trong terminator và tôi hơi ngạc nhiên. Các -2lá cờ nói tmux để buộc việc sử dụng 256 màu ... cho dù thiết bị đầu cuối của bạn có thích hay không ... dun dun dunnn: P
Dylan

Câu trả lời:


253

Câu hỏi thường gặp về Tmux khuyên không nên thiết lập TERM cho bất kỳ thứ gì ngoài màn hình hoặc màn hình 256 màu trong tệp init shell của bạn, vì vậy đừng làm điều đó!

Đây là những gì tôi sử dụng:

~$ which tmux
tmux: aliased to TERM=xterm-256color tmux

và trong .tmux.conf của tôi:

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

Bí danh tmuxcho " tmux -2" cũng nên thực hiện các mẹo.


4
Tôi thích cách đặt nó trong .tmux.conf tốt nhất ... sử dụng trình bao để đặt nó có vẻ không đúng
xenoterracide

6
Kỳ dị. Bạn không cần tmux -2trên OSX nhưng bạn cần nó với Gnome Terminal. Cảm ơn thông tin, thêm vào bí danh của tôi!
FX

1
Trong Kubfox 13.10, chỉ riêng cài đặt .tmux.conf đã không giúp tôi lấy lại 256 màu của mình (lấy ra làm nổi bật ở chế độ trực quan vim) nhưng bí danh đã hoạt động. Chắc chắn sẽ thích một giải pháp chỉ tập tin .tmux.conf.
Jacob Dalton

1
ssh'd vào một máy Ubuntu (từ OS X Terminal), thiết bị đầu cuối mặc định .tmux.conf là tất cả những gì tôi cần.
đánh dấu duelin

2
Đối với tôi có vẻ như tất cả những gì tôi cần làm là TERM=screen-256color tmuxkhông tạo .tmux.conftập tin. Tui bỏ lỡ điều gì vậy?
joelostblom

39

Hãy thử thiết lập 256 màu rõ ràng trong bashrc hoặc zshrc của bạn:

export TERM=xterm-256color

hoặc là

export TERM=screen-256color

Nếu bạn gặp vấn đề với tmux không xóa màu nền chính xác khi sử dụng cài đặt thuật ngữ màn hình, bạn có thể thử:

export TERM=screen-256color-bce

1
cái đầu tiên là cài đặt TATE mặc định của tôi ... Tôi vừa thử 2 cái còn lại và lời nhắc của tôi vẫn không hiển thị màu khi tôi nhập tmux. (Tôi muốn lưu ý rằng tmux không hiển thị màu ở phía dưới) ... có vẻ như khi tôi nhập tmux, nó sẽ đặt lại màn hình TERM thành TERM = ... có lẽ có cách nào để ghi đè lên màn hình này không?
xenoterracide

nvm ... Tôi đoán việc đặt nó vào chiếc RC của vỏ của tôi không hoạt động ... thật khó chịu khi nó bỏ qua biến Tv env được đặt khi tôi thực hiện tmux ... Tôi đoán tôi sẽ phải đặt một điều kiện vào chiếc RC của mình.
xenoterracide

1
-bce không tương thích với tmux. Tmux không hỗ trợ xóa màu nền:
Dustin Kirkland

1
Tôi đã có vấn đề này với roxterm. Hy vọng việc thêm roxterm vào việc này sẽ giúp mọi người tìm ra giải pháp tương tự mà tôi đã có. Tôi sẽ kết thúc trong vim và chọn dòng sẽ làm cho chúng biến mất. Vô cùng khó khăn để tìm kiếm. roxterm theo mặc định thiết lập chỉ với $ TERM = xterm, điều này là không tốt.
BeepDog

5
-1, bạn không nên đặt vô điều kiện trong tệp khởi tạo shell của mình. Đặt nó xterm-256colorcũng sẽ ghi đè lên bên trong tmux và đặt nó screen-256colorbên ngoài tmux có thể dẫn đến hiển thị lỗi.
nyuszika7h

19

Theo Câu hỏi thường gặp về tmux , hãy thêm phần này vào ~/.tmux.conf:

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

Sau đó thêm bí danh này cho tmux:

alias tmux='tmux -2'

Không cần ghi đè TERMbiến trong hồ sơ của bạn hoặc khi bắt đầu tmux.

Thêm thông tin: http://vim.wikia.com/wiki/256_colors_setup_for_console_Vim


2
Cấu hình tmux là đủ cho tôi; Tôi không cần đặt bí danh (mặc dù có lẽ nó sẽ không bị tổn thương).
anishpatel

Cấu hình tmux một mình làm việc cho tôi. Bí danh là không đủ.
Harry Moreno

12

Phiên bản mới nhất của tàu ncurses với mục nhập terminfo tmux-256color ( Câu hỏi thường gặp có đề cập đến điều này). Ví dụ, một lợi ích của việc sử dụng tmux-256color trên màn hình-256color là chữ in nghiêng được hiển thị đúng (màn hình không hỗ trợ chữ nghiêng).

Vì vậy, nếu bạn có gói ncurses mới nhất, những điều sau đây cũng sẽ hoạt động:

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

Tôi sẽ lưu ý rằng giải pháp này dường như cần tmux 2.6hoặc tốt hơn
zzxyz

3

Lưu ý thực sự quan trọng ở đây nếu bạn đang chạy Ubuntu cũ hơn Bionic (18.04). Nếu bạn đang chạy tmux 2.1hoặc cũ hơn và có lẽ bạn, về cơ bản, không có lời khuyên nào bạn đọc trực tuyến về tmux sẽ hoạt động..cho bất cứ điều gì.

tmux -Vlà một bài kiểm tra dễ dàng cho việc này. Nếu bạn thấy 2.1hoặc cũ hơn, bạn có thể xây dựng tmux từ nguồn hoặc bạn có thể thêm một kho lưu trữ không chính thức. Tôi đã cập nhật tmux của mình với:

sudo add-apt-repository ppa:/hnakamur/tmux
sudo apt update
sudo apt upgrade

Cá nhân, sau khi nâng cấp lên 2.6, 1) các phím của tôi hoạt động tốt hơn, 2) lời khuyên trực tuyến thực sự hoạt động, 3) màu sắc của tôi không điên rồ. Cải tiến lớn.

(Đây là một liên kết đến trang kho lưu trữ, btw): https://launchpad.net/~hnakamur


2

Tôi không thể giải thích tại sao điều này hoạt động nhưng nó đã giải quyết vấn đề cho tôi.

~ / .tmux.conf

set-option -g default-command bash

1
Tôi đã thử điều này như là phương sách cuối cùng và thật ngạc nhiên khi nó hoạt động!
v0d1ch

1

Đây là giải pháp của tôi .... Tôi chỉnh sửa tệp .bashrc của mình và thêm tệp này

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

Hy vọng nó hoạt động trong của bạn


10
Tại sao phải bận tâm với if? Bạn chỉ có thể đặt biến.
joeytwiddle
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.