When comparing Vim vs Atom, the Slant community recommends Vim for most people. In the question“What are the best programming text editors?”Vim is ranked 1st while Atom is ranked 6th. The most important reason people chose Vim is:

When compared to modern graphical editors like Atom and Brackets (which have underlying HTML5 engines, browsers, Node, etc.), Vim uses a sliver of the system's memory and it loads instantly, all the while delivering the same features. Vim is also faster than Emacs.

Pros

Pro

Lightweight and fast

When compared to modern graphical editors like Atom and Brackets (which have underlying HTML5 engines, browsers, Node, etc.), Vim uses a sliver of the system's memory and it loads instantly, all the while delivering the same features. Vim is also faster than Emacs.

Pro

Works in terminal over SSH

Unlike other editors such as Sublime Text, Vim is a command line editor and hence can be used in remote development environments like Chromebooks via SSH.

Pro

Free and open-source software

Vim is open-source, GPL-compatible charityware.

Pro

Extremely portable

Vi/vim exists on almost all Unix-like platforms. It's the de-facto Unix editor and is easily installed on Windows. All you need to make it work is a text-based connection, so it works well for remote machines with slow connections, or when you're too lazy to set up a VNC/Remote Desktop connection.

Pro

Keyboard-based, mouse-free interface, and trackpad support

There's no need to reach for the mouse or the Ctrl/Alt buttons again. Everything is a mere key press or two away with almost 200 functions specifically for text editing. Vim does support the mouse, but it's designed so you don't have to use it for greater efficiency.Versions of Vim, like gVim or MacVim, still allow you to use the mouse and familiar platform shortcuts. That can help ease the learning curve and you'll probably find you won't want to (or need to) use the mouse after a while.

Pro

Macros increase productivity

Many text editors have programmable macros, but since Vim is keyboard-based, your programmed macros are usually far more predictable and easier to understand.

Pro

Usable from a Terminal or with a GUI (GVim, MacVim)

If you happen to be logged into SSH, you can use Vim in a terminal. It can also run with a GUI too.

Pro

Great productivity

Vim's keyset is mainly restricted to the alphanumeric keys and the escape key. This is an enduring relic of its teletype heritage, but has the effect of making most of Vim's functionality accessible without frequent awkward finger reaches.

Pro

Once learned, it's very hard to forget

Vim's somewhat steep learning curve is more than made up for once you've mastered a few basic concepts and learned the tricks that allow you to program faster with fewer cut/paste mistakes.

Pro

Everything is mnemonic

No need to memorize different key combinations for things like deleting the text inside of a block or deleting the text inside of a pair of quotes. It's just a series of actions, or nouns and verbs, or however you prefer to think about it. If you want to delete, you select "d"; if you want it to happen inside something, you select "i"; and if you want the surrounding double-quotes, just select ". But if you were changing the text, or copying it, or anything else, you'd still use the same "i" and ". This makes it very easy to remember a large number of different extremely useful commands, without the effort it takes to remember all of the Emacs "magic incantations", for example.

Pro

Tons of plugins/add-ons

This makes Vim the definitive resource for every environment (Ruby/Rails, Python, C, etc.), or simply just provides more information in your view.

Pro

Excellent performance

As it loads the whole file into RAM, replacing all string occurrences in 100 MB+ files is quick and easy. Every other editor has sort of died during that. It is extremely fast even for cold start. Vim is light-weight and very compact. In terminal, it only uses a small amount of memory and anytime you invoke Vim, it's extremely fast. It's immediate, so much so you can't even notice any time lag.

Pro

Amazing extensibility

Vimscript provides a rich scripting functionality to build upon the core of Vim. When combined with things like Tim Pope's Pathogen plugin management system, it becomes easy to add support for syntax, debugging, build systems, git, and more.

Pro

Can never outgrow it

The fact that very few, if any, people claim to be a "Vim Master" is a testament to the breadth and depth of Vim. There is always something new to learn - a new, perhaps more efficient, way to use it. This prevents Vim from ever feeling stale. It's always fresh.

Pro

Has multiple distinct editing modes

