mio ~/.emacs
contiene le seguenti impostazioni per l'apertura di determinati file con determinate applicazioni (Ubuntu 12.10; Emacs 24):Come evitare il pop-up del buffer * Comando shell asincrona * in Emacs?
(setq dired-guess-shell-alist-user
'(("\\.pdf\\'" "okular ? &")
("\\.djvu\\'" "okular ? &")
("\\.mp3\\'" "vlc ? &")
("\\.mp4\\'" "vlc ? &")
))
Se navigando a una .pdf in dired-mode
e ha colpito !
, si apre il .pdf in Okular , ma il-buffer dired è diviso in due parti, la seconda essendo ora un inutile *Async Shell Command*
tampone contenente contenuti come
okular(25393)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
okular(25393)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
okular(25393)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
okular(25393)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
Come posso evitare questo buffer venga aperto? (eccetto, forse, se c'è stato un errore e questa informazione è utile).
ho trovato questioni connesse here e here, ma sembrano a che fare con i comandi specifici eseguiti in modo asincrono, al posto del *Async Shell Command*
in generale (se possibile, vorrei cambiare il comportamento in generale per i processi asincroni, non solo per alcuni tipi di file)
Date un'occhiata alle funzioni effettive all'interno della fonte di '.../lisp/simple.el' - vale a dire,' defun shell-comando' e 'defun async-shell-comando'. Puoi persino creare le tue funzioni personalizzate e/o usare 'defalias'.Quando si usa 'start-process', il secondo argomento è il nome del buffer di output - usando' nil' per il secondo argomento si impedisce la creazione di un buffer di output. Puoi usare 'set-process-sentinel' in congiunzione con' start-process'. – lawlist
La stringa doc di 'async-shell-command' afferma:' ... In Elisp, sarà spesso servito meglio chiamando 'start-process' direttamente, poiché offre più controllo e non impone l'uso di uno shell (con la necessità di citare gli argomenti) .' – lawlist