160

I'm using Ubuntu 11.10 (Oneiric Ocelot). When I type the command "emacs" in the terminal, it opens Emacs as a separate window. How can I open it inside the terminal, like the nano editor?

7
  • As always when I see a such question, I wonder why you would want to do that. With a graphical emacs you could use every fonts you want, nice colorscheme, use the image support, etc … Commented Jan 5, 2012 at 19:40
  • 38
    @Daimrod: sometimes a new window popping up harrasses the concentrated mind. Sometimes you want to do a quick one in an existing window and sometimes you want to reserve a whole room for your thing. Commented Jan 5, 2012 at 22:24
  • 13
    @Daimrod because sometimes you're editing files across two ssh hops on a slow link and the X version of emacs is too much for your connection. Commented Mar 5, 2015 at 22:07
  • 6
    Also, one might want to practice using Emacs in terminal mode. Commented Oct 30, 2016 at 9:50
  • 2
    @Daimrod it's also useful for pairing across a service like tmate Commented May 11, 2019 at 5:45

8 Answers 8

266

Emacs takes many launch options. The one that you are looking for is emacs -nw. This will open Emacs inside the terminal disregarding the DISPLAY environment variable even if it is set. The long form of this flag is emacs --no-window-system.

More information about Emacs launch options can be found in the manual.

Sign up to request clarification or add additional context in comments.

Comments

56

Just type emacs -nw. This won't open an X window.

Comments

37

In the spirit of providing functionality, go to your .profile or .bashrc file located at /home/usr/ and at the bottom add the line:

alias enw='emacs -nw'

Now each time you open a terminal session you just type, for example, enw and you have the Emacs no-window option with three letters :).

Comments

13

If you need to open Emacs without X:

emacs -nw

2 Comments

In the future, note that you need a newline for the code formatting to work properly. It got me the first couple times I used it too :)
Thanks, Tikhon! That's been pissing me off all day :P
5

I didn't like the alias solution for my purposes. For one, it didn't work for setting export EDITOR="emacs -nw".

But you can pass --without-x to configure and then just the regular old Emacs will always open in terminal.

curl http://gnu.mirrors.hoobly.com/emacs/emacs-25.3.tar.xz
tar -xvzf emacs-25.3.tar.xz && cd emacs-25.3
./configure --without-x
make && sudo make install

1 Comment

You could also just use a 1-line shell script, in your PATH
1
emacs hello.c -nw

This is to open a hello.c file using Emacs inside the terminal.

1 Comment

This answer was already provided by the accepted answer two years prior.
1

Try emacs —daemon to have Emacs running in the background, and emacsclient to connect to the Emacs server.

It’s not much time overhead saved on modern systems, but it’s a lot better than running several instances of Emacs.

Comments

0

It can be useful also to add the option --no-desktop to avoid launching several buffers saved.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.