Werten Sie den Emacs-Lisp-Ausdruck in der Befehlszeile aus

8

Ich bin ein Neuling für Emacs. Ich arbeite mit emacs-24.1 auf redhat linux und versuche einen elisp-Ausdruck auszuwerten. Was ich Emacs tun soll, ist, den elisp-Ausdruck zu bewerten, ohne Emacs selbst zu starten. Ich probiere verschiedene Sachen aus

%Vor%

Ich weiß nicht, ob Emacs den Ausdruck auswertet, aber das Ergebnis wird nicht auf der Konsole angezeigt, und das Emacs-Fenster erscheint. Als nächstes habe ich das versucht

%Vor%

Emacs-Client erwartet einen Server. Es konnte den Server nicht finden und daher einen Fehler werfen (Socket nicht finden. Server starten etc). Also habe ich einen Server gestartet (server-name ist SERVER) und habe den emacsclient erneut gestartet.

%Vor%

Diesmal hat emacs den Ausdruck ausgewertet und das Ergebnis auf der Konsole ausgedruckt. Das liegt daran, dass Emacs den vorhandenen Server zum Auswerten des Ausdrucks verwendet. Jetzt bekomme ich ein Problem, wenn der Server nicht läuft.

%Vor%

Dieses Mal erhalte ich keinen Fehler auf der Konsole. Emacs startet ein neues Fenster wegen -a (mein .emacs hat (server-start) -Befehl darin und Servername ist auf ANOTHER_SERVER gesetzt). Aber Emacs versucht dann, die Datei zu bearbeiten (+ 2 3). Es wird in der Moduszeile angezeigt. Ich bin verwirrt. emacsclient --help hat mir das gezeigt.

%Vor%

und emacs Handbuch sagt das.

%Vor%

Ich weiß nicht, wie ich weitermachen soll. Wie gesagt, mein Ziel ist es, einen elisp Ausdruck auszuwerten, ohne Emacs zu starten. Ist es möglich?

    
Surya 13.07.2012, 16:44
quelle

2 Antworten

9

Nach ein paar Tests sieht es so aus, als könnten Sie --batch verwenden, damit emacs alle Nachrichten an stderr ausgibt. Dann können Sie message aufrufen, um Dinge in stderr zu drucken, wo Sie sie sehen können. Ihr Beispiel würde emacs --batch --eval '(message (number-to-string (+ 2 3)))' und das Ergebnis würde nach stderr gedruckt werden.

Wenn Sie versuchen, die Ausgabe in eine Datei umzuleiten, müssen Sie stderr anstelle von stdout umleiten, indem Sie 2> anstelle von nur > verwenden.

    
Randy Morris 13.07.2012, 17:02
quelle
8

Versuchen Sie

%Vor%     
Keith Flower 13.07.2012 17:16
quelle

Tags und Links