
Emacs and Vim - mklappstuhl
http://www.martinklepsch.org/posts/emacs-and-vim.html
======
Gonzih
Wanna have fun with emacs? Try to integrate evil mode nicely in different
plugins. Especially if you use totally different key bindings in vi (non
qwerty layout for example). It was very painful experience for me. Yes, vim is
far from ideal, yes neo-vim is looking like to be next iteration in vim
evolution, yes no parallel tasks execution is pain. But at the same time there
is vimproc. For clojure integration there is fireplace.vim which is also
amazing in my opinion, for git there is fugitive. I don't see any real
comparison in this post, more like "I was bored with vim, now I use emacs".

~~~
exDM69
Yeah, evil-mode just doesn't play nice with lots of emacs utilities.

It's a good idea to use evil-mode only in code/text buffers and stay out of it
when using e.g. GUD debugging. This, unfortunately, means that you're going to
have to learn two sets of keybindings, the vanilla emacs ones and vim keys.

~~~
MetaCosm
Yeah... getting caught out of evil mode can be scary... WHAT DO I PRESS TO
LEAVE... CTRL-F... dafuq?

------
asuffield
Gah, the tutorial keybindings! They are mad. I've been using emacs for a very
long time, and I can't imagine using those to navigate. Emacs has perfectly
reasonable default keybindings these days, they just aren't the ones mentioned
in the tutorial.

Command: move down one line

What vi uses: j

What the emacs tutorial suggests: C-n

What I use in emacs: the down arrow

~~~
yulaow
Usually the strong defenders of emacs tell you that you must use c-n c-p c-b
c-f to move because those are better and you will adapt in a short time.

Then the strongest defenders of emacs tell you that you must use whatever you
want because the purpose of emacs is that the editor must adapt to you and not
the opposite.

~~~
clarry
Actually I think the strongest defenders of emacs say you use C-s and the like
for most navigation. Moving character-by-character is slow and inefficient, so
the argument about whether C-n C-p etc. are better or worse than hjkl is
irrelevant.

I have my own code editor which is more like vi than emacs, but I'm using
interactive search in it.

~~~
jessaustin
_I have my own code editor..._

That's the best line I've heard to finish an emacs-vs-vi argument!

~~~
aaronem
Well, sure, if by "finish" you mean "unite emacs partisans and vi aficionados
in mutual and vaguely contemptuous pity".

------
orthecreedence
Emacs + evil, sure, but _please_ don't forget vim + slimv. I tried emacs for a
bit when I was first jumping into lisp, but was also evaluating vim at the
same time. After about 6 weeks I was having _fun_ with vim. About a year
later, I was really fast in vim. Fast forward another year or two, I think in
vim. There are no modes or movements or searches. There's just what's in my
brain and it sort of writes itself. Granted, I'll stop and think to record
macros here and there, but otherwise it's all really fluid. Add the fact that
I do lots of server admin to the mix, and heyyyy there's vim already there.
How ya doing ol' buddy?

Then you add slimv to the mix. Honestly I never gave slime a fair shake. I
barely scratched the surface. But once I got slimv up and running, I felt like
I didn't need to learn emacs+slime. Maybe there are some things I don't know
about that I'm missing out on, but slimv, like vim, let's me think in lisp.

So if you're a lisper and you like vim, don't jump ship yet! Give slimv a
shot.

~~~
laichzeit0
I tried slimv recently and couldn't get it to work with Racket. There's a
swank Racket project on github but it was extremely buggy. I also tried mit-
scheme and it was buggy as well. It randomly freezes and I don't know why.
(latest vim, etc.)

What do you use it for? It seems if you're using common lisp it's perfect, for
everything else it works "in principle" but not really.

~~~
jadyoyster
For what its worth, Emacs users usually use Geiser with Racket. Might be why
Swank doesn't work all that well.

~~~
616c
Yeah. I was going to say the only Scheme I have seen run in Slime/Swank is
Chicken Slime, which is custom fork that overlays slime to handle specific
extensions to Chicken scheme. I also play with Racket and had no idea a slime
variant existed! Not that I would want it personally, as geiser only intends
to support Guile and Racket thus far.

