2010-05-25 7 views
24

Je viens d'essayer d'enregistrer un fichier .rtf simple * avec certains sites Web et des conseils sur la façon d'utiliser emacs et je suis arrivéQuel système de codage devrais-je utiliser dans Emacs?

Ces systèmes de codage par défaut ont été essayé de coder du texte dans le tampon `notes. rtf ': (iso-latin-1-dos (315 8216) (338 8217) (1514. 8220) (1525 8221)) Cependant, chacun d'eux a rencontré des caractères qu'il ne pouvait pas encoder: iso -latin-1-dos ne peut pas coder ceux-ci: '' ""
....
etc., etc., etc

Maintenant qu'est-ce que c'est? Maintenant, il me demande de choisir un système de codage

Sélectionnez le système de codage (par défaut chinois-iso-8bit):

Je ne sais même pas ce qu'est un système de codage est, et je Je n'ai pas à en choisir une à chaque fois que j'essaie de sauvegarder un document ... Y a-t-il un moyen de définir un système d'encodage qui fonctionne avec tous mes fichiers, donc je n'ai pas à m'inquiéter de ça?

je vis une autre question et asnswer ailleurs dans ce site (see it here) et il semble que si je tapez la commande suivante

(defun set-coding system() (setq buffer-file-coding système 'utf-8-unix)) (add-hook ' find-file-hook « set-coding-system)

alors je peux avoir Emacs faire cela, mais je ne suis pas sûr ... Quelqu'un peut-il me confirmer cela?

+4

Rien n'est simple dans Emacs - c'est la leçon 1. – harpo

+5

ha, je m'en rends compte. Quand j'ai dit au coordinateur de doctorat que j'essayais d'apprendre Emacs, il a dit: Emacs est un choix de vie.J'ai accepté et dit que si je dois faire un choix de vie, il n'y a pas de meilleur moment que maintenant. Mais oui, les choses sont plutôt difficiles. Hier encore, j'ai trouvé une personne dans le département qui utilise Emacs, mais malheureusement je ne peux pas m'attendre à ce qu'il (ou n'importe qui) s'assoie avec moi pendant des heures pour que ça marche. Ce site a été d'une grande aide :) J'espère qu'un jour je serai en mesure d'aider les autres de la même manière que les autres m'ont aidé! – Vivi

+3

D'accord - et je vous félicite pour cela. Je pourrais seulement faire cette remarque parce que j'ai juste fait le même choix de vie. Mais je suis sur le point d'être père, aussi, nous verrons ce qui a préséance :) – harpo

Répondre

31

Voici un joli groupe complet d'invocations magiques pour faire Emacs utiliser partout UTF-8 par défaut:

(setq utf-translate-cjk-mode nil) ; disable CJK coding/encoding (Chinese/Japanese/Korean characters) 
    (set-language-environment 'utf-8) 
    (set-keyboard-coding-system 'utf-8-mac) ; For old Carbon emacs on OS X only 
    (setq locale-coding-system 'utf-8) 
    (set-default-coding-systems 'utf-8) 
    (set-terminal-coding-system 'utf-8) 
    (unless (eq system-type 'windows-nt) 
    (set-selection-coding-system 'utf-8)) 
    (prefer-coding-system 'utf-8) 
+6

Sous Windows, il est préférable d'éviter' (set-selection-coding-system 'utf-8) 'car il modifie le comportement du presse-papier dans Emacs. 'selection-coding-system' (aka' clipboard-coding-system') sur Windows devrait être '' utf-16-le' (la valeur par défaut) afin de permettre à Emacs de coopérer avec d'autres programmes Unicode – Rufflewind

+0

Si vous laissez emacs dans une machine virtuelle Linux et que vous copiez du texte depuis Windows, la fonction à moins (deux lignes) fera apparaître le texte comme chinois ... si vous laissez set-selection-coding-system comme nul, Emacs essaiera d'interpréter le des données en fonction de ce qui se trouve dans le presse-papiers, ce qui est généralement mieux. – AdamC

6

Vous devez utiliser UTF8; il peut gérer tous les personnages que vous aurez jamais besoin

+0

Donc si je mets (defun set-coding-system() (setq tampon-fichier-codage-système 'utf-8-unix)) (add-hook 'find-file-hook' set-coding-system) dans mon fichier .emacs mon problème sera-t-il résolu? Merci! – Vivi

+0

Je ne peux même pas définir le système de codage maintenant. Lorsque j'essaie de répondre à la question sur le système de codage, il est dit: «le texte est en lecture seule» :(Je n'ai jamais senti aussi analphabètes que l'ordinateur – Vivi

+0

OK, j'ai trouvé une bonne réponse: Q: «Comment choisir un "-> A:" Choisissez le menu "Options‣Mule (Environnement multilingue)" Définir l'environnement de la langue ".Après cela, assurez-vous de tirer le menu" Options‣Save Options "pour enregistrer le réglage dans votre fichier d'initialisation emacs. " Yay! Thanks – Vivi

0

Juste au cas où il peut compléter les commentaires de Vivi sur La réponse de SLacks, à propos de "Comment choisir en permanence un système d'encodage dans emacs pour l'ouverture et la sauvegarde?", Voici une façon de choisir le système de codage en permanence et pour un seul fichier: Ecrivez -*- coding: NAME OF THE CODING SYSTEM -*- tout en haut du fichier, où vous devez spécifier «NOM DU SYSTÈME DE CODAGE».

Vous pouvez trouver le nom d'un système de codage en tapant M-x list-coding-systems <RET>. Des informations sur un système de codage peuvent être obtenues en tapant C-h C NAME OF THE CODING SYSTEM <RET>.

Tout ce que je mentionne ici est expliqué dans le manuel Emacs, bien sûr.

Notez que vous pouvez définir le mode pour un fichier spécifique de la même manière que le système de codage, mettez simplement -*- mode: NAME OF THE MODE -*- en haut du fichier.