When comparing Sublime Text vs Vim, the Slant community recommends Vim for most people. In the question“What are the best programming text editors?” Vim is ranked 1st while Sublime Text is ranked 4th. The most important reason people chose Vim is:
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.
Ranked in these QuestionsQuestion Ranking
Pro Comfortable to work with
Sublime Text has a minimap on the side that provides a top-down view of the file and keyboard shortcuts for most actions. It also supports a large number of languages and general text editing features out of the box.
Pro Functionality can be easily extended
Sublime Text uses TextMate's syntax declaration files to support new languages, it has all its menus and keybindings generated from JSON files, and it can be scripted to add new features using Python.
If Sublime Text doesn't support a desired language or feature, it's usually not long before someone implements it themselves - examples include the plugin package manager and the 'open in browser' command.
Pro Multi-line select and editing
Multiple cursors and column selection allows 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 permits selecting vertically.
ctrl + shift + l will place a cursor on every highlighted line.
Sublime Text is very lightweight by default. Customization occurs on the fly thanks to Package Control.
When you start using Sublime Text, it doesn't drown you in keyboard shortcuts or non-intuitive use-concepts. However, high-level functionality can still be easily accessed when the need for it arises.
Pro Consistent cross-platform
Sublime Text looks consistently the same across Windows, OS X, and Linux.
Pro Offers Command Palette
Command Palette allows for fuzzy searching all available settings, snippets, etc.
Pro Permits instant file switching
Open Goto Anything by pressing Ctrl or Command + P and by using fuzzy search you can look for a file in your project. The file will load even without pressing enter, so you can make sure you've found the correct file without committing.
Pro IDE features without the cruft
Sublime Text, while being lighter-weight than an IDE, still supports many IDE features.
- Text from the current file is used to provide autocomplete.
- Project Support (folder browsing, scoped history, build-system declarations).
- Refactoring support is emulated through multi-select, project-wide find and replace, and regular expression search.
- Syntax-aware selection and GoTo for quickly jumping to locations in the project.
- Snippets and Macros.
- A Python console for everything else.
Pro Fully customizable
Sublime Text allows for all sorts of customization to help users change almost everything in the editor: Key Bindings, Menus, Snippets, Macros, Completions, and many more. Essentially, just about everything in Sublime Text is customizable with simple JSON files. This system gives the user flexibility as settings can be specified on a per-file type and per-project basis.
Pro Distraction free editing mode
Distraction free editing takes over your screen and removes every UI element so you can focus on code.
Pro Regex commands
Regex commands help describe a certain amount of text.
Pro Has tons of plugins available
Pro Easy to get started
All you need to do when starting up is to install a package manager and modify user configuration.
Pro Allows for Vim-style editing
Vintage mode is Vim-style editing that's already built into the text editor.
Pro Projects support multiple folders and git repos
Pro Support for TextMate themes and window decoration themes
Sublime Text compatibility with Textmate bundles is good, but excludes commands, which are incompatible. In general, Sublime Text syntax definitions are compatible with Textmate language files (.tmLanguage extension).
Pro Installable Package Manager
The package manager is a plugin and can be swapped with something else custom.
Pro Customizable Keymapping
From menus to commands, assign key maps to almost anything.
Pro Portable Settings
Settings are modular and can be shared.
Pro Highly Theme-able
Pro Very fast
Sublime is quick to start and never slows down. The UI is always responsive and you know what is happening in the background.
Pro Haxe and OpenFL integration via plugin
Both of these programming interfaces are cross-platform, open source, and easy to use.
Pro Dynamic Build System
Choose from many build systems or craft your own.
A Sublime license can be bought but it can still be used for free. However, a pop-up appears when you save multiple times.
Pro Theme Editor
Create your own theme with online editor.
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 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 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 Free and open-source software
Vim is open-source, GPL-compatible charityware.
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 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.
Vimtutor is an excellent interactive tutorial for people with no prior experience of Vim. It takes about 30 minutes to complete.
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 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 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 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 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 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 Has been supported for a long time and will be supported for many years to come
Pro Donations and support to Vim.org helps children in Uganda through ICCF Holland
Pro By default in Linux
Sublime Text protects and copyrights its code and is thus not the freedom-ware some would like it to be.
Con Loading big files on Windows is slow
Here's a rough comparison: a 70 MB file takes about 2 seconds to load in Notepad++, whereas the same file in ST3 takes over 10 seconds to load.
Con Inadequate language support
Sublime Text offers poor support for Far-East languages in Linux.
Although paying for something good is far from a Con, having the competition this editor has and still having to pay for it is definitely a Con.
Con Often crashes due to poor quality plugins
Some plugins are quite buggy, meaning that installing many can become quite a problem regarding stability.
Con No printing of files
Sublime Texts offers no way of printing the files it edits.
Con Annoying whitespace management
All too often it does the wrong thing with indentation on otherwise blank lines.
Con No toolbar
Sublime Text is more focused on keyboard users, meaning it doesn't come with a tool bar. Even plugins can't toggle bookmarks using the mouse.
Con Not a full IDE
It does not necessarily function on a project level
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 Works poorly out of the box with right-to-left
Con Once you're used to it, you won't like other editors
When your fingers have learned Vim's keyboard commands, you'll find yourself reaching for them even when using other text editors. You'll get frustrated every time you have to reach for the mouse or move your cursor letter by letter with the arrow keys. You'll notice every time a Vim feature would save you time and tedium, and you'll wish the editor you're actually using had it. You'll wish the editor was Vim. You'll wish everything was Vim. You'll wish this imperfect world we live in could somehow become just a little bit more graceful, a little bit more elegant, by adopting modal text editing as a common paradigm. You'll wish desperately that this world was that better one. But it isn't. It isn't. And it never will be.:wq
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 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 User must remember commands instead of point at them in a menu
Con Unintuitive mode switching
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.