Unicode-Zeichen im Emacs-Term-Modus

9

Ich benutze ansi-term für meine normalen Terminalsitzungen. Ich neige dazu, Unicode-Zeichen in meiner Eingabeaufforderung zu verwenden, um z. B. das nachgestellte Zeichen basierend auf dem Typ der von mir verwendeten Quellcodeverwaltung festzulegen.

Ich benutze das Zeichen "±" als meine Eingabeaufforderung für Git-Repositories.

In Emacs 'Ansi-Term wird meine Eingabeaufforderung nicht als Unicode gerendert und als "\ 302 \ 261" angezeigt. Das Anzeigen des aktuellen Codierungssystems zeigt, dass es für die Eingabe in den Prozess auf utf-8-unix voreingestellt ist, aber ich bekomme Rohbinär als Decodierungsausgabe. Ich kann C-c RET p drücken, um das Kodierungs- und Dekodierungscodierungssystem zu ändern. Ich zeichne ein leer, wie ich dies automatisch einstellen, wenn ich ein Terminal starte? Ich habe versucht, zu Term-Mode-Hook hinzuzufügen, um das Kodierungssystem des Puffers ohne Erfolg zu setzen. Ich denke, ich habe gefunden, was ich in term.el suche, aber ich interessiere mich nicht, die Verteilungs elisp zu zwicken, und es scheint, dass die rohe binäre hinzugefügt wurde, um einen Fehler irgendwo anders zu beheben.

BEARBEITEN: Das war ursprünglich unklar. Ich habe Probleme, das Standardcodierungssystem für Ansi-Term unter Cocoaized Emacs 23.3 auf MacOS einzustellen. Emacs selbst läuft nicht in einem Terminal, mein Terminal läuft in Emacs.

    
Matt Erickson 25.07.2011, 17:34
quelle

3 Antworten

8

Nachdem Sie term.el besser verstanden haben, funktioniert Folgendes:

%Vor%

Dies wird mit term-mode-hook versucht, weil in term.el term-mode-hook vor dem Wechsel in den Terminal-Puffer aufgerufen wird. Deshalb bricht set-buffer-process-coding-system ab, weil ein Prozess fehlt, der dem Puffer zugeordnet ist.

    
Matt Erickson 16.09.2011, 08:52
quelle
9

Folgendes funktionierte für mich:

%Vor%

ansi-term scheint die Variable default-process-coding-system zu ignorieren, also musste ich sie nach dem Ausführen meiner Shell buffer-local setzen.

    
David Goodlad 15.09.2011 21:42
quelle
5

Versuchen Sie

%Vor%

Das ist C-x RET t nicht C-x RET p .

Also C-x RET p hilft? Es sei denn, C-h v default-process-coding-system ist (utf-8-unix . utf-8-unix) try

%Vor%     
Michael Markert 25.07.2011 18:04
quelle

Tags und Links