Need advice about which tool to choose?Ask the StackShare community!


+ 1

+ 1
Add tool

Emacs vs Neovim: What are the differences?

Emacs and Neovim are powerful and extensible text editors known for their extensive customization and efficiency. Let's explore the key differences between them.

  1. Customizability: One of the main differences between Emacs and Neovim is the approach to customization. Emacs has a powerful and well-established system that allows users to customize almost every aspect of the editor, from keybindings to completely changing its behavior. Neovim, on the other hand, focuses more on using plugins for customization, providing a simpler and more modular approach.

  2. Performance: Neovim was developed with performance in mind, aiming to improve on some of the performance issues experienced with Emacs, especially when handling large files or running complex operations. Neovim's architecture and design decisions make it generally faster and more responsive compared to Emacs.

  3. Modal Editing: Neovim is built around the concept of modal editing, where different modes (insert, normal, visual, etc.) are used for different tasks. This approach allows for more efficient editing, as it separates the act of typing text from the act of navigating and manipulating it. Emacs, on the other hand, primarily uses a traditional non-modal editing approach where the user can directly type and edit text.

  4. Vim Compatibility: Neovim aims to be Vim-compatible, meaning that it tries to replicate most of the features and behaviors of Vim, a popular text editor known for its powerful modal editing capabilities. This compatibility makes Neovim a good choice for Vim users who want to take advantage of the benefits of a more modern and extensible editor. Emacs, while having some Vim emulation packages, does not strive to be fully Vim-compatible.

  5. Extensibility: Both Emacs and Neovim are highly extensible, but they achieve it in different ways. Emacs provides a built-in Lisp interpreter that allows users to write custom functions and modify the editor's behavior directly. This results in a highly flexible and extensible system, but also requires a certain level of familiarity with Lisp. Neovim, being built on top of Vim, uses its plugin system, allowing users to extend the editor's functionality with a wide range of existing Vim plugins.

  6. Community and Ecosystem: Emacs and Neovim have different communities and ecosystems supporting them. Emacs has a long history and a dedicated user base, with a rich set of packages and configurations available. It has been expanded upon and used for various purposes like writing code, scripting, and even as a complete operating system. Neovim, being a more recent project, has a growing community and ecosystem that focuses on modernizing the Vim experience, with an emphasis on performance and modularity.

In summary, Emacs excels in its all-encompassing ecosystem, while Neovim appeals to users looking for a streamlined, modernized version of the classic Vim editing experience.

Advice on Emacs and Neovim
Rogério R. Alcântara
Needs advice

For a Visual Studio Code/Atom developer that works mostly with Node.js/TypeScript/Ruby/Go and wants to get rid of graphic-text-editors-IDE-like at once, which one is worthy of investing time to pick up?

I'm a total n00b on the subject, but I've read good things about Neovim's Lua support, and I wonder what would be the VIM response/approach for it?

See more
Replies (6)

Neovim can basically do everything Vim can with one major advantage - the number of contributors to the code base is just so much wider (Vim is ~100% maintained only by B. Mooleanaar). Whatever you learn for Neovim you can also apply to Vim and vice versa. And of course there is the never ending Vim vs Emacs controversy - but better not get into that war.

See more
Jeffrey Johnson

Actually, the biggest advantage with Neovim (as a VS user) is that you can embed REAL Neovim as the editor UI, rather than using a "Vim emulation", you're using actual NVIM, embedded in VS!

"asvetliakov.vscode-neovim" is the extension you are looking for:

  1. Install the 'vscode-neovim; extension (
  2. Install Neovim version 0.5+ nightly
  3. Start winning.

(You can install neovim-nightly separately for just vscode, I usually build and install it to /opt/nvim - it's enough enough to do - let me know if you need help).

Works wonderfully. It might not work out of the box if you have some 100K epic nvim initialization file, but the plugin documents a workaround for having an embedding/VS specific configuration.

See more
Kudos Beluga

I don't actually notice much of a difference between the two, as the end result looks identical. If you use Vim and are switch to Neovim it's an extremely easy 1-minute process. I switched from Vim to Neovim. I can't say I found much of a difference, but the key points where Neovim could be better than just vim is that first, there are much more people maintaining Neovim compared to vim, which means fewer bugs and a modern code base. It also has a smaller code base which might result in a small speed improvement. Another thing is that it's basically just a fork of vim, so what harm can it do? ;)

See more

I recommend using vim 8+ it has native plugin support if you need language supports you can install the package vim-nox which will come with support for python, lua, ruby, etc

See more
Albert Kim

It truly depends on whether you want to completely avoid GUI and stick to TUI and command lines. If you want to edit all of your codes within a terminal, then Vim or neovim would be the choice. Emacs can be run in a terminal, but the functionality is limited. Most people use Emacs using GUI and emacs-client not to use too much memory.

