Как получить поддержку '✖' и т.п. в буфере оболочки Emacs? - PullRequest
6 голосов
/ 12 июля 2011

Я запускаю процесс, который при неудачной ошибке выводит символ «✖» (как определено в Unicode). Однако я не вижу ошибки вообще, если запуск процесса в буфере оболочки Emacs (дистрибутив Aquamacs из GNU Emacs).

Использование: GNU Emacs 23.3.1 (i386-apple-darwin9.8.0, NS apple-appkit-949.54) от 2011-03-18 на braeburn.aquamacs.org - Распределение Aquamacs 2.2

Как получить буфер оболочки Emacs для поддержки таких символов Юникода?

Ответы [ 3 ]

7 голосов
/ 13 июля 2011

Чтобы указать отдельному буферу оболочки обрабатывать выходные данные оболочки как UTF-8, введите команду Cx RET p и введите "utf-8", когда ее спросят "Система кодирования для вывода изпроцесс: ".Когда меня спросили «Система кодирования для ввода в процесс:», я просто набрал RET ;Я никогда не предоставляю ввод UTF-8 непосредственно в оболочку.

В качестве альтернативы, чтобы получить это поведение автоматически, поместите (prefer-coding-system 'utf8) в ваш файл .emacs.На самом деле, это приведет к тому, что UTF-8 будет использоваться и в некоторых других контекстах, а это то, что большинство людей, вероятно, хотели бы.

4 голосов
/ 13 июля 2011

Вы можете вызвать функцию, подобную следующей, чтобы создать оболочку, которая поддерживает utf-8:

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

Это устанавливает и UTF-8, и ввод и вывод, так что вы можете (например) выполнитьследующее:

~ $ echo "✖"
✖

Если вы хотите, чтобы оболочка всегда открывалась с поддержкой utf-8, вы можете сделать следующее:

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

(ad-activate 'shell)
0 голосов
/ 12 июля 2011

Загляните на эту EmacsForMacOS вики-страницу.

...