Learn Practice Daily golf Reference
Guides · Comparisons

Vim vs Emacs: modal editing or a programmable workshop

Vim is a modal editor: you switch between a mode for moving and editing and a mode for typing, so most commands are plain letters. Emacs is modeless and endlessly programmable in Emacs Lisp, with commands on Ctrl and Alt chords and built-in tools like Org mode. Pick Vim for fast text editing that works on almost any machine; pick Emacs if you want one environment you can reshape for notes, writing and code. With Evil mode, you can have Vim keys inside Emacs.

Vim and Emacs, feature by feature (November 2026)
Vim (and Neovim)Emacs
Editing model Modal: Normal mode for commands, Insert mode for typing Modeless: keys type text; commands are chords with Ctrl and Meta (Alt)
Example: save, then quit :w, then :q Ctrl-xCtrl-s, then Ctrl-xCtrl-c
Run a command by name : and the command M-x (Alt+X) and the command name
Extension language Vimscript and Vim9 script; Lua in Neovim Emacs Lisp; the core is an Emacs Lisp interpreter
Built-in tutorial vimtutor (:Tutor in Neovim) Ctrl-h t
Notes, outlines, agenda Plugins Org mode, included with Emacs
Packages Native packages (:h packages) or a plugin manager Built-in package system (package.el): GNU ELPA and NonGNU ELPA, and MELPA if you add it
Startup Fast with a small config Grows with your config; many people keep one Emacs running as a server
In a terminal Yes; also gVim and Neovim GUIs Yes (emacs -nw), and as a graphical app
On a remote server vi or Vim is nearly always there Often not installed; built-in TRAMP edits remote files from your local Emacs
The other one's keys Only through your own mappings or plugins Evil gives you Vim's modes and motions

Modal keys versus chords

