Làm cách nào để có được bảng màu năng lượng mặt trời làm việc với gnome-terminal, tmux và vim?


25

Có rất nhiều câu hỏi xung quanh vấn đề này, nhưng đó là vì có quá nhiều biến số. Tôi đã phải ghép các hướng dẫn từ nhiều trang web trước khi tôi làm việc này.

Đầu tiên, tôi không thể dễ dàng thiết lập 16 định nghĩa màu mặt trời trong thiết bị đầu cuối gnome (tôi đã thực hiện bằng tay / chỉ nhấp để nhận ra rằng tôi không có thứ tự / ánh xạ chính xác). Khi tôi sửa xong, tôi chuyển sang ...

Sau đó, tôi đã có các màu mặt trời hoạt động trong vim OK-ish, nhưng có một số nền đen kỳ lạ xuất hiện trong một số điểm nhấn nhất định. Khi tôi sửa nó, tôi chuyển sang ...

Sau đó, tôi nhận ra vim đã đi v. Winky một lần chạy bên trong tmux. Đây là ồ ạt tranh cãi, nhưng rất ít các câu trả lời (mà chủ yếu nói về việc thiết TERMđể xterm-256colors) làm việc cho tôi. Cuối cùng tôi cũng sửa nó.

Solarized là một bảng màu rất đẹp (mặc dù tôi đã làm tối màu cơ bản tối nhất và sáng hơn khi tôi thích độ tương phản cao hơn và thấy 'màu trắng' của tmux quá xa màu vàng trên màn hình hiệu chỉnh của tôi - rất tốt trên màn hình máy tính xách tay không được hiệu chỉnh điển hình khi chúng ' thường là quá xanh!), vì vậy tôi đang đăng câu hỏi này với câu trả lời của nó để chia sẻ kết quả học tập của tôi.


Tôi sử dụng xterm-256color (không phải thiết bị đầu cuối Gnome), tmux và vim và không nhớ phải nhảy qua bất cứ nơi nào gần nhiều vòng này. Điều duy nhất tôi phải làm là năng lượng mặt trời của thiết bị đầu cuối (xterm sử dụng XResource thay vì hồ sơ), đó là một nỗi đau nhỏ để tìm ra, thêm solarized.vimvà tôi đã hoàn tất.
jw013

Câu trả lời:


24

Solarized cho màu sắc rất cụ thể. Bạn thực sự không thể đạt được những màu này trong bảng màu 256 tiêu chuẩn . Cách duy nhất bạn có thể đạt được điều này là thiết lập các màu chính xác trong trình giả lập thiết bị đầu cuối của bạn, sau đó các ứng dụng nghĩ rằng chúng chỉ sử dụng 16 màu tiêu chuẩn (8 + 8 độ sáng) nhưng chúng đã được ánh xạ chính xác vào bảng màu Solarized.

Thiết bị đầu cuối Gnome không cung cấp một cách rất dễ dàng để xuất / nhập bảng màu hoặc hồ sơ, nhưng bạn có thể làm điều đó với tập lệnh bash này:

#!/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. Ở đây tôi đã ghi đè các màu tối nhất và sáng nhất của Solarized. Bạn có thể sử dụng bản gốc nếu bạn thích, như đã nhận xét.

Đủ tốt. Bây giờ cài đặt tệp màu vim Solarized bằng cách đặt tệp đó vào ~.vim/colors/solarized.vim.

Bây giờ bạn có thể nói với Vim để sử dụng bảng màu đó với colo solarized. Nhưng điều này không hoàn toàn hiệu quả và tôi đã phải nói với Vim sử dụng pallete 16 màu , set t_Co=16. Tôi mắc kẹt cả hai trong ~/.vimrctập tin của tôi .

Bây giờ màu vim đã hoạt động, nhưng không chạy trong tmux.

Bit tiếp theo này là rất khó hiểu. Hầu hết các lời khuyên đều nói về việc cài đặt TERMbên ngoài tmux xterm-256colors, nhưng khi tôi thực hiện thì tmux thậm chí sẽ không bắt đầu. Nó cũng làm tôi bối rối: không được năng lượng mặt trời nói rằng bảng màu 256 là một xấp xỉ kém? Chà, thật khó hiểu, và dù sao thì nó cũng không hoạt động nên tôi cần một cách khác để tiến lên:

Tạo một tệp /tmp/foocó chứa:

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

Sau đó cài đặt cái này với sudo tic /tmp/foo

Cuối cùng, bí danh tmuxnhư sau:

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

Bây giờ tôi nhận được chính xác màu sắc chính xác trong thiết bị đầu cuối, trong vim và trong vim-bên trong tmux. Nb. các -2tùy chọn bảo tmuxsử dụng một bảng màu 256 màu sắc, mà thực sự là khó hiểu bởi vì các biến env sẽ xuất hiện để được nói với nó bằng cách khác ... Tôi thực sự không biết, và tôi sợ tôi không thực sự quan tâm để leo lên học tập đường cong bởi vì bây giờ tôi có một thiết bị đầu cuối màu đẹp mà chỉ hoạt động.


set t_Co=16đã lừa tôi Trước khi cài đặt, cú pháp hightlighting tùy chọn đó hoàn toàn không hoạt động.
Koraktor

2
Thật thú vị khi bạn cần làm bao nhiêu công việc để có 16 màu hoạt động trong trình soạn thảo văn bản!

Lưu ý: Tôi thấy rằng trong Gnome Terminal 3.18.3 (trong Ubuntu 16.04), điều này không còn hoạt động nữa - dường như không chấp nhận màu sắc và sử dụng timo = 256 của vim cho kết quả tốt hơn.
artfulrobot

9

Tôi cũng tìm thấy dự án này:

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

Cảm ơn vì những lời khuyên :-)


1
Có và có! Sử dụng tập lệnh này, đừng bận tâm với tất cả các hack trong câu trả lời được chấp nhận. Điều này "chỉ hoạt động".
LondonRob

Tuyệt vời! Điều này là tốt hơn nhiều. Cảm ơn bạn.
wchargein

Trên một số cài đặt, nó hoạt động. Trên một số màu quá xanh.
JohnMudd
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.