ChatGPT解决这个技术问题 Extra ChatGPT

How to open Emacs inside Bash

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?

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 …
@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.
@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.
Also, one might want to practice using Emacs in terminal mode.
@Daimrod it's also useful for pairing across a service like tmate

P
Peter Mortensen

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.


t
topskip

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


P
Peter Mortensen

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 :).


P
Peter Mortensen

If you need to open Emacs without X:

emacs -nw

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
P
Peter Mortensen

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

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

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


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

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


P
Peter Mortensen

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.