The deepest difference is how you give commands. In Vim you spend most of your time in Normal mode, where letters are commands: w moves a word, d deletes, so dw deletes a word and ci( changes everything inside the parentheses. You press i to type text and Esc to stop. Commands combine like a small language (operator, then motion or text object), and . repeats the last change.

In Emacs the keyboard always types text, and commands live on modifier chords: Ctrl-f and Ctrl-b move forward and back a character, M-f (Alt+F) a word, Ctrl-k kills to the end of the line, and longer commands start with a prefix such as Ctrl-x. Anything without a key is one M-x away by name. There is no mode to forget you are in, which many people find easier at the start.

Both scale with practice. Vim's grammar means a few dozen keys combine into hundreds of edits; Emacs's named commands and chords mean everything is discoverable and rebindable. Which feels better is largely about how you like to think, and how your hands feel about Ctrl.

Try it here

An Org file, edited the Vim way

Org files are plain text, so Vim keys work on them too. Mark the first task done with ciw, repeat it two lines down with 2j and ., then delete the middle task with k and dd. Not one modifier key.

1 of 3Change TODO to DONE with ciw
1* TODO Write the report
1* TODO Book the venue
2* TODO Email the speakers
NORMALLoading the editor…1/30.0s1:3

This editor needs a keyboard. Read on, and play it at your computer.

Practise the keys

Emacs chord, Vim key

Each line names what an Emacs user presses. Type the Vim keys for the same job, starting in Normal mode.

Kill to the end of the line (Emacs C-k), in one key.
scroll here, then press the keys
1 of 6
Kill to the end of the line (Emacs C-k), in one key.

Extensibility: Vimscript and Lua, or Emacs Lisp

Both editors are programmable, to different depths. Vim is configured in Vimscript (and since Vim 9.0, the faster Vim9 script); Neovim adds Lua. Plugins add features on top of an editor whose core is written in C.

Emacs describes itself as "an extensible, customizable, free/libre text editor — and more", and its core is an interpreter for Emacs Lisp. Much of what you use is written in Lisp, and you can inspect, redefine or extend nearly any function while Emacs is running, then see the change at once. That is why people use Emacs as a mail client, file manager (Dired, built in), Git interface, or an editor for remote files (TRAMP, built in). The cost is that there is more to learn and more you can tinker with indefinitely.

Org mode

Org mode is the feature people most often cite as a reason to use Emacs. It is a plain-text system for notes, outlines, to-do lists and agendas, authoring documents, and computational notebooks and literate programming, where code blocks in a document can be run and their results kept alongside. It ships with Emacs.

Vim has plugins that cover parts of this (outlining, to-do lists, wiki-style notes), and Org files are plain text you can edit anywhere, but nothing in the Vim world is as complete or as widely used as Org mode inside Emacs.

Startup and day-to-day speed

A small Vim config opens almost instantly, which suits a workflow of opening and closing the editor many times a day from a shell. An Emacs config that loads many packages takes longer to start, so a common Emacs habit is to start it once and keep it open. The Emacs manual describes running it as a server (emacs --daemon) and opening files with emacsclient, which reuses the running Emacs with its buffers and history; setting EDITOR to emacsclient makes other programs, such as Git, use it too.

Configuration frameworks on both sides put effort into lazy loading. Doom Emacs, for instance, lists startup and run-time performance as priorities.

Vim keys inside Emacs: Evil, Doom Emacs and Spacemacs

You don't have to choose between the two styles of editing. Evil is an Emacs package that "emulates the main features of Vim": Normal, Insert and Visual modes, operators, motions, text objects, registers and macros, inside Emacs. It installs from MELPA or NonGNU ELPA.

Two popular configuration frameworks build on it:

  • Doom Emacs calls itself "a configuration framework for GNU Emacs" and offers optional Vim emulation powered by Evil, alongside a non-Evil setup.
  • Spacemacs is "a community-driven Emacs distribution" focused on Evil, with the motto that "the best editor is neither Emacs nor Vim, it's Emacs and Vim".

If what draws you to Emacs is Org mode or Lisp, and what you like about Vim is the keys, this is the usual way to have both. Emacs also ships an older vi emulation, Viper, though most people who want Vim keys use Evil.

The editor war, briefly

Vi and Emacs users have argued since at least the mid-1980s, when Usenet flame wars on the subject became a tradition. Much of it was always in good humour: Richard Stallman, who created GNU Emacs, plays "St IGNUcius" of the Church of Emacs, which holds that using a free version of vi is "not a sin but a penance". Both editors have now been in use for decades, both are actively developed, and plenty of people use both, often Vim (or vi) on servers and Emacs on their own machine.

What carries over

If you learn Vim's motions, they work in Vim, Neovim, Emacs with Evil, and the Vim modes of VS Code, JetBrains IDEs and Zed, so learning them doesn't lock you into either side. You can practise them in a browser at the course or look them up in the cheat sheet.

Which should you pick?

  • You mostly edit code and config, and want it fast with few modifier keys Vim (or Neovim). The modal grammar is built for editing text, and it starts instantly.
  • You work over SSH on machines you don't control Vim. vi or Vim is almost always installed; Emacs often isn't, though TRAMP lets your local Emacs edit remote files.
  • You want one programmable place for notes, agenda, writing and code Emacs. Org mode and Emacs Lisp are the reasons to choose it.
  • You like Vim's keys but want Org mode Emacs with Evil, either set up yourself or through Doom Emacs or Spacemacs.
  • You already use one of them comfortably Stay. Switching costs weeks, and both can do what most people need.

Questions

Is Emacs harder to learn than Vim?
They are hard in different ways. Vim asks you to get used to modes on day one; Emacs lets you type straight away but has a very large surface of commands and configuration to grow into. Both include a tutorial: vimtutor and Ctrl-h t.
Can I use Vim keybindings in Emacs?
Yes. Install the Evil package, or use a framework like Doom Emacs or Spacemacs that sets it up for you.
Which is better for programming?
Both handle any language. Neovim has a built-in LSP client, and Emacs supports language servers too, so the choice comes down to the editing style and how much you want to customise.

Sources