2010-10-02 26 views
5

Tôi thấy một câu trả lời ở đây làm thế nào để bắt đầu vỏ Cygwin. Tuy nhiên, đầu ra shell Cygwin bị rối tung lên.vỏ Cygwin trong Emacs - đầu ra bị hỏng?

(defun cygwin-shell() 
    "Run cygwin bash in shell mode." 
    (interactive) 
    (let ((explicit-shell-file-name "C:/cygwin/bin/bash")) 
    (call-interactively 'shell))) 
(setq explicit-bash-args '("--login" "-i")) 

và đây là một đầu ra mẫu của vỏ

]0;~ 
[email protected] ~ 
$ cd ~ 
]0;~ 
[email protected] ~ 
$ dir 
]0;~ 
[email protected] ~ 

như người ta có thể thấy, đầu ra là hơi say lên. Làm thế nào để tôi sửa lỗi này?

chỉnh sửa: tôi vừa nhận thấy^[] 0 luôn xuất hiện ở cuối mỗi lệnh \ văn bản đầu ra khác hoạt động tốt. Dù sao để thoát khỏi kết thúc này?

Trả lời

4

Được rồi, tôi đã hiểu điều này. trong ~/.bashrc, tôi đã thêm

export PS1="\e[0;31m[\[email protected]\h \W]\$ \e[m " 

điều này làm cho cửa sổ màu đỏ trong dòng đơn (đó là dễ dàng trên mắt vs màu vàng ở dấu nhắc Cygwin gốc!)

thấy http://www.cyberciti.biz/faq/bash-shell-change-the-color-of-my-shell-prompt-under-linux-or-unix/

Ngoài , bạn phải chắc chắn rằng bạn không sử dụng kết thúc dos. Để chuyển đổi dos kết thúc để unix, loại C-x RET f unix và tiết kiệm hoặc nơi khác trong emacs nộp

(set-buffer-file-coding-system 'unix) 
2

Nhìn vào EmacsW32. Với cấu hình .emacs của bạn trở thành

(setq w32shell-cygwin-bin "c:\\cygwin\\bin") 
    (require 'w32shell) 
    (w32shell-add-emacs) 
    (w32shell-set-shell "cygwin") 

và mọi thứ hoạt động.

2

Trong Emacs 24.2, tôi phải đặt dòng export PS1=... từ câu trả lời của Seth (2) trong ~/.emacs_bash thay vì trong ~/.bashrc.

1

Sử dụng

export PS1="\e[0;32m\[email protected]\h\e[m \e[0;33m\w\e[m\n\$ " 

Nếu bạn muốn giữ màu sắc ban đầu và định dạng.