Các triệu chứng của vấn đề trông giống như "[0m [27m [24m [J [34; 1" mà trên một thiết bị đầu cuối dịch sang màu xanh lam.Làm thế nào để chế độ vỏ Emacs hiển thị (hoặc bỏ qua) màu của tôi thay vì in mã ASCII?
-A
Các triệu chứng của vấn đề trông giống như "[0m [27m [24m [J [34; 1" mà trên một thiết bị đầu cuối dịch sang màu xanh lam.Làm thế nào để chế độ vỏ Emacs hiển thị (hoặc bỏ qua) màu của tôi thay vì in mã ASCII?
-A
Các giải pháp mà hiện tại đang đem lại cho tôi một số thành công là để xác định lại chức năng vỏ như một thuật ngữ ansi:
;; shell-mode
(defun sh()
(interactive)
(ansi-term "/bin/zsh"))
Sau đây nên làm việc trong .bash_profile của bạn hoặc .bashrc
case $TERM in
xterm-color)
export PS1='\[\e]0;\W\007\]\[\e[34;1m\]\W\[\e[0m\]\$ '
;;
*)
export PS1='\W\$ '
;;
esac
Tôi đã có những điều sau đây tôi .emacs
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
Các autoload là không cần thiết trong phiên bản gần đây của Emacs (nó được tự động tải theo mặc định). – cjm
Điều này đã giúp, (màu xanh xuất hiện) tuy nhiên một số mã điều khiển ASCII vẫn xuất hiện trong bộ đệm. Không có nghi ngờ có một hoặc nhiều chi tiết để kết hợp với giải pháp này. – SetJmp
Tôi nghĩ rằng câu trả lời này là nhận được upvotes phản ánh rằng nó đang làm việc trên một số nền tảng phổ biến cho người dùng stackoverflow. Nhưng xem thêm câu trả lời được chấp nhận. – SetJmp
Đối với "bỏ qua" thay thế , hãy đặt một cái gì đó như "alias ls=ls
" hoặc "unset LS_COLORS
" trong tệp ~/.emacs_{bash,tsch,whatever-your-shell-is-called}
của bạn. Tệp này được thực hiện trong tất cả các shell cấp dưới được tạo bởi các emacs.
Emacs gửi vỏ mới nội dung của tập tin
~/.emacs_shellname
như đầu vào, nếu nó tồn tại, nơishellname
là tên của tập tin mà vỏ đã được nạp từ. Ví dụ: nếu bạn sử dụng bash, tệp được gửi tới đó là~/.emacs_bash
. Nếu không tìm thấy tệp này, Emacs sẽ cố gắng dự phòng trên~/.emacs.d/init_shellname.sh
.
Một biết thêm chút ít về cấu hình của tôi: zsh + GNU emacs – SetJmp