Interaction with Vim is centered around several "modes", where purpose and keybindings differ in each.Insert mode is for entering text. This mode most resembles traditional text entry in most editors.Normal mode (the default) is entered by hitting ESC and converts all keybindings to center around movement within the file, search, pane selection, etc.Command mode is entered by hitting ":" in Normal mode and allows you to execute Vim commands and scripts similar in fashion to a shell.Visual mode is for selecting lines, blocks, and characters of code.Those are the major modes, and several more exist depending on what one defines as a "mode" in Vim.

Pro

Vimtutor

Vimtutor is an excellent interactive tutorial for people with no prior experience of Vim. It takes about 30 minutes to complete.

Pro

Productivity enhancing modal paradigm

As with all vi-like editors, Vim provides a modal paradigm for text editing and processing that provides a rich syntax and semantic model for composing succinct, powerful commands. While this requires some initial investment in learning how it works in order to take full advantage of its capabilities, it rewards the user well in the long run. This modal interface paradigm also lends itself surprisingly well to many other types of applications that can be controlled by vi-like keybindings, such as browsers, image viewers, media players, network clients (for email and other communication media), and window managers. Even shells (including zsh, tcsh, mksh, and bash, among others) come with vi-like keybinding features that can greatly enhance user comfort and efficiency when the user is familiar with the vi modal editing paradigm.

Pro

Flexible feature-set

Vim allows users to include many features found in IDEs and competing editors, but does not force them all on the user. This not only helps keep it lighter in weight than a lot of other options, but it also helps ensure that some unused features will not get in the way.

Pro

Has been supported for a long time and will be supported for many years to come

Pro

Built-in package management

Starting with Vim 8, a package manager has been built into Vim. The package manager helps keep track of installed plugins, their versions and also only loads the needed plugins on startup depending on the file type.

Pro

Asynchronous I/O support

Since Vim 8, Vim can exchange characters with background processes asynchronously. This avoids the problem of the text editor getting stuck when a plugin that had to communicate with a server was running. Now plugins can send and receive data from external scripts without forcing Vim to freeze.

Pro

By default in Linux

Pro

Donations and support to Vim.org helps children in Uganda through ICCF Holland

Pro

Works on Android

Pro

Can set up keymapping

Pro

Vim encourages discipline

If you use Vim long enough, it will rewire your brain to be more efficient.

Pro

If you can use Vim you can also use vi

Pro

Extensive list of packages

Atom has a built-in package manager and an extensive list of packages. Packages are written in CoffeeScript.

Pro

Built-in package management

Atom was built from the ground up with the community in mind. Package management is therefore a first class feature.

Pro

Extendable

Due to its modular design, almost any aspect of the editor can be changed. Even seemingly core packages, like those taking care of search and replace functionality, can be forked on GitHub, and changed and replaced in the editor.The documentation for creating new plugins is also great, making it easier for developers to jump in and create plugins for Atom.

Pro

Multiplatform

Atom can run on Mac, Windows, and Linux.

Pro

Free and open source

Atom is free, open source, and written in C++, LESS, and CoffeeScript.

Pro

Beginner friendly

One of the goals of Atom is to be a text editor for both experienced and beginner programmers. You can add keyboard shortcuts, change themes, install plugins, and change core settings by clicking through a GUI, or by manually editing config files the old-fashioned way. It has the added advantage of being built using the same engine that powers Google Chrome, so actions like opening and closing tabs feel familiar, even to new or non-programmers.

Pro

Embedded Git control

Atom will highlight folders, files, and lines that have any uncommitted edits made. It also integrates really well with GitHub.

Pro

Multi-line select and edit

Multiple cursors and column selection allow for versatile ways of editing.ctrl + d will select the current word and each time the command is repeated, it adds the next occurrence of the word to the selection.ctrl + click or middle-mouse click will place another cursor in the place that's clicked. Cursors can then be controlled together. This also allows for selecting vertically.

Pro

Command Palette support

Pro

Allows for instant file switching

By pressing Ctrl or Command + T and using fuzzy search, you can look for a file in your project.

Pro

Command line integration out of the box

