ฉันจะทำให้โครงร่างสีที่ใช้พลังงานแสงอาทิตย์ทำงานร่วมกับ gnome-terminal, tmux และ vim ได้อย่างไร?


25

มีคำถามมากมายเกี่ยวกับเรื่องนี้ แต่เป็นเพราะมีตัวแปรมากมาย ฉันต้องรวบรวมคำแนะนำจากหลาย ๆ ไซต์ก่อนที่ฉันจะใช้งานได้

ก่อนอื่นฉันไม่สามารถตั้งค่าสีที่ใช้พลังงานแสงอาทิตย์ 16 คำนิยามใน gnome-terminal ได้อย่างง่ายดาย (ฉันทำได้ด้วยมือ / คลิกเท่านั้นเพื่อรับรู้ว่าฉันไม่ได้รับคำสั่ง / การทำแผนที่ที่ถูกต้อง) เมื่อฉันแก้ไขที่ฉันย้าย ...

จากนั้นฉันก็ใช้สีโซลาร์เซลล์ที่ทำงานเป็นกลุ่ม OK-ish แต่มีพื้นหลังสีดำแปลก ๆ ปรากฏขึ้นในการเน้นบางอย่าง เมื่อฉันแก้ไขแล้วฉันก็ย้ายไป ...

จากนั้นฉันก็รู้ว่าเสียงฟอร์ดนั้น v. wonky เมื่อทำงานภายใน tmux นี้เป็นที่ถกเถียงกันอย่างหนาแน่น แต่น้อยมากของคำตอบ (ซึ่งส่วนใหญ่จะพูดเกี่ยวกับการตั้งค่าTERMไปxterm-256colors) ทำงานให้ฉัน ในที่สุดฉันก็แก้ไขได้เช่นกัน

Solarizedเป็นจานสีที่ดีมาก (ถึงแม้ว่าฉันจะทำให้สีฐานที่มืดที่สุดและทำให้สีจางลงเพราะฉันต้องการความคมชัดที่สูงกว่าและพบว่า 'สีขาว' สีเหลืองไกลเกินไปบนหน้าจอสอบเทียบของ tmux - prob ปรับหน้าจอแล็ปท็อป ปกติจะเป็นสีฟ้าเกินไป!) ดังนั้นฉันจึงโพสต์คำถามนี้พร้อมคำตอบเพื่อแบ่งปันผลการเรียนรู้ของฉัน


ฉันใช้ xterm-256color (ไม่ใช่เทอร์มินอล GNOME), tmux และ vim และจำไม่ได้ว่าต้องกระโดดข้ามที่ใด ๆ ใกล้ห่วงหลายแห่งนี้ สิ่งเดียวที่ฉันต้องทำก็คือทำให้โซลาร์เทอร์มินัล (xterm ใช้ XResources แทนโพรไฟล์) ซึ่งเป็นความเจ็บปวดเล็กน้อยที่จะคิดออกเพิ่ม solarized.vimและฉันก็พร้อมแล้ว
jw013

คำตอบ:


24

พลังงานแสงอาทิตย์ให้สีที่เฉพาะเจาะจงมาก คุณไม่สามารถจริงๆบรรลุสีเหล่านี้ในจานสี 256 สีมาตรฐาน วิธีเดียวที่คุณสามารถทำได้คือการตั้งค่าสีที่แน่นอนในเทอร์มินัลอีมูเลเตอร์ของคุณจากนั้นแอพคิดว่าพวกเขากำลังใช้สีมาตรฐาน 16 สี (8 + 8 brights) แต่สิ่งเหล่านี้ได้ถูกแมปอย่างถูกต้อง

เทอร์มินัล Gnome ไม่ได้ให้วิธีที่ง่ายในการส่งออก / นำเข้าพาเล็ตหรือโปรไฟล์ แต่คุณสามารถทำได้ด้วยสคริปต์ทุบตีนี้:

#!/bin/sh
DARK_BG='#000014141A1A'
# original: DARK_BG='#00002B2B3636'
LIGHTEST='#FFFFFBFBF0F0'
# original: LIGHTEST='#FDFDF6F6E3E3'

