Recientemente compré mi primera Mac en una década y estoy en el proceso de configurarla. Soy un usuario de Emacs y he determinado que solo quiero Emacs normales, no Aquamacs, para poder usar mi configuración existente desde otros sistemas operativos. He intentado seguir muchos procedimientos que he encontrado en línea (como este , este y este del sitio desde el que descargué Emacs ), y he intentado combinar las piezas de varias maneras, pero nunca metí las cosas en un estado que incluso se acercaba a lo que estoy acostumbrado / esperando:
- Un demonio de Emacs comienza a ejecutarse en el inicio o tan pronto como lo necesite ; Cualquiera esta bien. Cualquier nuevo marco de Emacs está respaldado por el mismo servidor.
- Cuando abro un archivo de texto desde el Finder, el archivo se abre en Emacs, en un marco gráfico existente si es posible.
- Si ejecuto Emacs.app, el sistema reutiliza el demonio emacs que se ejecuta en segundo plano en lugar de iniciar una nueva instancia y abrir una nueva ventana. ( punta de sombrero )
- Cuando ejecuto Emacs desde una terminal, la terminal se ocupa de sus asuntos sin esperar a que termine con Emacs (a menos que use '-nw')
- AFAIK en ningún momento durante las operaciones descritas anteriormente debería terminar Emacs en un estado ("¿modo de edición del servidor?") Donde está esperando que escriba
C-x #
, aunque no tengo un conocimiento profundo de este. - (Consideraría esto como una bonificación). Hay alguna forma de invocar Emacs desde un terminal para que Emacs reutilice un marco existente si es posible.
¿Cómo podría configurar Emacs para que se comporte así?
Estoy particularmente perplejo al hacer que el Finder abra cosas en Emacs de la manera que quiero (# 2), ya que las guías que he encontrado generalmente crean una serie de alias, Applescripts, scripts de bash, etc. y no estoy seguro que quiero decirle al Finder que use para abrir archivos de texto.
¡Gracias!
R. @lawlist pregunta: "¿Se abre un nuevo marco de forma predeterminada cuando abre un nuevo archivo desde el terminal a pesar de que hay un marco existente?" La respuesta es que si inicio un servidor al inicio como se describe aquí , abro un marco y luego abro un archivo escribiendo /Applications/Emacs.app/Contents/MacOS/bin/emacsclient -n <whatever>
, puedo hacer que el archivo se abra en un marco existente. Si no hay ningún marco abierto actualmente, tengo que usar "-nc" o cuando intento abrir un archivo no sucede nada.
B. @lawlist pregunta: "¿Desea que el demonio se ejecute al iniciar sesión, o sería suficiente cargar Emacs manualmente después del inicio de sesión?" Correr manualmente estaría bien.
M-x server-start
iniciará manualmente el servidor para que emacsclient
pueda comunicarse con él. He colocado (server-start)
en mi init.el
archivo en lugar de utilizar un demonio al iniciar sesión; sin embargo, muchas personas prefieren la opción de inicio de sesión del demonio. Y, por supuesto, el .emacs
archivo sería un lugar adecuado para (server-start)
.
ns-find-file
- que se activa automáticamente cuando un archivo está asociado con Emacs.app. La función de mi archivo de intercepción en los enlaces anteriores también modifica ns-find-file
si eso es algo que le interesa. Por supuesto, necesitas construir Emacs --with-ns
.