------
cies
Emacs+Evil is the next Vim.

And yes, CtrlP is probably the thing you'll miss most.

But all the other things I got from switching from Vim to Emacs+Evil easily
outweigh the missing CtrlP.

Vim was great, until I wanted to customize it heavily. It is simply not made
to facilitate things like: child processes, SSH, understanding my code, a
visual interface for Git.

~~~
akerl_
Do one thing well. My text editor shouldn't be managing child processes or
SSHing or trying to be a visual Git interface, and Vim does a great job
displaying my code so I can understand it.

~~~
qbrass
Displaying code and editing it are two separate things. Sounds like Vim is
pretty bloated acting as both an editor and a pager.

Use ed to edit, and pick a side in the more/less wars if you want to read it.

~~~
gknoy
I realize that you're joking, but... vim is a better less than less is, in
almost all cases, for viewing code, because you get syntax highlighting.

I'm not a vim user, but I use it to replace less because syntax highlighting
is the bee's knees: (you may need to change `vim74` to whatever it is on your
system.)

    
    
      alias less='/usr/share/vim/vim74/macros/less.sh'
    

You can then do things like:

    
    
      less Makefile +400
    

which pairs very nicely with `grep -n`.

~~~
tomjakubowski
Why not just pipe pygmentize to less? That's truly embracing The Unix Way™.

    
    
      pygmentize foo.py | less -r

------
athenot
Whether it's vim or emacs, I've always been amazed how these tools can become
an extension of the brain like an instrument whose purpose is to materialize a
thought process. Framed that way, the editor wars look like a pianist debating
with a violinist of the superiority of their respective instruments to convey
human emotion.

Watching a seasoned vim or emacs user create, mold, shape, reformat text like
it was a piece of clay in the hands of a potter is truly inspiring.

As for me, my instrument of choice is Sublime Text (which, I guess, downgrades
me to the status of a flute player), though I occasionally use vim for Ops
stuff. I think there are some mac-centric UX patterns that I have a hard time
giving up.

~~~
aaronem
> I think there are some mac-centric UX patterns that I have a hard time
> giving up.

I can certainly understand that; I'm a relative newcomer to the platform, and
while Emacs (of course) continues to behave regarding meta keys in the fashion
I've spent a lifetime learning, getting used to Option-arrows for "move to
next/previous word", and Command instead of Control for shortcuts, is really
bothering me.

(Of course, that's mostly just because forcing the user to cramp her hand up
like that, in order to access even the most commonly used keyboard shortcuts,
is just a really stupid and un-Apple-like piece of user interaction design,
and I've yet to find a good way to fix it.)

~~~
mmorris
If you'd like to properly remap _move to next /previous word_ and other
commands in Mac OS X, I'd recommend Karabiner (which was previously called
KeyRemap4Macbook).

[https://pqrs.org/osx/karabiner/](https://pqrs.org/osx/karabiner/)

I use it to map the emacs navigation keys for use across the OS, and find it
really improves my experience. If you're interested in that set up, I use the
following options, which are all listed under Emacs Mode: \- Control + PNBF to
Up/Down/Left/Right \- Control + A/E to Command + Left/Right \- Option + B/F to
Option + Left/Right \- Control + D to Forward Delete

Of course, I have _caps lock_ remapped to Control.

There are also Vi remap options in Karabiner, plus tons of other stuff.

Disclaimer: I'm a bit of an emacs lightweight, so it might be that the
remapping options aren't as full-featured as what a more advanced user would
like.

~~~
aaronem
I use KeyRemap4Macbook for a variety of purposes, mostly related to making a
PC-style USB keyboard play nicely with OS X. It doesn't go as far as I'd like,
though.

------
tach4n
Another option for "modal" editing in emacs is god-mode(1). It lets you use
emacs commands without modifier keys. I have it set to change my mode-line
color when it's activated, it's great if you want a little taste of vim but
not the problem of trying to shoehorn vim key-bindings into emacs.

1\. [https://github.com/chrisdone/god-mode](https://github.com/chrisdone/god-
mode)

~~~
MichaelDickens
I used to use this, but I found that a lot of the convenience of modal editing
comes from the ability to compose commands. I took the time to learn Vim
keybindings; now I use evil-mode and I like it a lot better than god-mode.

------
grundprinzip
I don't know why, I find this post greatly uninformative. Yes, you can have
some kind of Vim mode in Emacs (as you can in Sublime) and yes it takes time
to remember key-bindings. If you have years of experience in Vim, why would
you expect to get used to Emacs keybindings in a short time?

It's like moving to a foreign country and then continue to buy and to eat only
your old local food, and go out and talk to only people from your old home.
You will miss so much.

------
elwell
Hmm... this post didn't seem to say that much. We got a couple points and then
a sudden conclusion. Just saying...

~~~
craigching
I agree, but it did kick off another "vim vs emacs" which is always fun :)

