6

Мои друзья убедили меня "попробовать еще раз" (примерно в 5 раз за 12 лет) с emacs. В настоящее время я немного страдаю, и мне нужна помощь с emacs + utf-8.

Я использую 23.3.1 emacs gui на Windows 7 со своей собственной раскладкой клавиатуры (созданной с помощью MS Keyboard Layout Creator). Макет имеет полный набор символов ISO-8859-1 (Latin-1), а также некоторые дополнительные символы из ISO-8859-9 (Latin-5, ğış и т.д. Для турецкого) и ŵ для валлийского (не знаю, где это тот жизни).

В моем .emacs я (вслепую) добавил эти строки:

(Обновление: вот последний развивающийся беспорядок :)

;; set up unicode
;; keyboard / input method settings
(setq locale-coding-system 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-selection-coding-system 'utf-8)
(set-language-environment 'UTF-8) ; prefer utf-8 for language settings
(set-default-coding-systems 'utf-8)
(setq default-buffer-file-coding-system 'utf-8)
(setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING))
(prefer-coding-system       'utf-8)
(setq buffer-file-coding-system 'utf-8-unix)
(setq default-file-name-coding-system 'utf-8-unix)
(setq default-keyboard-coding-system 'utf-8-unix)
(setq default-process-coding-system '(utf-8-unix . utf-8-unix))
(setq default-sendmail-coding-system 'utf-8-unix)
(setq default-terminal-coding-system 'utf-8-unix)

Теперь, когда я ввожу символы из ISO Latin-1 с клавиатуры, они принимаются без проблем, но персонажи из - за пределов Latin-1 являются "переведены" на приближенный характер в Latin-1. Так, например, Latin-5 "ğ" преобразуется в обычное "g".

Резка и вставка, однако, работают нормально.

Может кто-нибудь сказать мне, что я делаю не так? Я хотел бы сделать все, что я делаю с Emacs UTF-8 с BOM.

4 ответа4

0

Кажется , что это была проблема кодировки (и , следовательно , специфичной для Windows) , поскольку Emacs внутренне использовала старые Windows API , которые могут возвращать только символы , которые принадлежат к вашей кодовой странице (отсюда Windows , оказалась ğ в обычный g перед передачей его в Emacs).

AFAIK, это не относится к новым Emacsen (теперь мы используем более новые API, которые используют какой-то Unicode, возможно, UTF-16).

0

на моем компьютере с Linux я могу набирать греческий, французский (акценты) и испанский (ñ) в emacs, используя только эти строки в моем .emacs:

;; Set encoding
(prefer-coding-system 'utf-8)
(setq coding-system-for-read 'utf-8)
(setq coding-system-for-write 'utf-8)
0

Я добавил в начале моего init.el:

(require 'iso-transl)

И он принимает мой испанский вклад.

0

Мой emacs говорит, что set-language-environment принимает строку, а не символ.

(set-language-environment "UTF-8")

Работает ли использование utf-16 для системы кодирования клавиатуры?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .