O que há de errado com '(add-to-list' processo-codificação-sistema-alist '(“zsh”. utf-8))'?

4

No Emacs, eu costumo usar um shell inferior, chamado com M-x shell . Eu frequentemente preciso definir especificamente seu sistema de codificação, o que eu faço com C-x RET p seguido por utf-8 (duas vezes).

Eu quero fazer isso de uma vez por todas no meu arquivo .emacs. A documentação diz que o sistema de codificação padrão para shells iniciado via M-x shell vem de process-coding-system-alist . Depois de consultar a documentação para esta variável, eu tentei

(add-to-list 'process-coding-system-alist '("zsh" . utf-8))

... desde que zsh é meu shell padrão. (De acordo com os documentos, o primeiro elemento do par adicionado é interpretado como uma regex correspondente ao nome do programa shell, portanto a string mostrada acima deve funcionar.)

Isso, no entanto, falha em produzir o resultado desejado. (Por exemplo, alguns caracteres não são exibidos corretamente no stdout em um *shell* recém-iniciado; no entanto, esses caracteres são exibidos corretamente quando eu executo C-x RET p , etc., conforme descrito acima. Isso significa que, seja qual for o comando add-to-list fazendo, não está fazendo o que eu quero fazer.)

A minha pergunta é simples, porque não '

(add-to-list 'process-coding-system-alist '("zsh" . utf-8))

trabalho?

NB: pode haver outras maneiras de alcançar o mesmo resultado, mas aqui estou especificamente interessado em entender por que o que tentei não funcionou e corrigi-lo.

    
por kjo 15.05.2012 / 02:24

1 resposta

0

Não tenho certeza sobre isso e realmente não tenho como replicá-lo, mas você não está perdendo parênteses, em torno do utf-8?

(add-to-list 'process-coding-system-alist '("zsh" . (utf-8)))
    
por 15.09.2012 / 15:01