Emacs vs Sublime Text vs Vim

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

Emacs

1.3K
1.2K
+ 1
322
Sublime Text

33.2K
27.2K
+ 1
4K
Vim

26.9K
21.9K
+ 1
2.4K

Emacs vs Sublime Text vs Vim: What are the differences?

Key Differences between Emacs, Sublime Text, and Vim

Emacs, Sublime Text, and Vim are powerful text editors widely used by developers and programmers. Each editor has its own set of features and advantages that cater to different needs and preferences. Here are the key differences between these three text editors:

  1. Usability and Learning Curve: Emacs is known for its steep learning curve and complex user interface. It offers extensive customization and scripting capabilities but may require significant time and effort to master. Sublime Text, on the other hand, has a more intuitive and user-friendly interface, making it easier to use for beginners. Vim falls in between, with a command-line focused interface that takes some time to learn but ultimately provides efficient keyboard-centric navigation.

  2. Customization and Extensibility: Emacs is highly customizable and extensible, offering a plethora of packages and modes that can be integrated seamlessly. Users can personalize almost every aspect of the editor, making it a favorite among power users. Sublime Text also supports customization, but it has a limited selection of official plugins and lacks the extensive customization abilities of Emacs. Vim, known for its powerful modal editing features, can also be heavily customized through plugins and scripts.

  3. Performance and Resource Consumption: Emacs is notorious for its high memory usage, especially when running several extensions simultaneously. Sublime Text is relatively lightweight and performs well, even with large files or when handling multiple projects concurrently. Vim is renowned for its blazing-fast performance and minimalistic resource consumption, making it an ideal choice for working in remote machines or low-spec environments.

  4. Built-in Features and Functionality: Emacs comes with a wide range of built-in features, including a powerful text editing engine, an integrated Lisp interpreter, and extensive support for version control systems. Sublime Text provides a more polished user experience with features like distraction-free mode, multiple cursors, and intelligent auto-completion. Vim, being a modal editor, focuses on efficient text manipulation with its unique command mode, making it incredibly versatile for editing tasks.

  5. Platform Availability: Emacs is available on multiple platforms, including Windows, macOS, and Linux, making it highly accessible. Sublime Text also supports all major platforms, ensuring cross-platform compatibility. Vim, being based on the original vi editor, is ubiquitous and available on almost every Unix-like system. Additionally, various ports and distributions enable Vim usage on different platforms.

  6. Community and Ecosystem: Emacs boasts a vibrant community that actively contributes to its development, resulting in a vast collection of user-contributed packages and configurations. Sublime Text has a large user base and an active package ecosystem, albeit smaller than Emacs. Vim, with its long history and dedicated following, enjoys a gigantic community-driven ecosystem that offers an extensive catalog of plugins and scripts.

In Summary, Emacs offers unparalleled customization and scripting capabilities but requires a steep learning curve, while Sublime Text provides a user-friendly interface with a limited selection of official plugins. Vim focuses on modal editing and efficient text manipulation, with a highly performant and resource-efficient design.