gconftool-2 --set "/apps/gnome-terminal/profiles/Default/use_theme_background" --type bool false
gconftool-2 --set "/apps/gnome-terminal/profiles/Default/use_theme_colors" --type bool false
gconftool-2 --set "/apps/gnome-terminal/profiles/Default/palette" --type string "#070736364242:#D3D301010202:#858599990000:#B5B589890000:#26268B8BD2D2:#D3D336368282:#2A2AA1A19898:#EEEEE8E8D5D5:$DARK_BG:#CBCB4B4B1616:#58586E6E7575:#65657B7B8383:#838394949696:#6C6C7171C4C4:#9393A1A1A1A1:$LIGHTEST"
gconftool-2 --set "/apps/gnome-terminal/profiles/Default/background_color" --type string "$DARK_BG"
gconftool-2 --set "/apps/gnome-terminal/profiles/Default/foreground_color" --type string "#65657B7B8383"

nb ที่นี่ฉันได้แทนที่ Solarized ของสีที่มืดและสว่างที่สุด คุณสามารถใช้ต้นฉบับหากคุณต้องการตามความคิดเห็น

ดีพอแล้ว. ตอนนี้ติดตั้งไฟล์สี Solarized vimโดยการวางไฟล์~.vim/colors/solarized.vimนั้น

ตอนนี้คุณสามารถบอกให้ Vim ใช้ชุดสีcolo solarizedนั้นได้ แต่สิ่งนี้ไม่ได้ผลและฉันต้องบอกให้ Vim ใช้สี 16 เฉดสี, set t_Co=16. ฉันติดทั้งสองอย่างใน~/.vimrcไฟล์ของฉัน

ตอนนี้สีที่ใช้งานได้ดี แต่ไม่ใช่ถ้ามันวิ่งเข้าไปใน tmux

บิตถัดไปนี้ทำให้เกิดความสับสนมาก คำแนะนำส่วนใหญ่พูดเกี่ยวกับการตั้งค่าTERMนอก tmux เป็นxterm-256colorsแต่เมื่อฉันทำเช่นนั้น tmux จะไม่เริ่มเลย มันทำให้ฉันงงเหมือนกัน: ไม่รับแสงอาทิตย์พูดว่าจานสี 256 สีนั้นประมาณไว้ไม่ดีเหรอ? มันสับสนและต่อไปมันไม่ทำงานดังนั้นฉันจึงต้องการวิธีต่อไปอีก:

สร้างไฟล์/tmp/fooที่มี:

xterm-16color|xterm with 16 colors,
    colors#16, use=xterm,

จากนั้นติดตั้งสิ่งนี้ด้วย sudo tic /tmp/foo

ในที่สุดนามแฝงtmuxดังนี้

alias tmux='TERMINFO=/usr/share/terminfo/x/xterm-16color TERM=xterm-16color tmux -2'

ตอนนี้ผมได้รับตรงกับสีที่เหมาะสมใน terminal ในกลุ่มและในกลุ่ม-ภายใน tmux nb -2ตัวเลือกที่บอกtmuxจะใช้จานสี 256 สีซึ่งเป็นจริงทำให้เกิดความสับสนเพราะตัวแปร env จะปรากฏที่จะบอกว่ามันเป็นอย่างอื่น ... ฉันอย่างแท้จริงไม่ทราบและฉันกลัวฉันไม่สนใจที่จะปีนขึ้นไปการเรียนรู้ที่ โค้งเพราะตอนนี้ฉันมีเทอร์มินัลสีที่สวยงามที่ Just Works


set t_Co=16ทำเคล็ดลับสำหรับฉัน ก่อนการตั้งค่าการไฮไลต์ไวยากรณ์ของตัวเลือกนั้นใช้งานไม่ได้เลย
Koraktor

2
มันสนุกมากที่คุณต้องทำงานเพื่อให้ 16 สีทำงานในโปรแกรมแก้ไขข้อความ!

หมายเหตุ: ฉันพบว่าใน Gnome Terminal 3.18.3 (ใน Ubuntu 16.04) สิ่งนี้ใช้งานไม่ได้อีกแล้ว - ดูเหมือนจะไม่ยอมรับสีและการใช้ t_Co = 256 ของ vim ให้ผลลัพธ์ที่ดีกว่า
artfulrobot

9

ฉันพบโครงการนี้ด้วย:

https://github.com/sigurdga/gnome-terminal-colors-solarized

ขอบคุณสำหรับเคล็ดลับ :-)


1
ใช่แล้ว! ใช้สคริปต์นี้อย่ากังวลกับการแฮ็กทั้งหมดในคำตอบที่ยอมรับ "ใช้งานได้ดี"
LondonRob

ยอดเยี่ยม! มันดีกว่ามาก ขอขอบคุณ.
wchargin

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