2012-06-21 36 views
11

Tôi đang sử dụng báo tuyết OSX để ghi lại.Cách bảo quản màu emacs từ thiết bị đầu cuối thông thường đến màn hình gnu

Khi tôi sử dụng emacs trực tiếp từ thiết bị đầu cuối, tôi có một bộ màu (ví dụ c/C++) mà tôi rất hài lòng với --- màu xanh lá cây trên màu đen, bình luận màu đỏ, từ khóa màu ... vv Một số điều này được đặt trong 'sở thích đầu cuối' của tôi, và một số nằm trong tập tin ~/.emacs của tôi (xem bên dưới). Khi tôi chạy các emacs từ màn hình, sơ đồ màu cơ bản là giống nhau (xanh lục trên nền đen), nhưng màu khác (ví dụ: các ký tự nhận xét có màu đỏ, nhưng không phải toàn bộ nhận xét) - và thực sự gây phiền nhiễu.

Mọi trợ giúp sẽ được đánh giá cao!

Trong tập 'emacs của tôi (điều này ngừng hoạt động trong emacs gnu màn hình):

(global-font-lock-mode t) 
(custom-set-faces 
'(font-lock-comment-face 
    ((((class color) (background light)) 
    :foreground "tomato") 
    ))) 

Trong' Screenrc 'tập tin của tôi:

shell -$SHELL   # colors still don't work without this 
#term xterm-256color # using this doesn't fix the colors (suggested on some forums) 

altscreen on 
startup_message off 

tôi nghĩ rằng lệnh' shell - $ SHELL 'trong tập tin .screenrc của tôi làm dấu nhắc lệnh trong màn hình giống như mặc định --- nó làm làm cho dòng lệnh của tôi nói' computername:/DIR/username $ 'thay vì chỉ' bash-3.2 $ '

================================================ =================

giải pháp: Nhờ Greg E.

tôi cần thiết để thiết lập mô phỏng thiết bị của tôi trong màn hình để phù hợp với của tôi vỏ bình thường. Để làm điều này, tôi đã thêm

export TERM='xterm-color' 

tới ~/.bash_profile

Đối với một số lý do, 'hạn xterm-color' trong '~/Screenrc' tập tin đã không làm việc.

+1

LƯU Ý: Trên Mac OS X 10.7 Lion trở lên, không nên sử dụng 'xterm-color'. Nó đại diện cho một nhánh cũ của xterm. Trong Lion, Terminal tương thích đủ với xterm hiện đại mà bạn nên sử dụng 'xterm-256color' (mặc định) hoặc biến thể, ví dụ:' xterm-16color'. –

+0

Cảm ơn mẹo @ChrisPage – DilithiumMatrix

Trả lời

7

Nghi ngờ của tôi là, trong khi thiết bị đầu cuối của bạn có thể được biên dịch với hỗ trợ nhiều hơn 16 màu chuẩn, phiên bản GNU cụ thể của bạn có thể không có. Tôi không quen thuộc với OSX, nhưng trên Linux tôi sẽ kiểm tra xem đầu ra của tput colors khác nhau giữa một thiết bị đầu cuối đơn giản và một màn hình đang chạy (tôi mong đợi có một số OSX tương đương nếu không có sẵn tput). Nếu có, bạn có thể cần phải cài đặt (hoặc biên dịch thủ công) một màn hình khác nhau bao gồm hỗ trợ cho các màu bổ sung (thông thường, 256 là tối đa, nhưng 88 cũng phổ biến, trong khi 16 là mức tối thiểu mặc định).

Chỉnh sửa: Cuối cùng, giải pháp đúng được chứng minh là cài đặt biến môi trường $TERM theo cách thủ công (xem nhận xét bên dưới).

+1

Ý tưởng thú vị; Tôi đã thử 'màu sắc tput' (mà không làm việc), và nó trả lời '8' trong cả hai thiết bị đầu cuối thường xuyên và trong màn hình ....:/ – DilithiumMatrix

+0

@ zhermes, giá trị hiện tại của '$ TERM' là gì và giả lập thiết bị đầu cuối nào là bạn sử dụng? Một đầu ra của 8 có nghĩa là thiết bị đầu cuối của bạn, vì nó hiện đang được cấu hình, không hỗ trợ cho bất kỳ thứ gì khác ngoài 8 màu ANSI cơ sở (và các đối tượng sáng/đậm của chúng, tổng cộng là 16). Do đó, một màu như "" cà chua "" có thể sẽ được giải quyết một cách thông minh thành "màu đỏ".Cân nhắc việc cài đặt 'xterm' với hỗ trợ 256 màu, nếu có thể. Ngoài ra, [trang này] (http://www.frexx.de/xterm-256-notes/) có thể hữu ích. Bạn có thể thử thiết lập các giá trị '$ TERM' khác và xem liệu đầu ra' tput colors' có thay đổi không. –

+0

Thú vị ... nghi ngờ của tôi về điều đó là cả hai đều nói '8', trong khi vấn đề duy nhất là ở một trong số họ. Vì vậy, có thể có các thuật toán khác nhau để chuyển đổi 'cà chua'? 'echo $ TERM' sản lượng "xterm-color" và khi tôi làm tương tự trên màn hình, nó chỉ hiển thị 'màn hình' ... Đây là nơi tôi thể hiện câm của mình, tôi nghĩ mình đã * sử dụng * terminal, không phải trình mô phỏng . ? – DilithiumMatrix

Các vấn đề liên quan