Wie vermeidet man Pop-up von * Async Shell Command * Puffer in Emacs?

8

My ~/.emacs enthält die folgenden Einstellungen zum Öffnen bestimmter Dateien mit bestimmten Anwendungen (Ubuntu 12.10; Emacs 24):

%Vor%

Wenn ich in dired-mode zu einem .pdf navigiere und ! drücke, öffnet sich das .pdf in Okular, aber der dired-buffer ist in zwei Teile aufgeteilt, der zweite ist jetzt ein nutzloser *Async Shell Command* buffer Inhalt wie

enthalten %Vor%

Wie kann ich verhindern, dass dieser Puffer geöffnet wird? (außer vielleicht, wenn es einen Fehler gab und diese Information nützlich ist).

Ich habe verwandte Fragen hier und hier , aber Sie scheinen sich mit bestimmten Befehlen zu befassen, die asynchron ausgeführt werden, anstelle von *Async Shell Command* im Allgemeinen (wenn möglich, möchte ich das Verhalten im Allgemeinen für asynchrone Prozesse ändern, nicht nur für bestimmte Dateitypen)

    
Marius Hofert 16.12.2012, 13:52
quelle

7 Antworten

8

hier gefunden:

%Vor%

Funktioniert für mich. Kein stderr Kauderwelsch.

    
Jackson 10.04.2014 08:21
quelle
2

Leider gibt es keine gute Möglichkeit, diesen Puffer zu umgehen, da er direkt von der Shell-Befehl-Funktion aufgerufen wird (async-Shell-Befehl ist nur ein Wrapper).

Also, ein viel besserer Weg ist, 'async-shell-command' durch ' Start-Prozess ". Du solltest den Prozess mit ' set-process-sentinel starten, um es zu erkennen der Moment, in dem der Prozess "Ausstiegssignal" ausgibt. Dann kill Prozess.

    
neutrico 29.04.2015 18:39
quelle
1

Ich bin mir nicht ganz sicher, ob ich es für asynchrone Prozesse im Allgemeinen tun soll, aber für alles, was async-shell-command durchläuft, sollte das funktionieren:

%Vor%     
Dan LaManna 17.12.2012 03:53
quelle
1

Die Frage wurde 2012 gestellt, und zum Zeitpunkt meines Schreibens ist die letzte Antwort 2015. Jetzt, im Jahr 2017, kann ich sagen, dass die Antwort einfach ist:

(add-to-list 'display-buffer-alist (cons "\*Async Shell Command\*.*" (cons #'display-buffer-no-window nil)))

    
user1404316 01.12.2017 05:29
quelle
0

Eine etwas kompliziertere Beschwörung sollte dir das bringen, was du willst. Verwenden Sie einfach einen Shell-Befehl wie: (okular ? >& /dev/null &) .

Ich habe dies nicht mit okular getestet, aber ich kann M -! ((echo foo; sleep 10; echo bar) >& /dev/null &) und Emacs kehrt sofort zurück, ohne einen neuen Puffer zu erstellen.

    
Sean 17.12.2012 15:15
quelle
0

Ich habe das Problem mit dieser Methode gelöst:

%Vor%     
user4035 03.10.2013 11:04
quelle
0

Ich hucke die Antwort von user1404316 aus, aber hier ist ein weiterer allgemeiner Weg, um das gewünschte Ergebnis zu erreichen.

%Vor%     
Emmanuel Denloye-Ito 20.12.2017 16:29
quelle

Tags und Links