รับ 256 สีเพื่อใช้งานใน tmux


177

ฉันมี 256 konsole,สีที่ทำงานได้ดีใน ฉันคิดว่าฉันจะtmuxลองเพราะเหมือนหน้าจอดูเหมือนว่าจะรองรับviโหมด อย่างไรก็ตามฉันพบว่าสีของพรอมต์ของฉันปรากฏขึ้นและเป็นไปได้มากที่สุดเนื่องจากฉันมีพรอมต์โหมด 256 สี ฉันต้องทำอะไรจึงจะสามารถรับtmuxรู้สีได้ทั้งหมด 256 สี


2
tmux -2ฉันต้องทำสิ่งนี้ในเทอร์มิเนเตอร์และฉันค่อนข้างประหลาดใจ -2ธงบอก tmux ที่จะบังคับใช้ 256 สี ... ไม่ว่าจะเป็นสถานีของคุณชอบมันหรือไม่ ... ตาลตาล dunnn: P
ดีแลน

คำตอบ:


253

Tmux คำถามที่พบบ่อยอย่างชัดเจนให้คำแนะนำกับการตั้งค่าการลงทุนเป็นสิ่งอื่นที่ไม่ใช่หน้าจอหรือหน้าจอ 256color ในแฟ้ม init เปลือกของคุณจึงไม่ทำมันได้!

นี่คือสิ่งที่ฉันใช้:

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

และใน. tmux.conf ของฉัน:

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

การใช้นามแฝงtmuxเป็น " tmux -2" ก็ควรทำเคล็ดลับเช่นกัน


4
ฉันชอบวิธีการตั้งค่าใน. tmux.conf ที่ดีที่สุด ... การใช้เชลล์เพื่อตั้งค่าดูเหมือนจะไม่ถูกต้อง
xenoterracide

6
แปลก. คุณไม่จำเป็นต้องใช้tmux -2OSX แต่คุณต้องการใช้กับ Gnome Terminal ขอบคุณสำหรับข้อมูลเพิ่มในนามแฝงของฉัน!
FX

1
ใน Kubuntu 13.10 การตั้งค่า. tmux.conf เพียงอย่างเดียวไม่ได้สี 256 สีกลับมาให้ฉัน จะต้องการไฟล์. tmux.conf อย่างแน่นอนเท่านั้น
Jacob Dalton

1
ssh'd ในเครื่อง Ubuntu (จาก OS X Terminal), .tmux.conf default-terminal นั้นเป็นสิ่งที่ฉันต้องการ
เครื่องหมาย Duelin

2
สำหรับฉันดูเหมือนว่าทั้งหมดที่ฉันต้องทำคือTERM=screen-256color tmuxไม่ต้องสร้าง.tmux.confไฟล์ ฉันพลาดอะไรไปรึเปล่า?
joelostblom

39

ลองตั้งค่า 256 สีอย่างชัดเจนใน bashrc หรือ zshrc ของคุณ:

export TERM=xterm-256color

หรือ

export TERM=screen-256color

หากคุณมีปัญหากับ tmux ไม่ได้ล้างสีพื้นหลังอย่างถูกต้องเมื่อใช้การตั้งค่าคำบนหน้าจอคุณสามารถลอง:

export TERM=screen-256color-bce

1
อันแรกคือการตั้งค่า TERM เริ่มต้นของฉัน ... ฉันลองอีก 2 และพรอมต์ของฉันยังไม่แสดงสีเมื่อฉันใส่ tmux (ฉันต้องการที่จะทราบว่า tmux จะแสดงสีที่ด้านล่าง) ... ดูเหมือนว่าเมื่อฉันเข้าสู่ tmux ว่ามันจะรีเซ็ต TERM เป็น TERM = หน้าจอ ... บางทีอาจมีวิธีที่จะเอาชนะสิ่งนี้ในการกำหนดค่าหรือไม่?
xenoterracide

nvm ... ฉันเดาว่าการวางไว้ใน rc ของ shell ทำงานได้อย่างไร ... มันน่ารำคาญแค่ไหนที่ไม่สนใจตัวแปร env ของ TERM ที่ถูกตั้งค่าเมื่อฉันเรียกใช้ tmux ... ฉันเดาว่าฉันจะต้องใส่เงื่อนไขใน rc ของฉัน
xenoterracide

1
-bce เข้ากันไม่ได้กับ tmux Tmux ไม่รองรับการลบสีพื้นหลัง:
ดัสตินเคิร์กแลนด์

