Skip to main content
Added new findings concerning `--eval '(eshell)'` with follow-up question
Source Link

Both of the following work to call a graphical/terminal eshell:

  • emacs -f eshell
  • emacs -nw -f eshell

Furthermore, this 2-step process also works:

  • `emacsclient -t -a '' /some/real/file/name
  • Metax eshell

BUT, this does not:

  • emacsclient -t -a '' -f eshell

and fails with this error after lots of normal startup messages:

Error: server did not start correctly
Error: Could not start the Emacs daemon

Note: On my system, I use alias edt="emacsclient -t -a '' to make sure that I always end up in a daemon-backed emacs session server

How can I, in one command,

  • launch emacsclient
  • launch and display a new eshell
  • OR display an existing eshell frame?

If I could also suppress the top 2 "Welcome to EShell" lines, that would also be useful

EDIT: I found this way of launching emacs with eval:

emacsclient -t -a '' --eval '(eshell)'

, but this always selects the pre-existing eshell. How would I then get a "new" one?

Both of the following work to call a graphical/terminal eshell:

  • emacs -f eshell
  • emacs -nw -f eshell

Furthermore, this 2-step process also works:

  • `emacsclient -t -a '' /some/real/file/name
  • Metax eshell

BUT, this does not:

  • emacsclient -t -a '' -f eshell

and fails with this error after lots of normal startup messages:

Error: server did not start correctly
Error: Could not start the Emacs daemon

Note: On my system, I use alias edt="emacsclient -t -a '' to make sure that I always end up in a daemon-backed emacs session server

How can I, in one command,

  • launch emacsclient
  • launch and display a new eshell
  • OR display an existing eshell frame?

If I could also suppress the top 2 "Welcome to EShell" lines, that would also be useful

Both of the following work to call a graphical/terminal eshell:

  • emacs -f eshell
  • emacs -nw -f eshell

Furthermore, this 2-step process also works:

  • `emacsclient -t -a '' /some/real/file/name
  • Metax eshell

BUT, this does not:

  • emacsclient -t -a '' -f eshell

and fails with this error after lots of normal startup messages:

Error: server did not start correctly
Error: Could not start the Emacs daemon

Note: On my system, I use alias edt="emacsclient -t -a '' to make sure that I always end up in a daemon-backed emacs session server

How can I, in one command,

  • launch emacsclient
  • launch and display a new eshell
  • OR display an existing eshell frame?

If I could also suppress the top 2 "Welcome to EShell" lines, that would also be useful

EDIT: I found this way of launching emacs with eval:

emacsclient -t -a '' --eval '(eshell)'

, but this always selects the pre-existing eshell. How would I then get a "new" one?

Source Link

emacsclient directly start eshell command command line

Both of the following work to call a graphical/terminal eshell:

  • emacs -f eshell
  • emacs -nw -f eshell

Furthermore, this 2-step process also works:

  • `emacsclient -t -a '' /some/real/file/name
  • Metax eshell

BUT, this does not:

  • emacsclient -t -a '' -f eshell

and fails with this error after lots of normal startup messages:

Error: server did not start correctly
Error: Could not start the Emacs daemon

Note: On my system, I use alias edt="emacsclient -t -a '' to make sure that I always end up in a daemon-backed emacs session server

How can I, in one command,

  • launch emacsclient
  • launch and display a new eshell
  • OR display an existing eshell frame?

If I could also suppress the top 2 "Welcome to EShell" lines, that would also be useful