2014-06-27 12 views
5

Die neuen verschönern-Symbole-Modus in Emacs funktioniert wunderbar für die Übersetzung:Aktivieren Sie den Emacs-Prettify-Symbols-Modus für nicht durch Leerzeichen getrennte Wörter.

Leider
lambda.something -> λsomething 

, prettify-Symbole-Modus erkennt nur Leerzeichen als Wort:

lambda something -> λ something 

ich auch machen möchten/Symbol Trennzeichen standardmäßig.

Irgendwelche Ideen zur Verwendung von '.' als Token-Trennzeichen?

+0

ich recht-Modus und dieses Verhalten ist standardmäßig, vielleicht nur wechseln dazu. Welche Sprache verwendest du? –

+0

@JordonBiondo, das ist eine nette Option, aber 'prettify-symbols-mode' hat den Vorteil, in Emacs eingebaut zu werden (seit Version 24.3, denke ich). – Chris

+0

Ja. Ich würde gerne den Modus "hübsch-Symbole" behalten, da er mit Emacs (jetzt) ​​ausgeliefert wird und sehr stabil aussieht. Ich hatte Probleme mit dem Pretty-Symbols-Modus, obwohl ich den Pretty-Mode nicht ausprobiert habe. Um Jordons Frage zu beantworten, beabsichtige ich, die Methode "self.method" in Python visuell auf etwas Ähnliches zu komprimieren. – Jarpy

Antwort

2

Dank Lindydancer, landete ich dies bis zu tun:

(add-hook 'python-mode-hook 
      (lambda() 
      (push '("self" . ?◎) prettify-symbols-alist) 
      (modify-syntax-entry ?. "."))) 

, die in einem vernünftigen Kompromiss Ausgabeergebnisse:

◎.method 
2

Der Code, der die tatsächliche Ersetzung durchführt, ist prettify-symbols--compose-symbol in prog-mode.el. Es schließt Übereinstimmungen aus, wenn das Zeichen vor oder nach dem Wort den Zeichen- typ Wort oder Symbol hat. In vielen Modi, zum Beispiel emacs-lisp-mode, hat das . Zeichen den Symboltyp.

Sie können entweder die Syntax-Code für . im Hauptmodus ändern, man könnte font-lock anweisen, einen anderen Zeichencode zu verwenden, wenn (siehe Variable font-lock-defaults für weitere Details) markieren, oder Sie können auf dem prettify-symbols--compose-symbol Modus Ju-Jutsu tun wie es mit defadvice ändern oder ersetzen Sie es einfach durch Ihre eigenen.

Verwandte Themen