------
nick_riviera
Until it goes wrong or you have to delve into elisp or you get carpal
tunnel...

After 20 years of switching back and forth I decided I wanted an extensible
editor not a programming language with an editor built in. That's worked well
for me.

I really always just want the simplest thing that will work as I need to rely
on it entirely and understand how it works. If I was to use emacs, I'd
probably use mg as shipped with OpenBSD.

~~~
phaer
> Until it goes wrong

Why? Emacs reports errors fine in my experience and if not it includes a
debugger.

> or you have to delve into elisp

What's the problem with elisp? I guess its a matter of preference, but in my
opinion elisp is easier to understand than vim script. Emacs includes
extensive(!) documentation for it in it's base distribution. Granted, it's a
dated language nowadays, but 3rd party libraries - easily installed through
elpa - like dash.el and s.el make it a much more pleasant experience.

> or you get carpal tunnel...

Again: Why? This article is about viper-mode which emulates vims key bindings
so RSI should be exactly as likely as with vim itself. You could also adapt
them to your needs, of course.

~~~
Spiritus
>What's the problem with elisp?

So I was trying to make Emacs _not_ drop its stupid temp files next to the
opened file and found this piece of incomprehensible code:

    
    
        (setq backup-directory-alist
              `((".*" . ,temporary-file-directory)))
    

While in Vim:

    
    
        set backupdir=~/.vim/backups
    

Oh, and it seems I'm missing line numbers, let's google on how to enable them
and found this page
[http://www.emacswiki.org/emacs/LineNumbers](http://www.emacswiki.org/emacs/LineNumbers)

I still haven't gotten it to work.

Meanwhile in Vim

    
    
        set number

~~~
unhammer
The reason the backup-directory in emacs is an association list instead of a
simple string is that some people might want some backups in some dirs and
other backups other places. More powerful → more complex.

Turn on line numbers everywhere by putting this in ~/.emacs.d/init.el:

    
    
        (global-linum-mode)
    

(Yeah, EmacsWiki is a mess, but that's not emacs' fault.)

~~~
MetaCosm
When I spent a few weeks learning Emacs -- I had to filter out EmacsWiki
because it lied to me so many times. :(

------
bmoresbest55
I still do not undertand the devotion that people have with these text
editors. I prefer Vim however I could see myself using it soley or even half
the time. I feel like I know the basic commands and it is fast but with the
ease of a sublime text or something similar why do people still use these
pieces of software so frequently? (Not a rhetorical question)

~~~
super_mario
Because UNIX shell is the most powerful integrated programming environment for
development with any language/technology combination. Instead of your typical
menu commands (you are lucky if you have 100 or so commands to do very basic
and limited things on a selection that you must build with mouse manually) you
literally have tens of thousands of extremely sophisticated commands that can
easily be chained together to produce amazing things with very little work.

Vim is just part of that tool chain designed to edit text efficiently. Vim is
not so much a text editor as it is a language for manipulating text. Vim has
dozens of motion commands to move cursor over chars, words, sentences,
paragraphs, code blocks, methods, pages, regex etc. So general form of vim
commands is nCm i.e. repeat n times command C to the text cursor moves over
with motion command m. So for example w is a command that moves to the next
word. d is a delete command. So, dw says delete word. 5dw says delete next 5
words. Let's say you are inside if (.) block and you want to change the if
condition. ci( says "change inner bracket text" (i.e. everything inside
brackets). This deletes everything inside () and puts you to INSERT mode and
let's you type new condition.

This makes Vim extremely predictable and discoverable. You learn a new command
say gU (turn to upper case) and you immediately know how to turn to upper case
entire word because you know how to move by words with w. gUw turn entire word
to upper case. gU) turns entire sentence to upper case, etc.

After a while these things just become part of you, and you become really fast
at bending text to your will without even thinking. The fact that you can
navigate text/code and get to where you want in matter of milliseconds (faster
than it takes you to take the hand off the keyboard and reach for the mouse,
shake the mouse to find where the cursor is etc) is amazingly liberating of
disruptive context switches.

And then if you add shell integration, it means you can apply advanced filters
to your text to do pretty much anything. This gets as esoteric as run filter
on regex in lines that match another regex, where regex can be any Perl
compatible regular expression. But can also be as simple as reformat code,
beautify paragraph, insert current date, listing of directory etc. Then you
add code completion, file navigation etc and you have something amazing.

~~~
bmoresbest55
So where would you suggest going to learn all of this seemingly endless amount
of information?

~~~
super_mario
Don't aim to learn everything. Learn to be productive and get to the point
where you do things you do fast enough. Vim itself has enormous amount of
functionality, so it is useful to read vim reference manual. It comes with one
and you can get one in PDF as well here:

ftp://ftp.vim.org/pub/vim/doc/book/vimbook-OPL.pdf

Also read entire exhaustive help at least once so you get the idea of what is
available (it can be done in one weekend, don't try to memorize too much just
familiarize yourself with content, then later when you wonder how would you do
that in Vim you will remember you read something about that once).

Vim has really great indexed help that you can access directly:

:h :h index :h <topic>

and there is also grep for help to search entire help for matches

:helpgrep <search_term>

No matter what you do understand that you will get slower before you get
faster. At first expect your productivity to go down seriously, because
everything will be strange and new. But persist with it and force yourself to
use it. Once you get to the nicer bits you probably will not want to go back.
After 6 months of regular use, you will not be able to back, every other
editor will feel dumb and will frustrate you to no end (be careful when typing
email: ESC key dismisses the compose dialog in a lot of email programs without
asking you anything :D).

As for UNIX shell and tools, again get a good BASH tutorial book and learn the
basics of interactive shell, learn how to do loops, globs etc. The rest is
then all about learning individual tools, not shell itself, which is rather
small command interpreter. Look in your /usr/bin and /usr/local/bin for
commands and read their man pages. Experiment a lot with them and look at
examples of creative use of these.

Back in the early 90s I had a year long course in vi (not Vim) but started
using Vim on Amiga 500 days, and after 20 years I still come across new
commands and ways to do things. This is the beauty of Vim, you grow with it
and it never stops to amaze you. But it is a skill that you keep for a
lifetime. It's like learning to touch type, you do it once and you type
efficiently for the rest of your life. You may get faster or slower at times
in your life but you are always faster than hunt and peckers. Same with Vim,
dumb editors come and go, but none ever approach the completeness of Vim.

------
Aardwolf
A relevant comic:

[http://hackles.org/cgi-bin/archives.pl?request=284](http://hackles.org/cgi-
bin/archives.pl?request=284)

~~~
davidw
I was reminded of this one:

[https://twitter.com/tpope/status/439060962448912384](https://twitter.com/tpope/status/439060962448912384)

------
gergles
I do wonder what it would be like to use an editor where the main cursor
navigation was forward/backward incremental search. One case of this is the
Canon CAT[1] word processor, which used "LEAP" keys for cursor movement (and
nothing else).

I'm often curious how productive it would be to use while coding.

1:
[https://en.wikipedia.org/wiki/Canon_Cat](https://en.wikipedia.org/wiki/Canon_Cat)
Bonus link: [http://clickamericana.com/media/advertisements/the-canon-
cat...](http://clickamericana.com/media/advertisements/the-canon-cat-word-
processor-1987)

~~~
muraiki
The EasyMotion plugin for vim has a feature similar to this. When I start
searching it matches incrementally, highlighting matches on each screen which
I can cycle through with tab. When I see a screen with the match I want, I
press enter and then the first 1 or 2 characters of each match are replaced
with something like a, b, or ;a. Pressing the appropriate key combination
jumps straight to the desired word.

However, if you're just editing text on the same screen you can skip the
search. I have it set up so that I press ,w and then every word after my
cursor has its first one or two characters replaced. I can jump to any word by
pressing those. There's also a hybrid mode where pressing one key and then the
first letter of the desired word highlights only those matching words on the
entire screen, which I can then jump to.

[https://github.com/Lokaltog/vim-easymotion/](https://github.com/Lokaltog/vim-
easymotion/)

------
sousousou
I'm both a vim and emacs user. I love vim for all the reasons everyone always
mentions, but emacs comes out ahead consistently basically because emacs-lisp
is so much more usable to me than vimscript. I find it much easier to create
or modify plugins in emacs... Don't like the (often overfeatureful)
functionality of a plugin? Change it!

------
weavie
The last time I tried Emacs+Evil I found that when pressing Ctrl+[ there was a
slight delay when moving back into command mode. I was constantly tripping up
when typing furiously.

This alone was enough to move me back to Vim. Everything else about Emacs was
awesome. I would love to go back if I could get over this one problem..

~~~
DrStrngeluv
Were you using console mode emacs? I use evil+emacs and I use it in its own
window instead of on the console for that very reason.

~~~
weavie
Yes, I live in the console.

------
jeffreyrogers
I was looking at Slackware Linux the other day and came across this page
[http://www.slackware.com/install/softwaresets.php](http://www.slackware.com/install/softwaresets.php).
I enjoyed how emacs got its own software set due to its size.

------
rdtsc
> I completely do not understand how anyone can use Emacs’ default
> keybindings.

I completely do not understand how switching modes is a good idea in an
editor. It just doesn't fit in my brain somehow. I start typing and randomly
end up pasting and cutting. I want to paste and cut it randomly types my
commands in insert mode.

Emacs cords are pretty intuitive to me. I don't know many: just moving,
saving, creating 2 windows, search & replace, cutting and pasting. There are
hundreds more, but you can get away with a few basic ones.

Save needing to rebind the Ctrl key to CapsLock, emacs key-bindings are
optimized to not have to move the hands to the mouse or arrow keys, which I
appreciate. Vim's are as well, but again I don't like modes, so there is that.

~~~
Afton
I can't find it now, but the guy running
[http://www.viemu.com/blog/](http://www.viemu.com/blog/) has a good
explanation for this problem. Basically, while there are modes, you don't work
like that. You are always in command mode, and you slip briefly into e.g.
insert mode, before popping back out to the 'default' command mode. This
perfectly described how I work in Vim, and when I passed it around my office,
several people had 'ahah!' moments. YMMV.

~~~
jng
[http://www.viemu.com/a-why-vi-vim.html](http://www.viemu.com/a-why-vi-
vim.html)

~~~
Afton
Thank you!

------
Igglyboo
So when i'm programming I find myself spending far more time thinking about
what to type next than actually typing it, seems to me like there isn't much
to gain by learning vim/emacs or am I missing something?

~~~
axiomabsolute
People often mistake the succinctness of vim's commands as an attempt to save
a few keystrokes typing, but that's only a side benefit.

The vim command structure makes it trivial to define transformations on common
blocks of text; words, sentences, paragraphs (lines), blocks of code inside
{..}, etc. It makes it easy to repeat those commands, by repeating them a
fixed number of times, applying them to every instance in the file, or asking
for confirmation around each one.

But, most importantly, it means that we can now extract that little bit of
text-transforming functionality into a script we can save and bind to a new
command (if it's something particularly reusable). This is really what vim is
about to me - providing a language to describe text transformations, in the
form of sequences of commands. This means that the way I code every day,
conveniently saving me a few seconds like you mentioned above, is the same
method I use when writing/editing plugins/macros for the editor to do more
complicated tasks, like say consistently formatting every line of a log file
that begins with [ERROR] and removing all other lines, so we can process it
with some other tool.

Sure, you could write a script in [python/perl/ruby/etcetcetc] to do all that
just as well, but the point is that Vim provides a nice little domain specific
language right at your fingertips, optimized for working with text at a higher
level, capable of handling one-off jobs as easily as big jobs over a whole log
file or even as a little command to be reused later.

------
elwell
My main concern with Emacs (at least on Windows) is that it actually crashes
every now and then. I haven't dealt with many programs in the past few years
that do still that.

~~~
jeremiep
I haven't used Emacs on Windows much but from what I remember crashing wasn't
my main issue with it: slow I/O access time were the issue. For some reason
they were orders of magnitude slower than on linux/osx.

------
tuhdo
If you want to see what Emacs is capable of, check "Emacs Mini Manual" that
has the demo at the beginning: [http://tuhdo.github.io/emacs-
tutor.html](http://tuhdo.github.io/emacs-tutor.html)

Then, if you worry about fuzzy project finders, better one exists that does
not need fuzzy (I ditched all fuzzy finders for it):
[http://tuhdo.github.io/helm-intro.html](http://tuhdo.github.io/helm-
intro.html)

------
therealmarv
So many Emacs articles the recent days... please tell me: Should I really
switch to Emacs as a web developer? Is it really superior to SublimeText and
Brackets for a web dev?

~~~
terhechte
It depends on how you plan your future. I've used quite a few text editors
over the years (Bluefish, Scite, Homesite, Phase5, Idle, TextMate, Vim,
others). I switched to Emacs more than a year ago with one clear goal: Not
having to switch anymore. You see, most of the editors above (except vim) used
to be good and then were deprecated, sold, stopped, and so on. Which of those
has been existing for more than 20 years and is still able to hold up to new
editors. Sadly, none (One could argue for TextMate 2, but in between there
were many, many years of staleness).

I was fed up with having to switch to a newfangled editor every so many years,
having to identify new plugins, having to learn new keybindings. I've used Vim
for 7 years (I think) and it came pretty close, but in the end the archaic
VimScript language and the lack of async commands was something that was
nagging me. I wanted to call an editor home, and hone my skills until I pass
away, increasing my arcane knowledge over 10-20 years, learning ever more
about the scripting language, commands, and writing more and more specific
plugins that help with my tasks.

I still want to be coding in 10 years, but I don't want to switch text editors
ever again. Emacs shall be my final editor [1], and that's why I decided to
switch. Because I can see Emacs still going strong in another 20 years. I
wouldn't want to say that about Sublime, or really any other editor right now.

[1] There's a case to be made that NeoVim is going to be great, and it may
well be, but right now I'm really, really, really happy with Emacs + Evil.
Nothing is perfect, of course, but the things that bug me are really, really
small things that I could probably even fix, if I'd invest enough time; but
they don't bug me enough for that.

~~~
e12e
Maybe I'm a bit dense, but when are asynchronous commands a pain point in an
editor? I mean, you can run eg a script that forks into the background, right?
I'm not sure I really want to do "r! long-running-thing-that-updates-buffer".
I can see me wanting to do "! long-running-compile &" (in the background). And
I can do that in vim?

~~~
scintill76
One of the things that has caught me is syntax checking. I use the syntastic
plugin, set to check syntax on write, and I apparently save my changes pretty
frequently. Some files can take 2-3 seconds to run an external syntax checker,
during which time I can't edit the file.

I guess the real problem is me saving too often. Others may be trying to run a
long make from vim and wanting to continue editing or looking through files.

~~~
e12e
No, that sounds like a valid usecase (and/or a horribly slow syntax check --
I'm not familiar with syntactic... does it do some kind of heuristic grammar
check?).

~~~
scintill76
I think usually it just runs the compiler in a syntax-check mode. For
instance, it runs gcc with -fsyntax-only. I think I have sometimes seen style
warnings too, so maybe there is more than that. Maybe I could configure it
better to be faster, but for now it doesn't bother me often enough.

~~~
e12e
Is this for c++? You might benefit from moving to cmake with the ninja backend
(ninja being the important part not cmake) -- depending on what kind of
projects etc etc.

------
laichzeit0
I like that he mentioned CtrlP. It's the single plugin that prevents me from
switching to Emacs.

There is currently nothing in Emacs (last I played with this was 3 months ago)
that is 100% equivalent to CtrlP. There are some close approximations but
they're not as good the real deal. I can understand how Emacs guys won't even
notice this because they've not worked with something that's better than the
best they have, but for Vim guys it sucks.

~~~
mklappstuhl
Agree. I'm using projectile[1] for now but that somehow messes things up with
caching files so that I actually cannot search my project files. I assume that
might be a fault on my side though.

Have you tried projectile? From reading the Readme this was exactly what I was
looking for as a Ctrl-P replacement.

[1]
[https://github.com/bbatsov/projectile](https://github.com/bbatsov/projectile)

~~~
austintaylor
I use projectile with caching turned off with flx-ido for sorting. I heavily
favor (projectile-find-buffer) once I get going since loading the whole tree
is pretty slow on a large project. I'm way more happy with this setup than I
was with CtrlP.

------
pvaldes
(I'm currently toying with the editor able (ql:quickload "able") (able:start),
so at this moment, I'm not in a good position to figth at those thumb wars...
but, as long time and happy emacs user, I need to tell the world that "little
pinky" is alive and tipping, thanks)

You can have it all, emacs, and vi... so, what is the bigg fuss?

------
jeffbr13
Vim's home-row commands are great... Unless you use a non-QWERTY keyboard
layout.

A lot of developers forget that there exist other methods of input, and
mnemonic-based shortcuts are one of those things that make a lot more sense
than attempting to optimise for a tiny reduction in finger-movement (which
ought to be the domain of the input-device anyway).

~~~
chillacy
Actually as a dvorak user I find it tolerable. jk are where cv sit and hl is
jp, which means going up/down is left hand, left right on the right hand, and
the keys are in the correct orientation as well

------
bshanks
I use emacs with the 'viper' mode extension, along with a custom keymap that i
made that places the keys i use most on and near the home keys:
[https://github.com/bshanks/viperre](https://github.com/bshanks/viperre)

I actually use viperre with a Colemak keyboard map, but there's a QWERTY mode
too.

------
sprayk
I really wanted to use Org-mode, but my vim muscle memory and lack of
knowledge of keybindings to do useful things like copy/paste and move around
with more than just arrow keys were preventing me from being productive.
Finally got Evil installed and haven't looked back! Evil and Org-mode work
great together.

~~~
hsitz
They do work fine together, but unless you remap the Org-mode control key
combinations then none of your Org-mode specific stuff will feel very vim-
like. I think one good little project would be to remap all the Org functions
to vim-like key sequences. The info in this newslist thread is a small start
on that:
[http://thread.gmane.org/gmane.emacs.orgmode/52815](http://thread.gmane.org/gmane.emacs.orgmode/52815)

~~~
rorykirchner
There are a nice set of org-mode bindings for evil-mode in the prelude-evil.el
module that helps quite a bit:

[https://github.com/bbatsov/prelude/blob/master/modules/prelu...](https://github.com/bbatsov/prelude/blob/master/modules/prelude-
evil.el)

------
dang
Is anybody besides me still having the problem with Emacs on Mavericks where
the OS X distnoted process gradually eats up gigabytes of RAM? It seems to
have to do with running multiple instances of Emacs.

~~~
amitp
Yes. Frustrating bug. I ended up compiling my own, but I think the newer
pretests have the fix. If you want to build your own pretest with the
"Yamamoto Mitsuharu" version of Emacs (railwaycat), I posted the commands I
ran: [http://amitp.blogspot.com/2014/04/building-mac-os-x-
emacs.ht...](http://amitp.blogspot.com/2014/04/building-mac-os-x-emacs.html)

------
rorykirchner
emacs-prelude is a nice way to get started with emacs if you are a vim user:
[https://github.com/bbatsov/prelude](https://github.com/bbatsov/prelude)

You can enable the prelude-evil.el module and start out with a nice set of
bindings. It would be sweet if there were some more pull requests to make the
evil-mode bindings in prelude more closely match vim.

------
Yuioup
I use Vim on Windows. I tried to learn Emacs but I keep running into
roadblocks because of poor Windows compatibility of plugins.

~~~
elwell
I'm currently a Windows Emacs user. I'm curious, which plugins in particular
gave you trouble?

~~~
Yuioup
Ideally I wanted to set up an Emacs environment for Python development. I
tried to install the plugins mentioned on this page:

[http://www.emacswiki.org/emacs/PythonProgrammingInEmacs](http://www.emacswiki.org/emacs/PythonProgrammingInEmacs)

Couln't get flymake and pyflakes to work. pymacs was a non-starter so I
couln't use ropemacs.

I also tried CEDET, but that was an epic fail.

------
elwell
Brace yourself, an editor war will follow... and people commenting on the
presence of an editor war... like this comment.

~~~
dghf
"I used to make jokes about Emacs just as Emacs users about Vim but actually
it seems to be a pretty decent piece of software."

BURN THE APOSTATE!

[Will this do?]

------
mcguire
This weekend's project: ed mode for Emacs.

------
santiagobasulto
"a pretty decent piece of software"?

------
azinman2
Vim.

------
jheriko
notepad and other modern solutions... they are ubiquitous for a reason. typing
is such a tiny part of programmer productivity compared to thinking...

... do a little more thinking and never have this problem again, learn to
adapt to whatever text editor is on the system etc.

~~~
hellodevnull
I used to this like this but honestly once an editor like vim or emacs becomes
second nature, typing and editing and moving text around the screen feels a
lot smoother and make programming more enjoyable.

But I still don't think "you might have to use a machine that only has vim
installed and not your preferred editor!" is a good reason to spend time
mastering how to use it (which is what I often hear). If you prefer emacs or
sublime or whatever, use it, and just put up with vim if you're on this
hypothetical scenario where they're not available.

------
mercurial
It's still too slow for me. I have often several vims open, usually for a
short time, and I'm not going to start a daemon in my session to have a decent
startup time, that's unreasonable. Also, even setting a theme like solarized
dark turned out to be a headache last time I tried. I think I'll wait for
neovim.

~~~
omaranto
You mean _startup time_ without using the server and client setup is too slow,
right? (That's easily solved by, well, using the server and client setup, of
course.)

I find that in actual operation Emacs is faster and that's the reason I
switched from Vim to Emacs. Even after using all the tricks in Vim's :help
tex-slow, Vim still lagged when I scrolled or even typed into LaTeX files
(unless I turned off syntax highlighting), and I'm not such a great typist.
Emacs is perfectly snappy.

~~~
mercurial
Ah, I'm not a Latex person. In my experience, vim works fine, even on very
large files, unless you combine syntax highlighting with very long lines, in
which case you're going to suffer.

But yes, I admit that I find silly that I should need a 'server' for a text
editor. Not to mention that I remote into various VMs regularly which would
also need to get their own server/client setup if I wanted a homogeneous
working environment.

~~~
jerf
Generally you have emacs do the remoting.

I use emacs in a work environment that is primarily Vim and where we end up
logging in to a lot of machines to do development on, and the two things that
turn heads in my emacs setups are my fluent and flexible use of multiple
windows and frames, and the fact that I'm always using my local emacs and I
use Tramp to remote in to the machines, so I don't have to screw around with
.vimrc files on half-a-dozen machines. Both are stock emacs.

~~~
mercurial
It sounds like it's only practical when you know you want to edit things in
the first place, as opposed to "it doesn't work, let's restart the service in
my existing SSH session and have have a look of the log" sysadmin-style-
workflow.

~~~
klibertp
No, Emacs/Tramp supports remote shells too.