My general preference is to use an independent text editor, which is better if it is highly customizable and programmable. So, I have used Emacs for several years. For beginners, I guess Emacs requires significant time to learn to fully enjoy its wonderful functionalities. In that sense, using atom would be a recommendable option.

Regardless of all the situations, learning basic vim in the terminal will help you in any case. In summary, I recommend 1. vim as a default editor in the terminal 2. atom if you are a beginner, or 3. Emacs if you have a long-term plan to master a programmable editor

Other editors like sublime text, VS code, and so forth are also worth learning and using. But, no matter which editor you choose, stick to one or two until you become an advanced user. Being able to use most text editors at an intermediate level is waste of time.

I hope it helps.

See more
Rogério R. Alcântara

The hints on the codebase's contributors and the VSCode integration helped me make up my mind.

I really appreciate all comments, though.

Thanks a bunch!

See more
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Emacs
Pros of Neovim
  • 65
    Vast array of extensions
  • 44
    Have all you can imagine
  • 40
    Everything i need in one place
  • 39
  • 32
    Customer config
  • 16
    Your config works on any platform
  • 13
    Low memory consumption
  • 11
    Perfect for monsters
  • 10
    All life inside one program
  • 8
    Extendable, portable, fast - all at your fingertips
  • 6
    Enables extremely rapid keyboard-only navigation
  • 5
    Widely-used keybindings (e.g. by bash)
  • 5
    Extensible in Lisp
  • 5
    Runs everywhere important
  • 4
    FOSS Software
  • 4
    Powerful multilanguage IDE
  • 4
    Git integration
  • 4
    May be old but always reliable
  • 3
  • 3
    Powerful UI
  • 1
    Huge ecosystem
  • 31
    Modern and more powerful Vim
  • 27
  • 22
    Asynchronous plugins
  • 20
  • 18
    Edit text fast
  • 15
    Great community
  • 15
    Vim plugins work out of the box
  • 9
  • 8
  • 8
    Built-in terminal support
  • 4
    Plugins in any language
  • 2
    External GUIs
  • 2
    Great Colorschemes
  • 2
    Extremely customizable

Sign up to add or upvote prosMake informed product decisions

Cons of Emacs
Cons of Neovim
  • 4
    So good and extensible, that one can get sidetracked
  • 4
    Hard to learn for beginners
  • 1
    Not default preinstalled in GNU/linux
    Be the first to leave a con

    Sign up to add or upvote consMake informed product decisions

    - No public GitHub repository available -

    What is Emacs?

    GNU Emacs is an extensible, customizable text editor—and more. At its core is an interpreter for Emacs Lisp, a dialect of the Lisp programming language with extensions to support text editing.

    What is Neovim?

    Neovim is a project that seeks to aggressively refactor Vim in order to: simplify maintenance and encourage contributions, split the work between multiple developers, enable the implementation of new/modern user interfaces without any modifications to the core source, and improve extensibility with a new plugin architecture.

    Need advice about which tool to choose?Ask the StackShare community!

    What companies use Emacs?
    What companies use Neovim?
    See which teams inside your own company are using Emacs or Neovim.
    Sign up for StackShare EnterpriseLearn More

    Sign up to get full access to all the companiesMake informed product decisions

    What tools integrate with Emacs?
    What tools integrate with Neovim?

    Sign up to get full access to all the tool integrationsMake informed product decisions

    What are some alternatives to Emacs and Neovim?
    At GitHub, we're building the text editor we've always wanted. A tool you can customize to do anything, but also use productively on the first day without ever touching a config file. Atom is modern, approachable, and hackable to the core. We can't wait to see what you build with it.
    Standard Eclipse package suited for Java and plug-in development plus adding new plugins; already includes Git, Marketplace Client, source code and developer documentation. Click here to file a bug against Eclipse Platform.
    Vim is an advanced text editor that seeks to provide the power of the de-facto Unix editor 'Vi', with a more complete feature set. Vim is a highly configurable text editor built to enable efficient text editing. It is an improved version of the vi editor distributed with most UNIX systems. Vim is distributed free as charityware.
    Since version 0.101.0 and later Spacemacs totally abolishes the frontiers between Vim and Emacs. The user can now choose his/her preferred editing style and enjoy all the Spacemacs features. Even better, it is possible to dynamically switch between the two styles seamlessly which makes it possible for programmers with different styles to do seat pair programming using the same editor.
    JavaScript is most known as the scripting language for Web pages, but used in many non-browser environments as well such as node.js or Apache CouchDB. It is a prototype-based, multi-paradigm scripting language that is dynamic,and supports object-oriented, imperative, and functional programming styles.
    See all alternatives