He leído la documentación sobre cómo hacer llamadas interactivas desde Elisp, pero todavía no puedo entender cómo pasar el argumento universal cuando lo uso call-interactively
en un comando que reconoce el argumento universal.
Más específicamente, quiero implementar una función que, bajo ciertas condiciones, debería llamar al shell
comando interactivamente con el argumento universal , de modo que, como resultado, la solicitud
Shell buffer (default *shell*):
será visible en el minibúfer y, una vez que este mensaje reciba una respuesta, se creará el búfer especificado (si aún no existe) y se convertirá en el búfer actual.
FWIW, probé lo siguiente:
(universal-argument)
(call-interactively 'shell)
y
(setq prefix-arg (list 4))
(call-interactively 'shell)
... pero nunca vi el aviso Shell buffer (default *shell*):
; en cambio, en todos los casos, el shell
comando se ejecutó exactamente como si se hubiera llamado sin el argumento universal. (Realmente no sé lo que estoy haciendo aquí, por lo que mis intentos a ciegas anteriores se hicieron sin tener en cuenta los consejos proféticos de la documentación ).
(let ((current-prefix-arg 4)) (call-interactively 'shell))