Relevant: https://www.reddit.com/r/emacs/comments/6y3q4k/yes_eshell_is...
Relevant: https://www.reddit.com/r/emacs/comments/6y3q4k/yes_eshell_is...
Emacs has a consistent UI and most packages have great composability. It's very easy to customize say notmuch email, org mode and pdf-tools to play together thanks to everything being an elisp function in a cohesive platform.
The same cannot be said about Unix CLI. While I love small utilities like parallel or ag, ncurses applications like mutt are little silos. They can be forced to talk to each other, but the result tends to be a bit inflexible and fragile.
It would also impede your ability to discuss and troubleshoot problems with command line environments with colleagues, since your colleagues would be using bash (or perhaps zsh) and conventional ssh, whereas you would be using a shell inside emacs and tramp.
I also do what OP does: I do as much as I can in Emacs to leverage what Emacs does best.
I think you underestimate how much respect your colleagues have for you, Myrmornis. The fact that you are using Emacs/Vim proficiently in most shops nowadays is a badge of respect to a lot of people already. Furthermore, most of Emacs's tooling won't hide you from the harsh realities of knowing how things work.
For one, and the most annoying, if a package update goes wrong, you're 'glove' is back to factory-made and you need to debug it to get it back. Shell helps here.
There are things that are easier to do in shell too. Batch processing of files over a whole directory tree is far more comfortable to me - especially binary format files.
I have shell scripts too. Automating parts of project development with Emacs is a bad idea since they can't be shared with colleagues who may be using, say, a JetBrains IDE.
https://www.masteringemacs.org/article/dired-shell-commands-...
Yes, the `find ... | xargs` pattern is exactly what I meant. This is awesome, thank you :)
In my experience, the sort of person who's an emacs power user has clearly demonstrated they are capable of credentializing in tools.
At which point why would you assume they are any less capable than someone whose editor preference you know nothing about?
* https://lwn.net/Articles/749992/ (https://news.ycombinator.com/item?id=16894706)
* https://lwn.net/Articles/751763/ (https://news.ycombinator.com/item?id=16933892)
> Eshell is not a replacement for system shells such as bash or zsh. Use Eshell when you want to move text between Emacs and external processes; if you only want to pipe output from one external process to another (and then another, and so on), use a system shell, because Emacs's IO system is buffer oriented, not stream oriented, and is very inefficient at such tasks. If you want to write shell scripts in Eshell, don't; either write an elisp library or use a system shell.
So... there's a pretty tiny subset of people who need eshell, I guess. Most of the eshell users I know are either folks who got used to it from weird environments, or folks who just use emacs for everything so using it for their shell stuff, too, sort of makes sense.