No es necesario cambiar la forma en que ejecuta un comando asincrónico. Emacs tiene una capacidad genérica para permitirle controlar dónde o si aparecerá algún búfer, modificando una sola estructura de datos, el display-buffer-alist
.
En la solución a continuación, puede ver que la función de acción display-buffer-no-window
(es decir, sin ventanas emergentes) está configurada para asociarse con cualquier búfer con un nombre que comience *Asynchronous Shell Command*
(emacs agrega un sufijo incremental cuando se le pide que cree más de uno).
Para ver la lista de otras opciones de visualización disponibles, escriba C-h f display-buffer
y busque la lista de "funciones de acción".
;; Buffers that I don't want popping up by default
(add-to-list 'display-buffer-alist
'("\\*Async Shell Command\\*.*" display-buffer-no-window))
start-process
para un comando sudo? He intentado envolver mi llamada astart-process
en(let ((default-directory "/sudo::")) ... )
, pero no funcionó para mí.