que tenían el mismo problema. Cuando ejecuto emacs, comprueba si ya hay un servidor. Si esta es la primera instancia de emacs, se inicia en modo servidor. Luego, cuando veo/edito un archivo, quiero conectarme al servidor. De esta forma, el archivo se abre muy rápidamente ya que no se inicia ninguna nueva instancia de emacs.La reutilización de los resultados de @mob anterior, se me ocurrió con la siguiente solución de trabajo:
(1) .emacs
tengo el siguiente fragmento de código en mi archivo .emacs
:
;; start emacs-server if not running
(add-hook 'after-init-hook
(lambda()
(require 'server)
(unless (server-running-p)
(server-start))))
Si esta es la primera instancia de emacs, se inicia en modo servidor.
(2) Bashrc vim
#########################
# START: Emacs settings #
#########################
export EDITOR=/home/jabba/Dropbox/home/jabba/bin/emacs_try_client_first
export VIEWER=$EDITOR
alias vi=$EDITOR
alias e=vi # i.e., $EDITOR
alias em=vi # same as above
export TERM="xterm-256color"
#######################
# END: Emacs settings #
#######################
que he usado durante más de 15 años, así que cuando quiero editar un archivo, escribo automáticamente vi file
. Como quiero cambiar a emacs, definí este alias :) Los comandos "vim" y "emacs" comienzan una nueva instancia. Usando los alias "vi", "e" y "em" puede conectarse a una instancia de emacs en ejecución (que es el servidor). Si no hay un servidor emacs en ejecución, se abrirá una nueva instancia (en modo servidor).
(3) emacs_try_client_first
#!/usr/bin/env bash
function emacs_server_is_running()
{
ps ux | grep "\bemacs\b" | grep -v grep >/dev/null
}
if emacs_server_is_running; then
emacsclient -n "[email protected]" 2>/dev/null &
else
emacs "[email protected]" 2>/dev/null &
fi
También funciona muy bien con Midnight Commander, donde F3 es vista, F4 es de edición. En MC, si desea usar emacs, vaya a Configuración y desactive la vista interna y la edición interna.
Editar: se ha agregado el macro after
. Editar # 2: no era necesario después de todo.
Si eso fue cierto alguna vez, ya no es así. – yPhil
Primero, era cierto o no lo habría mencionado. En segundo lugar, todavía lo es. Con 'emacsclient --version' 25.3, el texto de ayuda dice: "-a EDITOR, --alternate-editor = EDITOR Editor al cual recurrir si el servidor no se está ejecutando. Si EDITOR es la cadena vacía, inicie Emacs en modo daemon e intente conectarse de nuevo." –