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-interactivelyen un comando que reconoce el argumento universal.
Más específicamente, quiero implementar una función que, bajo ciertas condiciones, debería llamar al shellcomando 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 shellcomando 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))