2014-09-13 14 views
7

Có thể sử dụng các màu trong dấu nhắc trình bao Emacs (dấu nhắc chính nó, không phải phần còn lại của màn hình vỏ) với biến bash PS1 không? Tôi tin rằng tôi có cú pháp chính xác (ví dụ: PS1='[\[email protected]\h \[\e[0;31m\]\W\[\e[m\]]\$ ' - nó hoạt động trong thuật ngữ hoặc thuật ngữ ansi), nhưng có vẻ như Emacs đang áp dụng khuôn mặt nhanh chóng nổi bật. Tôi có thể thiết lập màu sắc đó, và nó hoạt động, nhưng tôi muốn có thể thiết lập các phần riêng biệt của dấu nhắc cho các màu khác nhau. Tôi thích sử dụng shell over term hoặc ansi-term, vì vậy tôi không muốn chuyển đổi.Màu sắc trong dấu nhắc trình bao Emacs

Cảm ơn.

Trả lời

6

Đã tìm ra: Mặt comint-highlight-prompt được đặt thành kế thừa từ minibuffer-prompt, được đặt :weight, :foreground:background. Việc loại bỏ thừa kế đã ngăn các màu được đặt trong PS1 bị ghi đè bởi khuôn mặt comint-highlight-prompt. Đã thêm tệp này vào tệp .emacs của tôi.

(set-face-attribute 'comint-highlight-prompt nil 
        :inherit nil) 

Ngoài ra, M-x customize-group <ret> font-lock-faces hữu ích trong việc tìm hiểu điều này.

+0

Điều đó sẽ không hoạt động trong Ubuntu 16.04 sử dụng Emacs 24.5 do lỗi Emacs https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20084 đã được sửa trên git: //git.sv.gnu .org/emacs.git tại cam kết 792d44b3c31d2a682607ab8b79ae7d26b7402f41. Để giải pháp của bạn hoạt động, hãy sử dụng https://www.gnu.org/software/emacs/manual/html_node/elisp/Hooks-for-Loading.html với "comint" để sửa "comint-snapshot-last-prompt" và "comint-output-filter" và với "font-lock" để thêm "font-lock - remove-face-from-text-property". –

0

tôi sử dụng để thay đổi màu sắc và thiết bị đầu cuối thông tin trong mac, có lẽ có thể giúp:

Cyan="$(tput setaf 6)" 
NC="$(tput sgr0)" # No Color 
export PS1="$Cyan.Where-> \w\n\\$\[$NC\]" 
+0

Xin cảm ơn, nhưng nó vẫn được đặt thành khuôn mặt nhanh chóng làm nổi bật. Tôi đã thử làm '(set-face-foreground 'comint-highlight-prompt nil)' trong tập tin .emacs của tôi, nhưng dấu nhắc vẫn được thiết lập cho tất cả cyan. –

-1

Bạn sẽ cần phải sử dụng ansi hạn chứ không phải là vỏ cho màu sắc thiết bị đầu cuối.

+1

Vâng, tôi có màu sắc thiết bị đầu cuối trong vỏ, tôi chỉ không thể kiểm soát chúng cho các dấu nhắc với PS1 (hoặc một số phương pháp khác). –

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