2010-12-16 5 views
8

Lo que me gustaría lograr¿Cómo usar una instancia de emacs como editor de texto predeterminado? [Linux]

  • una instancia de emacs
  • si i abrir cualquier archivo de texto desde Nautilus, se debe abrir en el ejemplo emacs actual
  • si cierro emacs , en realidad no debería cerrarla, simplemente esconderlo

lo que tengo actualmente

  • puse emacs23 para iniciar en el arranque
  • tengo (start-servidor) en mi init
  • dejo emacs abiertas
  • He emacsclient como el editor de texto predeterminado

Problemas I encontrado al intentar lograr lo que quería

  • emacs gives the followin g de error si dejo emacs y tratar de empezar de nuevo

File error: Cannot bind server socket, address already in use

Cosas que me trató

Actualización: He intentado de nuevo con el enlace stackoverflow, y ahora la mayor parte está funcionando. Sin embargo, algo que me gustaría poder hacer es volver a cargar el archivo init, para poder hacer cambios en mi archivo init sin reiniciar la computadora. ¿Algunas ideas?

Además, si el servidor se está ejecutando y tengo emacs falso cerrado (vea el enlace emacs fu), ¿cómo puedo iniciarlo de nuevo sin cargar un archivo? por ejemplo, ¿cuál sería el equivalente a correr emacs23 ser, ya que esto no funciona (ver error escrito arriba)

Respuesta

18
  • eliminar (start-server) de .emacs
  • uso emacsclient "[email protected]" -a "" para comenzar emacs si está funcionando o no

Si guarda emacsclient "[email protected]" -a "" como una secuencia de comandos, por ejemplo en el archivo editor, editor -c crea un nuevo fotograma, editor -t abre un nuevo fotograma en el terminal y editor FILE visita FILE en un fotograma existente. Inicia el servidor de emacs si no se está ejecutando.

+0

Ojalá pudiera votarte 1000 veces. esta era la información que necesitaba para que esto funcionara en OSX. Muchas gracias –

+0

Aparece un mensaje de error con su script: "-a o ALTERNATIVE_EDITOR no puede ser una cadena vacía." en ventanas – progician

+0

@progician: [cadena vacía se admite explícitamente] (http://www.gnu.org/software/emacs/manual/html_node/emacs/emacsclient-Options.html#emacsclient-Options). Si no funciona en Windows; intente establecer la variable de entorno 'ALTERNATE_EDITOR = emacs --daemon' (drop' -a "" 'desde el comando). Si no funciona; [haga una pregunta por separado] (http://stackoverflow.com/questions/ask) (esta pregunta es sobre Linux, aunque la solución funciona igual que en OSX) – jfs

1

However, something I would like to be able to do is to reload the init file, so that I can make changes to my init file without restarting the computer.

Lectura a través de los métodos detrás del demonio-efecto que está buscando, ninguno de ellos parece impedir simplemente cargando su archivo de inicio y la emisión de una llamada eval-buffer después de realizar modificaciones.

Also, if the server is running and I have emacs false-closed (see emacs fu link), how can i start it again without loading a file?

Correr emacsclient (en lugar de emacs23) debe hacer el truco, yo creo.

2

Comienzo emacs con emacs --daemon para que emacs se inicie en un modo demonizado. Luego, configuraría EDITOR en emacsclient -t -a emacs -nw, que abre una nueva terminal emacs frame adjunto a su demonio emacs, con una versión "sin ventana" de emacs utilizada como alternativa si no hay un servidor emacs en ejecución. Para abrir ventanas de emacs en la GUI, el comando del editor es emacsclient -n -c -a emacs.

También es posible ejecutar más de una instancia de emacs en una sola máquina, si no desea que los almacenamientos intermedios de un proyecto se entremezclen con almacenamientos intermedios de otro proyecto. Ver mi my post sobre el tema.

1

Hmm, no estoy seguro de ejecutar emacs como cliente, pero con frecuencia reviso y aplico cambios a mi archivo .emacs, sin cerrar emacs.

Edite de forma simple el archivo (dentro o fuera de emacs, no importa cuál). El archivo de carga M-x, emacs le pedirá la ruta y el nombre del archivo, lo cual es fácil si es ~/.emacs.

Escriba la ruta y el nombre del archivo, luego RET y emacs se volverán a cargar con los cambios. Todos los buffers que tengas abiertos seguirán allí.

Cuestiones relacionadas