This article is a wonderful walkthrough.
Magit and Orgmode are two reasons why I consistently come back to emacs, but I can’t seem to keep at it and always find myself switching back to vim. :(
consider evil-mode, it’s the best of both worlds.
evil doesn’t make you change your mental mode; for me, I “blip” in and out of vi from a shell, whereas you treat emacs more like an IDE you stay in. That’s one of the hard things for me to deal with if I switch to Emacs.
emacs –daemon and emacsclient (combined with alias e "emacsclient -t -c -a ''" lets me get that dropping in and out of it from the shell effect.
alias e "emacsclient -t -c -a ''"
I used to use alias vi="emacsclient -t -c -a vi || vi" which automatically falls back to vi/m on whatever system. Obviously the mental model kinda fails when you try and use a powerful Emacs feature having only entered vi, but I found it quite useful.
alias vi="emacsclient -t -c -a vi || vi"
Magit’s UI is a work of art! It taught me couple of things about Git itself, like the --force-with-lease flag.
I really wish that it was possible to build such UIs outside of the Emacs. Just imagine: you type tar command, and get a Magit-style pop up with options! Unfortunately, this probably needs a pretty significant re-imagining of what a shell is…
A possible option here is to just use Emacs itself as a shell, but that won’t work for folks who don’t use Emacs (I’ve personally moved off Emacs to other editors, but still use Magit as my cli interface for git).
I’ve never quite understood the “people who don’t use Emacs” argument. It’s a bit like saying “I can’t build this program in Python because then it won’t work for people who don’t use Python.” Yes, it will. Sure, they will have to install the Python VM if they haven’t already, but that’s how we’ve always done those things with high-level languages, be it Perl, Java, Erlang. You don’t have to be an active Java developer to use a program written in Java, and you don’t have to be an active Emacs Lisp developer to use a program written in Emacs Lisp.
Even if I didn’t use Evil for editing, I would still use Magit for git, calc for calculations, restclient-mode for exploring APIs, Sunrise Commander for browsing files, and so on. These are great applications even if you don’t use an editor written in Emacs Lisp. They are simply completely orthogonal programs, and not related in any way.
I dunno. I do a lot of editing when using Fugitive (a git client by tpope) in vim. Not being in my proper editor would be annoying.
That is a good point; I don’t know if magit can be configured to use vim as its editor, but if not, you have to weigh the benefits of magit against the duplication of configuration between your vim and evil, and the effort in keeping them synced.
I use this daily and I prefer it to the command line. Only draw back is that it’s slow on windows machines for some reason.