![](/img/trans.png)
[英]How do I make Emacs dired mode display unicode characters in windows?
[英]Unicode characters in emacs term-mode
我在正常的終端會話中使用ansi-term。 我傾向於在提示符下使用unicode字符來做類似根據所使用的源代碼控件類型設置尾隨字符的操作。
我使用字符“±”作為git存儲庫的提示。
在Emacs的ansi術語中,我的提示未呈現為unicode,而是顯示為“ \\ 302 \\ 261”。 顯示當前的編碼系統表明,該過程的輸入默認為utf-8-unix,但是我得到了原始二進制作為解碼輸出。 我可以按Cc RET p來更改編碼和解碼編碼系統。 我在啟動終端時如何自動設置空白? 我試圖添加到term-mode-hook來將緩沖區的編碼系統設置為無效。 我想我已經找到了我在term.el中尋找的內容,但是我不在乎調整發行版elisp,而且似乎添加了原始二進制文件來修復其他地方的錯誤。
編輯:最初不清楚。 我在為MacOS上的可可化Emacs 23.3下運行的ansi-term設置默認過程編碼系統時遇到問題。 Emacs本身不在終端中運行,我的終端在Emacs中運行。
以下為我工作:
(add-hook 'term-exec-hook
(function
(lambda ()
(set-buffer-process-coding-system 'utf-8-unix 'utf-8-unix))))
ansi-term
似乎忽略了default-process-coding-system
變量,因此在執行我的shell之后,我不得不在本地對其進行設置。
在對term.el
有了更好的了解term.el
,可以進行以下工作:
(defadvice ansi-term (after advise-ansi-term-coding-system)
(set-buffer-process-coding-system 'utf-8-unix 'utf-8-unix))
(ad-activate 'ansi-term)
使用term-mode-hook
嘗試此term-mode-hook
已失敗,因為在term.el中, term-mode-hook
在切換到終端緩沖區之前已被調用,因此set-buffer-process-coding-system
由於缺少與之關聯的進程而中斷緩沖區。
嘗試
(set-terminal-coding-system 'utf-8-unix)
那是Cx RET t
而不是Cx RET p
。
那么Cx RET p
幫助嗎? 除非Ch v default-process-coding-system
是(utf-8-unix . utf-8-unix)
嘗試
(setq default-process-coding-system '(utf-8-unix . utf-8-unix))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.