Como executar o 'emacs' no emulador de terminal sem uma janela separada?

16

Eu estou olhando para mudar para o Emacs do Vim e uma coisa que está me mantendo longe é que o Emacs abre uma janela separada quando executado no X. Posso obter o mesmo comportamento para o Emacs que quando não é executado no X? Ou seja, eu quero que o Emacs inicie a sessão no mesmo terminal daquele em que foi acionado.

Deixe-me saber se a pergunta não está clara. Agradeço antecipadamente!

Amit Saha
fonte

Respostas:

34

Não sou especialista em emacs, mas isso fez o truque para mim:

emacs -nw
Alberto Zaccagni
fonte
7
Você está certo, pois o curioso -nw é a abreviação de --no-window-system, que diz ao emacs para não usar sua interface X.
@Mic: Obrigado pela explicação, desta forma eu vou lembrar o que ele representa
Alberto Zaccagni
16

Você pode preferir iniciar o emacs como emacs --daemone depois usá-lo emacsclient -tpara editar arquivos. Isso mantém o Emacs carregado em segundo plano, para que você possa usá-lo mais como o vi. As sessões de edição serão iniciadas instantaneamente, e "sair" via Cx Cc apenas fechará a conexão atual. É muito legal.

jrockway
fonte
5

Embora sua pergunta tenha sido respondida, atrevo-me a dizer que não é assim que qualquer usuário comum usaria o emacs. Ao contrário do vim, o emacs geralmente tem um tempo de inicialização mais longo e, de qualquer maneira, tende a funcionar o tempo todo com vários buffers abertos. Então, quando você quer fazer algo com o emacs em um terminal, você invoca emacsclient -nw(assumindo que um servidor emacs tenha sido iniciado). Veja Como começar a usar o EmacsClient para obter detalhes.

Rajá
fonte
2

Se você usa o bash, sempre pode adicionar o seguinte ao seu .bashrc

alias emacs = "emacs -nw"

Isso me salvou bastante de digitar (e xingar quando esqueço de digitar as opções).

Dick Kennedy
fonte
1

Combinando as respostas acima de Dick Kenny e Alberto Zaccagni, você obtém a seguinte configuração que eu uso .bashrc:

alias emacs='emacsclient -nw -c -a ""'

Isso tentará se conectar a um daemon do emacs em execução. Se nenhum estiver em execução, ele iniciará um novo e conectará usando a janela atual do terminal.

Dos documentos:

-a EDITOR, --alternate-editor=EDITOR
        Editor to fallback to if the server is not running
        If EDITOR is the empty string, start Emacs in daemon
        mode and try connecting again

-nw, -t, --tty      Open a new Emacs frame on the current terminal

-c, --create-frame  Create a new frame instead of trying to 
                    use the current Emacs frame
Heinrich Hartmann
fonte
1
Quando tento esse comando, o Emacs falha ao iniciar, em vez disso, me dá um aviso sobre a inexistência de um servidor ao qual conectar-se, seguido por um dump gigante de valores e o Emacs não inicia.
Koz Ross