màu sắc dựa trên biến môi trường $ TERM


9

Tôi muốn biết liệu có thể tạo emacs hay không, khi chạy trong màn hình gnu hoặc phiên tmux, sử dụng các màu giống như khi nào TERM=xterm. Trong màn hình gnu hoặc phiên tmux TERM=screenvà emacs sử dụng một bộ màu khác so với khi nào TERM=xterm.

Ví dụ: khi TERM=xterm-256color, màu nền trước font-lock-comment-facelà 'Firebrick'. Nhưng khi nào TERM=screen-256color, nó được đặt thành 'chocolate1'.

Để tmux hoạt động chính xác, biến TERM phải được đặt thành màn hình hoặc một số dẫn xuất, do đó, việc đặt lại TERM không phải là một tùy chọn đối với tôi.


(Ước gì tôi có thể nhận xét ...) Tôi không rõ nếu bạn đã thử chạy emacs như: TERM=xterm emacsđể buộc TERMcài đặt biến cho emacs. Điều gì xảy ra khi bạn làm điều đó?
verdammelt

Tôi đang thử nghiệm điều đó vào lúc này. Tôi chưa phát hiện ra điều gì xấu xảy ra. Có vẻ như tmux có thể được cấu hình để phát ra các chuỗi khóa xterm (mặc dù TERM = xterm vẫn không được hỗ trợ). Dựa trên Câu hỏi thường gặp về tmux, tmux có thể sẽ hỗ trợ xterm trong tương lai thay vì chỉ màn hình.
ALiX

Câu trả lời:


3

Các định nghĩa vềfont-lock-comment-face bao gồm nhiều biến thể cho các trường hợp khác nhau hỗ trợ màu sắc.

  • Các chocolate1biến thể được sử dụng khi có ít nhất 88 màu sắc có sẵn và “nền” là “đen tối”.
  • Các Firebrickbiến thể được sử dụng khi có ít nhất 88 màu sắc có sẵn và “nền” là “ánh sáng”.

Sự khác biệt là do một số mã mang lại ý nghĩa đặc biệt đối với giá trị HẠN bắt đầu bằng xterm, rxvt, dtterm, và eterm: nó coi họ có một “ánh sáng” nền.

Bạn sẽ có thể tùy chỉnh frame-background-mode* theo lightgiá trị của nó để luôn luôn sử dụng các biến thể màu của ánh sáng.

Nếu Emacs của bạn không đủ mới để có riêng term/screen.el, thì bạn cũng sẽ cần điều chỉnh một cái cho chính mình để thực hiện các cuộc gọi điều chỉnh màu sắc phù hợp. Bạn có thể sử dụng một từ thân cây Emacs hoặc tôi có một Gist bao gồm một .emacs.d/lisp/term/screen.el(có thêm một số bit để nhận ra trình tự sửa đổi + mũi tên / Trang chủ / Kết thúc được cung cấp bởi tùy chọn tmux , s xterm-keys) và .emacssửa đổi cần thiết để tự động tải .

Tất nhiên, vẫn có thể có các bit mã khác kiểm tra trực tiếp giá trị TERM và thực hiện một số thứ khác cho screen- và xtermgiống như các giá trị

* Chế độ khung nền biến đổi tùy chỉnh Mx

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.