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 file
iniciará 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 .emacs
iniciar o servidor emacs.
(server-start)
A seguir, defina .bashrc
a 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'