Live data from Hacker News

Eschewing Zshell for Emacs

howardism.org

1–10 of 23 posts

Re: Eschewing Zshell for Emacs

#3
Eshell works, but it does not use term.el, and so has terminal compatibility problems with many utilities (the progress indication of curl or homebrew, for example). I have found it much more practical to stick with zsh, but use ansi-term or multi-term to launch the shell from inside Emacs windows. Performance in situations when the terminal wants to spit out a lot of output leaves much to be desired, but the convenience of staying inside Emacs outweighs the drawbacks.

Re: Eschewing Zshell for Emacs

#4
I have tried. And I can't. It's just too slow when working with tons of output (which is common in my work). (term-mode is no better.)

Emacs is one of my favourite tools on a computer. I love Lisp (even Elisp, which is getting closer to Common Lisp as time goes on) and I love the interaction, but Emacs is not good for serious terminal/shell work and it, sadly, is pretty annoying as a tiling "window" manager.

Maybe with multi-threading it will get better, but until then, I can't see a compelling reason to work exclusively in Eshell.

Re: Eschewing Zshell for Emacs

#5
One thing I really like about Eshell is how you can make the whole buffer editable. Printed too many lines by accident? Just mark the whole region and do M-x delete-non-matching lines. Other fun things to do include using output redirection to insert text straight into buffers! One last cool thing is that Eshell comes with it's own little pseudo-devices like /dev/kill and /dev/clip, you can probably guess what they're for.

Although as awesome as it is, there are still some places where I have no choice but to use a real terminal. This is mostly curses-like interfaces and stuff.

I find it funny that the author omitted one of the biggest missing features in Eshell: input redirection, you just can't do it.

Here's further reading for anyone interested in Eshell, I think this is the most comprehensive little guide out there:

http://www.masteringemacs.org/article/complete-guide-masteri...

Re: Eschewing Zshell for Emacs

#6
post #5

One thing I really like about Eshell is how you can make the whole buffer editable. Printed too many lines by accident? Just mark the whole region and do M-x delete-non-matching lines. Other fun things to do include using output redirection to insert text straight into buffers! One last cool thing is that Eshell comes with it's own little pseudo-devices like /dev/kill and /dev/clip, you can probably guess what they'r…

"This is mostly curses-like interfaces and stuff."

Which is, of course, a great example of the reason we need to provide as much functionality as we reasonably can outside such interfaces (including GUI interfaces).

Re: Eschewing Zshell for Emacs

#7
post #2

I've tried living in eshell but zsch auto complete is just too damn good. Is there really good auto completion for eshell?

I seem to be getting some good completions for files just from Company-mode. I typed "/us" and got a list including /usr/, /usr/bin, /usr/lib, etc.

Also, tab-completion seems somewhat good. I typed /u and TABbed, and got /usr/.

/usr/bin/lv gives me /usr/bin/leave on first TAB, then cycles through /usr/bin/llvm-g++, etc. on subsequent tabs.

Globbing: ls /*.js did what you'd want within a directory whose subdirectories contain a lot of .js files.

It looks like someone added completions for git (and bzr, hg, if you care): http://tsdh.wordpress.com/2013/05/31/eshell-completion-for-g... Works pretty well.

I wonder if there's a way to provide a bridge with zsh's completions, such that if you have completions for zsh, you have them for eshell.

Re: Eschewing Zshell for Emacs

#8
post #2

I've tried living in eshell but zsch auto complete is just too damn good. Is there really good auto completion for eshell?

I wonder how easy it would be to construct the necessary zsh context, to just extract the completion from zsh...

Re: Eschewing Zshell for Emacs

#9

I have tried. And I can't. It's just too slow when working with tons of output (which is common in my work). (term-mode is no better.) Emacs is one of my favourite tools on a computer. I love Lisp (even Elisp, which is getting closer to Common Lisp as time goes on) and I love the interaction, but Emacs is not good for serious terminal/shell work and it, sadly, is pretty annoying as a tiling "window" manager. Maybe wi…

I use ansi-term for quick tasks (e.g. re-run a build command), but you are absolutely right, if there's going to be a lot of output, I'm using my old trusty urxvt,
Post reply on HN