1
ฉันมีปัญหากับ roxterm หวังว่าการเพิ่ม roxterm ให้กับสิ่งนี้จะช่วยให้ผู้คนค้นพบวิธีแก้ไขปัญหาแบบเดียวกับที่ฉันมี ฉันจะลงเอยเป็นกลุ่มและเลือกบรรทัดจะทำให้พวกเขาหายไป ยากมากในการค้นหา roxterm ตามค่าเริ่มต้นตั้งค่าด้วยเพียง $ TERM = xterm ซึ่งไม่ดี
BeepDog

5
-1 คุณไม่ควรตั้งค่าอย่างไม่มีเงื่อนไขในไฟล์การกำหนดค่าเริ่มต้นเชลล์ การตั้งค่าให้มันxterm-256colorจะแทนที่ภายใน tmux เช่นกันและการตั้งค่าไว้ที่screen-256colorด้านนอกของ tmux อาจนำไปสู่การแสดงข้อบกพร่อง
nyuszika7h

19

ตามคำถามที่พบบ่อยของ tmuxให้เพิ่มสิ่งนี้ใน~/.tmux.conf:

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

จากนั้นเพิ่มนามแฝงนี้สำหรับ tmux:

alias tmux='tmux -2'

ไม่จำเป็นต้องแทนที่ตัวแปรในโปรไฟล์ของคุณหรือเมื่อเริ่มต้นTERMtmux

ข้อมูลเพิ่มเติม: http://vim.wikia.com/wiki/256_colors_setup_for_console_Vim


2
การกำหนดค่า tmux นั้นเพียงพอสำหรับฉัน ฉันไม่จำเป็นต้องตั้งชื่อแทน (แม้ว่ามันอาจจะไม่เจ็บ)
anishpatel

การกำหนดค่า tmux เพียงอย่างเดียวนั้นใช้ได้สำหรับฉัน นามแฝงไม่เพียงพอ
แฮร์รี่โมเรโน่

12

รุ่นใหม่ล่าสุดของ ncurses มาพร้อมกับรายการtmux-256color terminfo ( คำถามที่พบบ่อยจะกล่าวถึงสิ่งนี้) ตัวอย่างเช่นข้อดีของการใช้tmux-256colorบนหน้าจอ-256colorคือการแสดงตัวเอียงอย่างถูกต้อง (หน้าจอไม่รองรับตัวเอียง)

ดังนั้นหากคุณมีแพ็คเกจ ncurses ล่าสุดสิ่งต่อไปนี้จะใช้ได้เช่นกัน:

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

ฉันจะทราบว่าวิธีแก้ปัญหานี้ต้องการtmux 2.6หรือดีกว่า
zzxyz

3

หมายเหตุสำคัญจริงๆที่นี่ถ้าคุณใช้งาน Ubuntu ที่เก่ากว่า Bionic (18.04) หากคุณกำลังทำงานtmux 2.1หรือเก่ากว่าและคุณอาจเป็นได้โดยทั่วไปไม่มีคำแนะนำที่คุณอ่านออนไลน์เกี่ยวกับ tmux จะทำงาน .. สำหรับทุกสิ่ง

tmux -Vเป็นการทดสอบที่ง่ายสำหรับสิ่งนี้ หากคุณเห็น2.1หรือเก่ากว่าคุณสามารถสร้าง tmux จากแหล่งที่มาหรือคุณสามารถเพิ่มที่เก็บอย่างไม่เป็นทางการ ฉันอัพเดต tmux ด้วย:

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

โดยส่วนตัวหลังจากอัปเกรดเป็น2.61) คีย์ของฉันทำงานได้ดีขึ้น 2) คำแนะนำออนไลน์ใช้งานได้จริง 3) สีของฉันไม่ได้บ้า การปรับปรุงครั้งใหญ่

(นี่คือลิงค์ไปยังหน้าพื้นที่เก็บข้อมูล btw): https://launchpad.net/~hnakamur


2

ฉันไม่สามารถอธิบายได้ว่าทำไมสิ่งนี้ถึงได้ผล แต่มันแก้ปัญหาให้ฉันได้

~ / .tmux.conf

set-option -g default-command bash

1
ฉันลองนี่เป็นทางเลือกสุดท้ายและมันก็ใช้งานได้อย่างน่าประหลาดใจ!
v0d1ch

1

นี่คือทางออกของฉัน .... ฉันแก้ไขไฟล์. bashrc ของฉันและเพิ่มไฟล์นี้

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

หวังว่ามันจะทำงานในของคุณ


10
รำคาญกับทำไมif? คุณสามารถตั้งค่าตัวแปรได้
joeytwiddle
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.