Mein ~/.emacs
enthält die folgenden Einstellungen für bestimmte Dateien mit bestimmten Anwendungen (Ubuntu 12.10; Emacs 24) zu öffnen:Wie vermeidet man Pop-up von * Async Shell Command * Puffer in Emacs?
(setq dired-guess-shell-alist-user
'(("\\.pdf\\'" "okular ? &")
("\\.djvu\\'" "okular ? &")
("\\.mp3\\'" "vlc ? &")
("\\.mp4\\'" "vlc ? &")
))
Wenn ich zu einem PDF in dired-mode
navigieren und drücken Sie !
, es öffnet die PDF in OkularName , aber der dired-Puffer in zwei Teile geteilt wird, nun die zweiten ein nutzloser *Async Shell Command*
Puffer, den Inhalt wie
okular(25393)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
okular(25393)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
okular(25393)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
okular(25393)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
Wie kann ich diesen Puffer verhindern, geöffnet zu sein? (außer vielleicht, wenn es einen Fehler gab und diese Information nützlich ist).
fand ich ähnliche Fragen here und here, aber sie scheinen mit bestimmten Befehlen asynchron ausgeführt zu behandeln, anstelle der *Async Shell Command*
im allgemeinen (wenn möglich, ich möchte das Verhalten im Allgemeinen für asynchrone Prozesse verändern, nicht nur für bestimmte Dateitypen)
Werfen Sie einen Blick auf die eigentlichen Funktionen innerhalb der Quelle '.../Lisp/simple.el' - das heißt' defun Shell-command' und 'defun Asynchron-shell-command'. Sie können sogar eigene Funktionen erstellen und/oder Defalias verwenden.Bei der Verwendung von 'start-process 'ist das zweite Argument der Name des Ausgabepuffers - die Verwendung von' nil 'für das zweite Argument verhindert, dass ein Ausgabepuffer erstellt wird. Sie können 'set-process-sentinel' in Verbindung mit' start-process' verwenden. – lawlist
Die doc-Zeichenkette 'async-shell-command' gibt an:' ... In Elisp ist es oft besser, wenn Sie 'start-process' direkt aufrufen, da es mehr Kontrolle bietet und keine verwendet ( – lawlist