Eu não sou especialista em emacs, mas isso me ajudou:
emacs -nw
Eu estou olhando para mudar para o Emacs do Vim e uma coisa que está me afastando é que o Emacs abre uma janela separada quando executado sob o X. Posso obter o mesmo comportamento para o Emacs quando ele não é executado? sob X? Ou seja, eu quero que o Emacs inicie a sessão no mesmo terminal em que foi acionado.
Deixe-me saber se a pergunta não está clara. Agradeço antecipadamente!
Você pode preferir iniciar o emacs como emacs --daemon
e, em seguida, usar emacsclient -t
para editar arquivos. Isso mantém o Emacs carregado em segundo plano, para que você possa usar o Emacs mais como o vi. Sessões de edição iniciarão instantaneamente, e "desistir" via C-x C-c apenas fechará a conexão atual. É muito bom.
Embora sua pergunta tenha sido respondida, eu arriscaria dizer que essa não é a maneira como 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 ser executado o tempo todo com vários buffers abertos. Então, quando você quer fazer algo com o emacs em um terminal, invoque emacsclient -nw
(assumindo que um servidor emacs tenha sido iniciado). Olhe para Como começar a usar o EmacsClient para detalhes.
Se você usar o bash, você sempre pode adicionar o seguinte ao seu .bashrc
alias emacs="emacs -nw"
Isso me salvou muito de digitação (e xingando quando eu esqueci de digitar os switches).
Combinando as respostas acima por Dick Kenny e Alberto Zaccagni você obtém a seguinte configuração que eu uso em .bashrc
:
alias emacs='emacsclient -nw -c -a ""'
Isso tentará se conectar a um daemon emacs runnning. Se nenhum estiver em execução, iniciará um novo e, em seguida, conectará usando a janela do terminal atual.
Nos 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