Eshell as a main shell
I must say I really like the UI paradigm of Emacs. It&#x27;s the &quot;best of both worlds&quot; combination of text-based interfaces and GUIs. It supports software that can be interactive, and yet also as interoperable as CLI applications (or even more).<p>It&#x27;s the reason it isn&#x27;t silly that people read e-mails, chat or manage their files from Emacs. A CLI e-mail client is annoying because of the typing. A GUI e-mail client lacks any sensible interoperability. A curses-based e-mail client is the worst of both worlds - neither interoperable, not particularly nice looking. An e-mail client in Emacs - and any other application made within it - immediately gains several deep levels of productivity features and interoperability:<p>- All your usual keybindings work. All your usual searching and editing operations work - that includes not just typical &quot;move around and edit stuff&quot;, but also things like advanced autocompletion, interactive or batch regexp search &amp; replace, grepping through <i>everything</i> that&#x27;s displayed, multiple cursors, and whatever other thing you like.<p>- Since application&#x27;s UI is rendered mostly as text (with some minimal non-text overlays if necessary), you can navigate around, interact with and copy <i>everything</i> you see. Need to copy headers of an e-mail to somewhere? If they&#x27;re displayed, you can. Need to copy a list of e-mails sent from someone? Filter those mails, and then just copy the list from the buffer, as if it was regular text.<p>- Above solves like 90% of your basic interoperability requirements that let you be extremely productive. Need more? Learn some basic elisp, and now you can script or extend everything, both from outside (using &quot;exposed&quot; application&#x27;s API) and inside (augmenting&#x2F;modifying application&#x27;s code at runtime). Emacs exposes lots of functions optimized for working with text in an editor, so it usually takes just a few lines of code to compose together a new productivity feature. Need the list of e-mails mentioned previously regularly, for your weekly report? That&#x27;s probably one call to generate it in the background, few more lines to select and copy it as text, and paste it straight into the file you&#x27;re editing.<p>Really, in my life I haven&#x27;t seen any other platform embracing interoperability by default.<p>EDIT:<p>Turns out, the author of TFA covers this topic in another post: <a href="https:&#x2F;&#x2F;ambrevar.bitbucket.io&#x2F;emacs-everywhere&#x2F;" rel="nofollow">https:&#x2F;&#x2F;ambrevar.bitbucket.io&#x2F;emacs-everywhere&#x2F;</a>.