Como abrir um arquivo da linha de comando do bash no Emacs já aberto em vez de uma nova instância?

Como abrir um arquivo da linha de comando do bash no Emacs já aberto em vez de uma nova instância?

Como abrir um arquivo da linha de comando do bash no Emacs já aberto em vez de uma nova instância? Quando eu digito

$ emacs file.txt

ele abre uma nova instância do Emacs, em vez de abrir o arquivo na instância existente do Emacs. Mac OS X 10.6.8. e

GNU Emacs 23.4.1 (x86_64-apple-darwin10.8.0, NS apple-appkit-1038.36)

de 27/02/2012 em beta.macosforge.org

Responder1

o que você está procurando é o modo de servidor emacs. Adicione esta linha ao seu arquivo .emacs:

(server-start)

Em seguida, abra o arquivo usando emacsclient:

emacsclient foobar.txt

Dê uma olhada emessepágina para mais informações.


Para evitar ter que iniciar o emacs manualmente ou configurá-lo para inicialização automática, você pode escrever uma pequena função que tente se conectar a um servidor em execução (executando emacsclient) e, se não, execute emacs. Adicione isto ao arquivo de configuração do seu shell (por exemplo ~/.bashrc):

emacs(){ 
    emacsclient "$@" 2>/dev/null || /usr/bin/emacs "$@" 
}

Agora, simplesmente executar emacs fileiniciará o servidor ou conectará a uma instância existente.

Responder2

Receio não me lembrar onde encontrei a seguinte solução. Desculpe. No entanto, como funcionou perfeitamente para mim, adiciono-o aqui.

Certifique-se de .emacsiniciar o servidor emacs.

(server-start)

A seguir, defina .bashrca função:

function run_emacs
{
/usr/bin/emacsclient "$1" &
}

e defina as variáveis ​​de ambiente:

export EDITOR=emacsclient
export ALTERNATE_EDITOR=emacs

Finalmente, defina o alias:

alias emacs='run_emacs'

informação relacionada