Y luego simplemente inicie emacs ejecutando el runemacs.exeejecutable que viene con la compilación.
Cómo llamar a emacs para que utilice el servidor (por ejemplo, desde la línea de comandos o herramientas de terceros)
La compilación de Windows de Emacs viene con un emacsclientw.exeejecutable en el
bin/directorio. Use la ruta completa a ese ejecutable como su editor de elección en cualquier herramienta de terceros que necesite configurar.
Soporte de menú contextual (por ejemplo, haga clic derecho en un archivo y permita que se envíe a emacs para su visualización y edición)
Haga clic derecho en un archivo, seleccione Open With -> Select Default Program.
En la ventana emergente, navegue hasta el emacsclientw.exeejecutable mencionado anteriormente y elíjalo.
Si no desea que Emacs sea el predeterminado, realice los pasos 1 y 2 nuevamente, eligiendo un programa diferente como predeterminado.
emacsclientw.exe ahora siempre será una opción en el menú contextual.
Gracias, gran punto sobre el servidor, no estaba pensando.
cristobalito
Con respecto al emacsclient.exe, ¿no debería ser emacsclientw.exe? Además, pensé que tenía que ejecutar esto con el indicador -a para especificar un editor alternativo si el servidor no se estaba ejecutando.
cristobalito
Para que el servidor funcione correctamente con mi configuración, también tuve que agregar una variable de entorno EMACS_SERVER_FILEque apuntara a mi .emacs.d\serverdirectorio.
Ryan
@Ryan Pude hacer que esto funcionara sin la necesidad de la variable de entorno, solo necesitaba asegurarme de que el servidor estaba funcionando.
cristobalito
Hmm, para mí evaluar los (server-running-p)retornos :otheren Windows (incluso después de intentar configurar esa EMACS_SERVER_FILEvariable de entorno .
Kaushal Modi
5
Iniciar automáticamente un servidor si aún no se ha iniciado
Le recomiendo establecer una variable de entorno para ALTERNATE_EDITORa runemacs.exe. De esta manera, siempre puede llamar a emacsclient incluso si no hay un servidor. Simplemente agregue (inicio de servidor) a su archivo de inicio. Cuando no existe un servidor, emacsclient llama al ALTERNATE_EDITORque es emacs en nuestro caso. Dado que emace inicia un servidor en el archivo init, cualquier llamada nueva a emacsclient será instantánea.
Cómo llamar a emacs para que utilice el servidor (por ejemplo, desde la línea de comandos o herramientas de terceros)
Use emacsclientw.exe -c -n "your_file"para abrir su_archivo. El -cargumento crea un nuevo marco gráfico y le -npermite cerrar el marco sin perder el estado del servidor. Incluso puede llamarlo sin un nombre de archivo para abrir el *Scratch*búfer. Funciona desde un acceso directo de escritorio también. Si usa emacsclient.exe(tenga en cuenta la w que falta), aparecerá un símbolo del sistema durante unos segundos cada vez que lo llame.
Agregar al menú contextual
Emacswiki tiene una buena página sobre cómo agregar Emacs al menú contextual aquí . Implica editar el nodo del registro HKEY_CLASSES_ROOT\*para agregar una acción para abrir con emacs.
Sin embargo, tenga en cuenta que hay diferentes versiones de Cygwin. Yo uso una versión anterior (no sé cuál, difícil de decir, AFAICT). No sé si tendrá problemas con las versiones recientes.
No recomiendo instalar Cygwin, ya que puede haber efectos secundarios no deseados (como romper otros puertos de ventanas gnu como emacs, gcc, ...), solo por tener algunas herramientas gnu. En su lugar, instale puertos GnuWin32 . Puede instalar el paquete completo o las herramientas seleccionadas de su elección.
Seki
@Seki: Sí, Eli Zaretskii dice lo mismo que tú. Todo lo que puedo decir es que no he tenido ningún problema (y tengo serias dudas sobre su reclamo de que rompa Emacs ). Pero (a) estoy usando una versión anterior de Cygwin y (b) no uso la mayoría de las utilidades UNIX / GNU Linux proporcionadas por Cygwin.
Dibujó el
@drew: quizás excesivo por hablar de "romper" emacs, "causar un comportamiento extraño" hubiera sido mejor. Por ejemplo, Cygwin Make frenará la cadena de herramientas MinGW si no verifica cuidadosamente su ruta para que las herramientas Cygwin no se tengan en cuenta o se tomen por defecto si no existen otras. No se limita a Make, muchas otras herramientas no se pueden mezclar y, a veces, es sutil señalar el problema. En resumen, o tiene un puerto nativo de Emacs y es mejor tener herramientas GNU nativas, o puede usar toda la distribución de Cygwin, incluidos sus emacs.
Seki
@Seki: Parece que tu punto principal es que Cygwin y MingGW no juegan bien juntos. Eso no me sorprende. (FWIW, no tengo nada en contra de usar MingGW en lugar de Cygwin. Para mí fue simple instalar Cygwin, y no uso suficiente para haber encontrado problemas.)
EMACS_SERVER_FILE
que apuntara a mi.emacs.d\server
directorio.(server-running-p)
retornos:other
en Windows (incluso después de intentar configurar esaEMACS_SERVER_FILE
variable de entorno .Le recomiendo establecer una variable de entorno para
ALTERNATE_EDITOR
arunemacs.exe
. De esta manera, siempre puede llamar a emacsclient incluso si no hay un servidor. Simplemente agregue (inicio de servidor) a su archivo de inicio. Cuando no existe un servidor, emacsclient llama alALTERNATE_EDITOR
que es emacs en nuestro caso. Dado que emace inicia un servidor en el archivo init, cualquier llamada nueva a emacsclient será instantánea.Use
emacsclientw.exe -c -n "your_file"
para abrir su_archivo. El-c
argumento crea un nuevo marco gráfico y le-n
permite cerrar el marco sin perder el estado del servidor. Incluso puede llamarlo sin un nombre de archivo para abrir el*Scratch*
búfer. Funciona desde un acceso directo de escritorio también. Si usaemacsclient.exe
(tenga en cuenta la w que falta), aparecerá un símbolo del sistema durante unos segundos cada vez que lo llame.Emacswiki tiene una buena página sobre cómo agregar Emacs al menú contextual aquí . Implica editar el nodo del registro
HKEY_CLASSES_ROOT\*
para agregar una acción para abrir con emacs.fuente
Otros han respondido la parte del servidor. Esto es lo que hago, para obtener utilidades similares a UNIX / GNU / Linux como
grep
ydiff
:cygwin-mount.el
.setup-cygwin.el
.Sin embargo, tenga en cuenta que hay diferentes versiones de Cygwin. Yo uso una versión anterior (no sé cuál, difícil de decir, AFAICT). No sé si tendrá problemas con las versiones recientes.
Ver también:
fuente