2011-07-12 23 views
6

Tôi đang chạy một quá trình, do lỗi không thành công, xuất ra ký tự '✖' (như được định nghĩa trong Unicode). Tuy nhiên, tôi không thấy lỗi ở tất cả nếu chạy quá trình trong bộ đệm vỏ Emacs (bản phân phối Aquamacs của GNU Emacs).Cách nhận hỗ trợ cho '✖' và các mục tương tự trong bộ đệm vỏ Emacs?

Sử dụng: GNU Emacs 23.3.1 (i386-apple-darwin9.8.0, NS táo AppKit-949,54) của 2011/03/18 trên braeburn.aquamacs.org - Aquamacs Distribution 2.2

Làm thế nào để có được bộ đệm vỏ Emacs để hỗ trợ các ký tự unicode như vậy?

+1

Thật thú vị khi thấy nhân vật này trong tiêu đề câu hỏi, trông giống như hình ảnh được chèn vào :) – takeshin

Trả lời

0

Hãy xem trang này EmacsForMacOS wiki.

+0

Cảm ơn - Tôi cũng đã đưa nó vào. Họ dường như không thay đổi nhiều cho tôi, nhưng tôi sẽ, bây giờ, lấy từ của wiki cho nó. Họ tham gia tuyên bố utf-8 của tệp mà tôi đã có trong một thời gian: (bộ đệm-tệp-mã hóa-hệ thống 'utf-8-unix t) – christopherbalz

7

Để báo cho bộ đệm riêng lẻ xem đầu ra từ vỏ là UTF-8, hãy phát lệnh Cx RET p và nhập "utf-8" khi được hỏi "Hệ thống mã hóa cho đầu ra từ quá trình:" . Khi được hỏi "Mã hóa hệ thống cho đầu vào cho quá trình:", tôi chỉ cần nhập RET; Tôi không bao giờ cung cấp đầu vào UTF-8 trực tiếp vào vỏ.

Cách khác, để tự động thực hiện hành vi này, hãy đặt (prefer-coding-system 'utf8) vào tệp .emacs của bạn. Trên thực tế, điều đó sẽ khiến UTF-8 được sử dụng trong một số ngữ cảnh khác, đó là điều mà hầu hết mọi người có thể muốn.

+0

hmm, nếu tôi muốn áp dụng mã hóa cụ thể cho vỏ? là (thích-mã hóa-hệ thống 'utf8) vẫn còn thích hợp? hoặc thu hẹp nó xuống? – zinking

3

Bạn có thể gọi một chức năng như một sau để tạo ra một lớp vỏ có hỗ trợ utf-8:

(defun utf8-shell() 
    "Create Shell that supports UTF-8." 
    (interactive) 
    (set-default-coding-systems 'utf-8) 
    (shell)) 

này đặt cả đầu vào và đầu ra sang UTF-8 để bạn có thể làm (ví dụ) như sau :

~ $ echo "✖" 
✖ 

Nếu bạn muốn chắc vỏ luôn cởi mở với utf-8 hỗ trợ, bạn có thể làm như sau thay vì:

(defadvice shell (before advice-utf-shell activate) 
    (set-default-coding-systems 'utf-8)) 

(ad-activate 'shell) 
+0

Cảm ơn mọi người. Thay đổi duy nhất cố định vấn đề của tôi là utf8-shell 'defun'. Tôi muốn hàm đó được đặt tên chỉ là 'shell cũ' đơn giản, nhưng điều này dẫn đến lỗi khi tôi cố gắng chạy nó. Bây giờ tôi đã định cư trên 'u-shell'. – christopherbalz

+0

Nếu bạn không phản đối việc có hành vi này mỗi khi bạn gọi hàm shell, bạn có thể tham khảo chức năng trình bao. Tôi đã sửa đổi câu trả lời của mình để bao gồm mã ví dụ defadvice thực hiện điều này. – zev

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