Hacker News new | ask | show | jobs
by sheckel 5238 days ago
Aw, before I clicked through, I guessed this article was from the 90s - I was sure that vim had taken over the world by now. Goodness gracious, folks, it's 2012!! :-)

In all seriousness, although these are all good points and I'm quite jealous of Emacs' tetris mode, I think you're missing out on one of the best features of Emacs: shell mode. IMO shell mode (or whatever it's called) should easily be at the top of the list. I wish there were a decent analogue to this feature in vim but there really isn't, just a bunch of not-quite-there plugins...

2 comments

It's against VIMs design philosophy to include a shell. The idea is that you shouldn't use shell (and other things) from vim, you should use vim from your shell. You have access to your shell by using the :! command.
How powerful is Emacs shell mode? Vim has a shell "command" (:sh), a pretty damn crappy—well—interface to your box' shell.
There are at least three shell modes built in (there are probably more). shell mode (M-x shell) - gives an interface to your system shell, can handle everything except programs like top, you can move around past commands which is a dream. ansi-term - an actual terminal, better for top et al, can switch between terminal mode and emacs buffer mode

eshell - shell implemented in Elisp. have never used it, but i'm sure it's awesome.

Dired mode is also wonderful, navigate to a folder, simple one key commands to do most of the basic shell copy/rename/move commands, with simple searching and all the emacs shortcuts.

What makes eshell awesome is mostly that it blurs the lines between bash and elisp, you sort of kind of can use them together. Unfortunately the manual does not do this feature justice as it is largely incomplete. This article is the best i've found.

http://www.masteringemacs.org/articles/2010/12/13/complete-g...

And of course eshell is just a buffer so you can surf through the output with all the available commands you typically use.

You can dired into a remote directory via ssh, start a (remote) shell there and have local command editing with working command & file completion. Works wonders for remote work over high latency links.
>"You can dired into a remote directory via ssh"

If that relies on TRAMP then I am not impressed. (TRAMP is slow and seems to stop working after a while.)