Installing Atom adds two command line commands - atom and apm. The first one runs the application itself while the second is the Atom Package Manager that's used to add and remove various components from the package listing. While these features can be set up with other editors as well, Atom takes care of them out of the box.

Pro

HiDPI support

Atom has built-in HiDPI support with zero scaling issues.

Pro

Themes

You can theme and customize Atom to your liking.

Pro

Vim plugin turns Atom into a modernized vim

Pro

Modern feel and very customizable and extendable

Pro

Best support for Arduino with Platformio

Arduino is the most important platform for developing embedded systems.

Cons

Con

Difficult learning curve

You'll spend a lot of time learning all the commands and modes supported in Vim. You'll then spend more time tuning settings to your needs. Although once it's tuned to your needs, you can take your .vimrc to any machine you need and have the same experience across all your computers.

Con

Poor support for external tooling

Many plugins depend on optional Python and Lua features, which may or may not be included in whatever binaries are available for your system. And without platform-specific hacks, it is difficult for plugins to operate in the background or use external tooling.

Con

Poor feature discoverability

Though basic features like syntax checking, autocompletion, and file management are all available out of the box or with minimal configuration, this is not obvious to new users, who might get intimidated or assume they need to install complex plugins just so they can have this functionality. Other features new users might expect to find embedded in Vim, such as debugging, instead follow a UNIX-style model where they are called as external programs, the output of which might then be parsed by Vim so it can display results. Users not familiar with this paradigm will likely fault Vim for lacking those features as well.

Con

Doesn't play nice with the system cut/paste mechanisms

This can be worked around if you disable mouse for insert mode. You can then right-click your terminal and use paste like you would anywhere else in a terminal.

Con

High effort to customize

Con

Foreign keyboards have a hard time on Vim out of the box

A lot of frequently-used keybinds are way harder to access on foreign keyboards because they use different layouts.For example, Germans use the QWERTZ layout, while French use the AZERTY.

Con

Works poorly out of the box with right-to-left

Con

User must remember commands instead of point at them in a menu

Con

Slow when opening files with very long lines

A lot of very long lines can make Vim take up to a minute to open files, where a few other editors take only seconds to load the same file.

Con

Difficult to copy, paste, and delete

Con

No smooth scrolling

Even with the GUI version, the lines jiggle line-by-line. If you are used to smooth scrolling, this is very annoying, especially when working with larger files.

Con

Consume brain energy for editing that should be used for logic

Text editing in vim is awesome, but it requires thinking about combination of commands. In other editors, you don't have to think about how to delete this part of code. You just think about how to implement a feature, what is a good design for this code. Even after you get used to using vim, it still requires your brain for editing.

Con

Unintuitive mode switching

Con

Very slow startup time

Atom is very slow to startup, which is a big disadvantage if you are accustomed to using it to make quick changes on your files.

Con

High memory usage

Atom has a relatively high memory usage, especially when compared to some other text editors not based on Electron. For those who develop on the go, this also tends to mean shorter battery life.

Con

Has difficulty with large text files

Tends to crash or hang with large >(10MB) text files, making it less useful as a general text editor.

Con

Slows down exponentially with plugins

Extending it needs sacrificing responsiveness

Con

No text UI

Con

Doesn't handle RTL (right-to-left text) well

Text can't be highlighted and manipulated properly, cursor isn't displayed visually according to where it is logically (you have to type to find out), and similar issues.

Con

Not known when a new window will open

It's not really clear why and when a new window is opened when you open a file out of the tree view.

Con

Depends on old software

Depends on python 2, which dies out.

Con

Slow

Atom is not a native application. As such performance is subpar and the lag is especially noticeable on larger projects. It also opens a surprising amount of sub-processes and leaks a considerable amount of memory.

Con

Missing additional touches

As Atom is still relatively new, it's missing nice little touches that other text editors have implemented over the years. From simple ease-of-use items like middle-mouse button multi-cursor select, to the ways pasted information from a spreadsheet is interpreted in multi-select situations.

Con

Doesn't recognize some keyboards

Con

Crash and data loss

I lost unsaved changes 2 times when the app crashes.

A bugreport about that was closed automatically after some time, nobody cares.