5 ms·
This annoyance is one reason I avoid leaving Emacs. Eshell, tramp, dired, proced, docker-mode, etc... replace most of my terminal needs (including SSH). The sa
by dangirsh 8y ago
This annoyance is one reason I avoid leaving Emacs. Eshell, tramp, dired, proced, docker-mode, etc... replace most of my terminal needs (including SSH). The same movement, search, and copy/paste bindings work everywhere, including in buffers pointing to remote machines.
Relevant: https://www.reddit.com/r/emacs/comments/6y3q4k/yes_eshell_is_my_main_shell/ https://www.reddit.com/r/emacs/comments/6y3q4k/yes_eshell_is...
- nextos 8y agoExactly, this annoys me to no end, and for the same reason I'm pushing most of my computing into Emacs. 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.
- Myrmornis 8y agoThis will limit your ability to present yourself to non-emacs users as someone fluent and proficient in a command line environment. (Spoken as a dedicated emacs user.)
- ahmedalsudani 8y agoWhy does it matter that you present yourself as proficient?
- greggyb 8y agoI believe the poster you are responding to is likely thinking of an interview situation. At least, that is how I interpreted the comment.
- Myrmornis 8y agoWhen I said "present" I was referring to how you're likely to be perceived by colleagues. I was imagining someone working as a programmer, in a development team that makes heavy use of command line environments. (I'm a programmer and a dedicated emacs user in such a development team.) 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.
- mickeyp 8y agoAside from EShell, the shells you use in Emacs (via M-x ansi-term or M-x shell) are whatever you want them to be. I use bash, but I know plenty who use ZSH and Fish. 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.
- jwdunne 8y agoI use zsh and shell mode in Emacs. Knowing how to use a standalone shell, I've found, is synergistic with heavy Emacs use. 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.
- mickeyp 8y agoIndeed. Apropos batch processing, I wrote about executing shell commands against marked files in Dired. It may tickle your fancy and help you out---assuming you're not familiar with it already of course! https://www.masteringemacs.org/article/dired-shell-commands-find-xargs-replacement https://www.masteringemacs.org/article/dired-shell-commands-...
- always_good 8y agoI don't see how. 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?
- Myrmornis 8y agoThe people to whom I'm replying are using emacs not just as their text editor, but as their shell and as a wrapper around their ssh client. So they are likely to be perceived as less proficient at conventional shell usage.
- ealhad 8y agoI have been a happy Emacs user for nearly two years now, but I still don't use eshell. Is it only me, or is it really painfully slow?
- vmsp 8y agoDan Luu wrote about terminal latency a while back [1]. Eshell is actually the shell with the least overall latency. Is is, though, very slow at sinking stdout, which is probably what you are noticing. [1] https://danluu.com/term-latency/ https://danluu.com/term-latency/
- ealhad 8y agoThanks for the read.
- emj 8y agoThanks for that link, but it does note that this is also latency, i.e. transmission delay, and at 500KB/s Eshell has a very high latency for bulk transfer especially considering it's 10MB/s slower than the nearest comptitor. How much this affects your work varies, but you will adapt and change you behaviour because of that latency.
- JdeBP 8y agoThe subject has also come up on Hacker News recently. * https://lwn.net/Articles/749992/ https://lwn.net/Articles/749992/ (https://news.ycombinator.com/item?id=16894706 https://news.ycombinator.com/item?id=16894706) * https://lwn.net/Articles/751763/ https://lwn.net/Articles/751763/ (https://news.ycombinator.com/item?id=16933892 https://news.ycombinator.com/item?id=16933892)
- unhammer 8y agoTry the command in https://www.reddit.com/r/emacs/comments/74hetz/emacs_everywhere/dnzj01v/ https://www.reddit.com/r/emacs/comments/74hetz/emacs_everywh... in your regular terminal vs eshell – piping is really slow in eshell. I guess it somehow reimplements `|` in elisp, possibly losing parallelism along the way. When I reran that command now in eshell, it took 13.4 seconds, during which time Emacs had 100% cpu all the time, and sort/uniq had almost nothing.