2008-11-01 15 views

Trả lời

2

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")) 
+1

Đây là một ý tưởng hay. Nó cũng giải quyết sự không tương thích của chế độ shell với các lệnh như nhiều hơn/ít hơn và con người. –

+3

Làm mờ lệnh shell "thực". Sử dụng thuật ngữ hoặc ansi-term trực tiếp thay vì ẩn chế độ shell đơn giản. – remvee

+1

Sửa lỗi đổ bóng. – SetJmp

0

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 
32

Tôi đã có những điều sau đây tôi .emacs

(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on) 
+0

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

+1

Đ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

+0

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

1

Đố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ơi shellname 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.