1. 14

  2. 7

    But with EShell, you don’t need to bother with a pager, since if you received too much information, hit C-c C-p which jumps you to the top of the last command, and then C-v your way down.

    This is certainly true and I like using EShell this way, but let’s not pretend that it’s nearly fast enough when there is lots of output. Shells and huge buffers inside Emacs are terribly slow and I’ve never had any success with them. Shells in Emacs (including EShell) also terrible when you have to login to a remote machine. Granted, there are other Emacs mechanisms for these things, but even for me, a dyed-in-the-wool Emacs fan, the plain terminal ends up being more convenient (and far more efficient) in some use cases.

    By the way, while typing this comment up, I ran a test. I ran the following command in EShell, then in rxvt-unicode (using ZSH), then again in EShell.

    time find ~ -type f

    In EShell, each run took 411 seconds. In rxvt-unicode, it took 4 seconds. (And in case you’re wonderings, find ~ -type f | wc -l reported 505936 lines, which was around 37MB of text.)

    As per the recent measurements story on terminal performance, there’s more to terminals than how fast it is at displaying text, but a difference of 100x is certainly noticable.

    1. 3

      As much as I like consolidating tasks into Emacs, eshell has never worked very well for me. The biggest blocker for day to day use is that it doesn’t support tmux, but even for one off command line things, I run into lots of little things that don’t work the way I expect.

      A terminal/tmux side by side with emacs works much better for me and has a lot of extra perks. Emacs inside of tmux also works really well in some scenarios.