Advice on Emacs, Sublime Text, and Vim
Rogério R. Alcântara
Needs advice
on
NeovimNeovim
and
VimVim

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)
Recommends
on
NeovimNeovimVimVim

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
Recommends
at

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 (https://marketplace.visualstudio.com/items?itemName=asvetliakov.vscode-neovim)
  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
Recommends
on
NeovimNeovim

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
Recommends
on
VimVim

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
Recommends

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
Recommends
on
NeovimNeovim

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
Decisions about Emacs, Sublime Text, and Vim
Kamaleshwar BN
Senior Software Engineer at Pulley · | 12 upvotes · 1.3M views

Visual Studio Code became famous over the past 3+ years I believe. The clean UI, easy to use UX and the plethora of integrations made it a very easy decision for us. Our gripe with Sublime was probably only the UX side. VSCode has not failed us till now, and still is able to support our development env without any significant effort.

Goland being paid, as well as built only for Go seemed like a significant limitation to not consider it.

See more
Andrey Ginger
Managing Partner at WhiteLabelDevelopers · | 3 upvotes · 497.9K views

Since communication with Github is not necessary, the Atom is less convenient in working with text and code. Sublim's support and understanding of projects is best for us. Notepad for us is a completely outdated solution with an unacceptable interface. We use a good theme for Sublim ayu-dark

See more
Simon Ibssa
Student at California Polytechnic State University, San Luis Obispo · | 2 upvotes · 1.2M views

I decided to choose VSCode over Sublime text for my Systems Programming class in C. What I love about VSCode is its awesome ability to add extensions. Intellisense is a beautiful debugger, and Remote SSH allows me to login and make real-time changes in VSCode to files on my university server. This is an awesome alternative to going back and forth on pushing/pulling code and logging into servers in the terminal. Great choice for anyone interested in C programming!

See more
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Emacs
Pros of Sublime Text
Pros of Vim
  • 65
    Vast array of extensions
  • 44
    Have all you can imagine
  • 40
    Everything i need in one place
  • 39
    Portability
  • 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
    Asynchronous
  • 3
    Powerful UI
  • 1
    Huge ecosystem
  • 720
    Lightweight
  • 652
    Plugins
  • 641
    Super fast
  • 468
    Great code editor
  • 442
    Cross platform
  • 280
    Nice UI
  • 260
    Unlimited trial
  • 153
    Cmd + d is the best command ever
  • 92
    Great community
  • 46
    Package control, modules
  • 26
    Mac OS X support
  • 23
    Easy to get started with
  • 22
    Monokai
  • 21
    Everything you need without the bloat
  • 21
    Built in Python
  • 18
    Easy
  • 14
    Speed
  • 12
    Session & edit resuming
  • 10
    Package Control
  • 9
    Well Designed
  • 8
    Multiple selections
  • 7
    ALT + CMD + DOWN is the best command ever
  • 7
    Nice
  • 7
    Fast, simple and lightweight
  • 5
    It's easy to use, beautiful, simple, and plugins rule
  • 5
    So futuristic and convenient
  • 5
    ALT + F3 the best command ever
  • 5
    Great
  • 4
    Find anything fast within entire project
  • 4
    Easy to use
  • 4
    Free
  • 4
    Simple and clean design
  • 3
    Hackable
  • 3
    Pretty
  • 3
    UI + plugins
  • 3
    Sublime Merge (Git Integration)
  • 2
    Totally customizable
  • 2
    Color schemes and cmd+d
  • 2
    Material theme best theme forever
  • 0
    Const
  • 347
    Comes by default in most unix systems (remote editing)
  • 328
    Fast
  • 312
    Highly configurable
  • 297
    Less mouse dependence
  • 247
    Lightweight
  • 145
    Speed
  • 100
    Plugins
  • 97
    Hardcore
  • 82
    It's for pros
  • 65
    Vertically split windows
  • 30
    Open-source
  • 25
    Modal editing
  • 22
    No remembering shortcuts, instead "talks" to the editor
  • 21
    It stood the Test of Time
  • 16
    Unicode
  • 13
    VimPlugins
  • 13
    Everything is on the keyboard
  • 13
    Stick with terminal
  • 12
    Dotfiles
  • 11
    Flexible Indenting
  • 10
    Hands stay on the keyboard
  • 10
    Efficient and powerful
  • 10
    Programmable
  • 9
    Everywhere
  • 9
    Large number of Shortcuts
  • 8
    A chainsaw for text editing
  • 8
    Unmatched productivity
  • 7
    Developer speed
  • 7
    Super fast
  • 7
    Makes you a true bearded developer
  • 7
    Because its not Emacs
  • 7
    Modal editing changes everything
  • 6
    You cannot exit
  • 6
    Themes
  • 5
    EasyMotion
  • 5
    Most and most powerful plugins of any editor
  • 5
    Shell escapes and shell imports :!<command> and !!cmd
  • 5
    Intergrated into most editors
  • 5
    Shortcuts
  • 5
    Great on large text files
  • 5
    Habit
  • 5
    Plugin manager options. Vim-plug, Pathogen, etc
  • 4
    Intuitive, once mastered
  • 4
    Perfect command line editor
  • 1
    Not MicroSoft

Sign up to add or upvote prosMake informed product decisions

Cons of Emacs
Cons of Sublime Text
Cons of Vim
  • 4
    So good and extensible, that one can get sidetracked
  • 4
    Hard to learn for beginners
  • 1
    Not default preinstalled in GNU/linux
  • 8
    Steep learning curve
  • 6
    Everything
  • 4
    Flexibility to move file
  • 4
    Number of plugins doing the same thing
  • 4
    Doesn't act like a Mac app
  • 3
    Not open sourced
  • 2
    Don't have flutter integration
  • 2
    Forces you to buy license
  • 8
    Ugly UI
  • 5
    Hard to learn

Sign up to add or upvote consMake informed product decisions

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 Sublime Text?

Sublime Text is available for OS X, Windows and Linux. One license is all you need to use Sublime Text on every computer you own, no matter what operating system it uses. Sublime Text uses a custom UI toolkit, optimized for speed and beauty, while taking advantage of native functionality on each platform.

What is Vim?

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.

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

What companies use Emacs?
What companies use Sublime Text?
What companies use Vim?

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

What tools integrate with Emacs?
What tools integrate with Sublime Text?
What tools integrate with Vim?

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

Blog Posts

What are some alternatives to Emacs, Sublime Text, and Vim?
Atom
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.
Eclipse
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.
Spacemacs
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.
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.
JavaScript
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