
Emacs could be said to be written in its own extension language (strictly speaking, the reverse is true: lisp supports run-time modifications of the running instance, and modifications automatically work and are incorporated if they are syntactically correct). In fact, configuration files for Vim are just commands that can be input through the command mode.Įmacs advocates often point to the extreme customizability of the editor as its crowning achievement.

The command mode allows configuration options to be set, functions to be defined, and macros to be made. Vim can also be extended on the fly by using the command mode. Emacs can be extended in elisp, while Vim has its own internal scripting language called and supports use of other programming languages for plugin development.

Or when you want to interact with a Read-eval-print loop - Emacs really shines at this, Vim only has clumsy hacks to offer.īoth Vim and Emacs support multi-byte characters, although for a long time, international characters were only available through plugins for emacs.īoth Vim and Emacs support plugins that enhance their functionality. That’s when you start a long compilation and want to do something else inside the same editor instance while the compiler is churning. One domain where Emacs is plain better than Vim is interaction with asynchronous subprocesses.
#Vi vs emacs code#
Beyond the basics such as syntactic coloring and automatic indentation, both have advanced IDE features such as code and documentation cross-reference lookups, assisted insertions and refactoring, integrated version control, and the ability to initiate a compilation and jump to the first error. But you can use Emacs as a mere editor (see “feature bloat” above)īoth Vim and Emacs have support for a lot of programming languages and other text formats. Emacs is not just an editor: it’s also an IDE, a file manager, a terminal emulator, a web browser, a mail client, a news client, … Whether that’s a good thing or a bad thing is a matter for debate. This doesn’t happen every day, but it does accumulate over the years. Emacs wins spectacularly when you try to do something that the authors just didn’t think of. However, Vim is an editor with a macro language Emacs is an editor written in Lisp with some ad-hoc primitives. For an ordinary user, this argument is irrelevant: Emacs is easily available for every desktop/server OS, and since it supports remote editing, it’s enough to have it on your desktop machine anywayīoth editors are programmable, and there is an extensive body of available packages for both.
#Vi vs emacs professional#
If you’re a professional system administrator who works with Unix systems, or a power user on embedded devices (routers, smartphones with Busybox, …), you need to know vi (not Vim), because it’s available on all Unix systems and most Unix-like systems, whether desktop, server or embedded. I don’t think there’s anything Vim can do significantly more efficiently than Emacs, whereas the converse is true. Home row keys are nice, but they often aren’t that much of a win because you have to switch modes. My personal opinion is that Emacs ultimately wins unless you have a typing disability (and even then you can configure Emacs to require only key sequences and not combinations like Ctrl+letter). Proponents of Emacs retort that Emacs has a lot of commands that are not frequently used, so don’t warrant a key binding, but are damn convenient when you need them.

Proponents of vi(m) argue that you can do pretty much everything without leaving the home row, and that makes you more efficient when you need it most.
