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

6

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 2012-02-27 em beta.macosforge.org

    
por qazwsx 16.08.2012 / 17:17

2 respostas

6

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 o emacsclient:

emacsclient foobar.txt

Dê uma olhada na página para obter mais informações .

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

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

Agora, simplesmente executando emacs file iniciará o servidor ou conectará a uma instância existente.

    
por 16.08.2012 / 17:41
0

Receio não lembrar de onde encontrei a solução a seguir. Desculpa. No entanto, desde que funcionou otimamente para mim eu adiciono aqui.

Certifique-se de que seu .emacs inicie o servidor emacs.

(server-start)

Em seguida, no seu .bashrc defina a função:

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

e defina as variáveis de ambiente:

export EDITOR=emacsclient
export ALTERNATE_EDITOR=emacs

Por fim, defina o alias:

alias emacs='run_emacs'
    
por 21.07.2014 / 17:11