Meus amigos me persuadiram a "tentar novamente" (cerca da quinta vez em cerca de 12 anos) com o emacs. Atualmente estou sofrendo um pouco e preciso de ajuda com o emacs + utf-8.
Estou executando o 23.3.1 emacs gui no Windows 7 com o meu próprio layout de teclado personalizado (criado com o MS Keyboard Layout Creator). O layout tem um conjunto completo de caracteres ISO-8859-1 (Latin-1), além de alguns caracteres adicionais de ISO-8859-9 (Latin-5, ğış etc para turco) e ŵ para galês (não sei onde esse vidas).
Em meus .emacs, eu adicionei (cegamente) estas linhas:
(Update: aqui está a última bagunça em evolução :)
;; 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)
Agora, quando eu insiro caracteres do ISO Latin-1 do teclado, eles são aceitos sem problemas, mas os caracteres de fora do Latin-1 são "traduzidos" para um caractere aproximado no Latin-1. Assim, por exemplo, o Latin-5 "" é convertido em um "g" simples.
Cortar e colar, no entanto, funciona bem.
Alguém pode me dizer o que estou fazendo errado? Eu gostaria de fazer tudo que eu faço com o emacs utf-8 com BOM.
Respostas:
Isso parece ser um problema de página de códigos (e, portanto, específico do Windows) porque o Emacs usava internamente APIs antigas do Windows que só podiam retornar caracteres que pertenciam à sua página de código (portanto, o Windows se
ğ
tornava simplesg
antes de passá-lo para o Emacs).AFAIK isso não é mais o caso no novo Emacsen (agora usamos APIs mais novas que usam algum tipo de Unicode, provavelmente UTF-16).
fonte
Meu emacs diz que o set-language-environment usa uma string, não um símbolo.
O uso do utf-16 para o sistema de codificação do teclado funciona?
fonte
set-language-environment "UTF-8"
não tem efeito, enquanto(set-keyboard-coding-system 'utf-16)
dá "erro: Sistema de codificação inadequado para teclado: utf-16"na minha caixa linux, eu posso digitar grego, francês (acentos) e espanhol (ñ) no emacs com apenas estas linhas em meus .emacs:
fonte
Eu adicionei no começo do meu
init.el
:E aceita minhas entradas espanholas.
fonte