2009-03-26 22 views
8

Khi tôi chạy emacs -nw trong một cửa sổ X terminal, và tôi yêu cầu M-x list-colors-display, tôi đang cung cấp một bảng ít ỏi:Làm cách nào để thiết lập thiết bị đầu cuối Linux X của tôi để Emac có quyền truy cập 256 màu?

black              
red  
green 
yellow 
blue 
magenta 
cyan 
white 

Tôi nói với nó có thể để có được 265 màu sắc. Đặt biến môi trường TERM thành xterm-256color không thực hiện công việc. Gì vậy?

Trả lời

4

Theo số this bạn cần ncurses-term thư viện ngoài việc đặt TERM thành xterm-256color.

Okay, this có một số thứ khác để thử như:

The xterm in Ubuntu Edgy does not advertise 256 color support by 
default. To fix this you need to install a 256 color terminfo entry, 
and tell xterm to use it: 

    apt-get install ncurses-term 
    echo XTerm.termName: xterm-256color \ 
     >>~/.Xdefaults 
    xrdb -merge ~/.Xdefaults 

và:

So you need a file term/screen-256color.el in your load-path. Emacs 
22 expects it to contain a terminal-init-screen defun. Emacs 21 
expects it to contain a bunch of top-level forms. Here's what I use: 

    ;;; This is for GNU Emacs 22 
    (defun terminal-init-screen() 
     "Terminal initialization function for screen." 
     ;; Use the xterm color initialization code. 
     (load "term/xterm") 
     (xterm-register-default-colors) 
     (tty-set-up-initial-frame-faces)) 

    ;;; This is for GNU Emacs 21 
    (if (= 21 emacs-major-version) 
     (load "term/xterm-256color")) 

For Emacs 21, you also need to install the xterm-256color.el file from 

    http://www.splode.com/~friedman/software/emacs-lisp/src/term/xterm-256color.el 
+0

Khi thử nghiệm Debian, 'tput colors' hiển thị 256 nhưng emacs chỉ thấy 8. Emacs 22 có cần thiết không? (Nó có lỗi nghiêm trọng khiến tôi không thể sử dụng nó.) –

+0

Không phải là 'XTerm * termName' - tức là với một' * 'giữa' XTerm' và 'termName' thay vì' .' trong trường hợp của bạn? – amn

0

Khi tôi googled này, tôi có ấn tượng rằng hầu hết các distro không cho phép 256 hỗ trợ màu sắc trong bộ giả lập thiết bị đầu cuối đóng gói.

Tôi nghi ngờ nếu bạn tiếp tục tìm kiếm bạn có thể đi đến cùng một kết luận mà tôi đã làm. Câu trả lời hay nhất là tải xuống urxvt và tự biên dịch với tất cả các chuông và còi được bật.

Tôi đã sử dụng vim, vì vậy có thể có các phụ thuộc/gotchas khác là emacs cụ thể, nhưng tôi khá chắc chắn rằng một thiết bị đầu cuối hỗ trợ 256 màu là quan trọng.

+0

Người dùng Debian có quyền truy cập thông qua gói rxvt-unicode. –

+0

màu tput hiển thị 88 màu, nhưng emacs chỉ thấy 8 –

+0

Nhưng nó được biên dịch với 256 màu hỗ trợ? –

3

Đặt TERM thành xterm-256color những gì bạn muốn làm. Ngoài ra, Emacs 22 (ít nhất) không cần bất kỳ cấu hình đặc biệt nào từ tôi để hiển thị 256 màu. Xem trang này related question. Với gói ncurses-term được cài đặt, tôi đã có thể nhận 256 màu trên Emacs bằng cách sử dụng vanilla xterm đi kèm với phiên bản Ubuntu (Interpid, trong trường hợp này, nhưng tôi đoán nó sẽ ổn trên các phiên bản trước). Tôi cũng có 256 màu bằng cách sử dụng Gnome Terminal, Konsole và PuTTY, cho những gì đáng giá.

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