When comparing Sublime Text vs GNU Emacs, the Slant community recommends GNU Emacs for most people. In the question“What are the best IDEs for C++ on Linux?” GNU Emacs is ranked 3rd while Sublime Text is ranked 13th. The most important reason people chose GNU Emacs is:
Emacs can be controlled entirely with the keyboard.
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.
Sublime Text is very lightweight by default. Customization occurs on the fly thanks to Package Control.
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.
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 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 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 Regex commands
Regex commands help describe a certain amount of text.
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 Distraction free editing mode
Distraction free editing takes over your screen and removes every UI element so you can focus on code.
Pro Easy to get started
All you need to do when starting up is to install a package manager and modify user configuration.
Pro Has tons of plugins available
Pro Projects support multiple folders and git repos
Pro Allows for Vim-style editing
Vintage mode is Vim-style editing that's already built into the text editor.
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 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 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
Create your own theme with online editor.
Pro Dynamic Build System
Choose from many build systems or craft your own.
Pro Haxe and OpenFL integration via plugin
Both of these programming interfaces are cross-platform, open source, and easy to use.
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 Multiple languages are supported
Pro Direct server upload
Provides command line shortcut for server upload.
With lot of functionalities, where other editor even not think to provide.
Pro Keyboard-focused, mouse-free editing
Emacs can be controlled entirely with the keyboard.
Pro Infinitely customisable
Customizations can be made to a wide range of Emacs' functions through a Lisp dialect. A robust list of existing Lisp extensions include the practical (git integration, syntax highlighting, etc) to the utilitarian (calculators, calendars) to the sublime (chess, Eliza).
Pro Completely free
Licensed under GNU GPL.
Pro Works in terminal
You can use Emacs' command line interface or graphical user interface.
Pro Self documenting
Emacs has extensive help support built-in as well as a tutorial accessed with C-h t.
Pro Has turn-key packages for IDE work
Packs like spacemacs make it easy to get started and bring the learning curve down from an infinitely regressing spiral to something more manageable.
Pro Has Vim emulation
Evil-mode makes Emacs actually usable as an editor.
Sublime Text protects and copyrights its code and is thus not the freedom-ware some would like it to be.
Con No printing of files
Sublime Texts offers no way of printing the files it edits.
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 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 Interruption while work
"Purchasing" messages box interrupts while saving file.
Con Annoying whitespace management
All too often it does the wrong thing with indentation on otherwise blank lines.
Con Not a full IDE
It does not necessarily function on a project level
Con Learning curve is steep
While it's better than it used to be, with most functions being possible through the menu, Emacs is still quite a bit different from your standard editor. You'll need to learn new keyboard shortcuts.
Con Chorded keyboard combinations can be baffling
For example, for navigation it uses the b, n, p, l keys. Which for some people may seem strange.
Con Not set up as an IDE by default
Requires customization to get IDE-like features. Luckily a few features such as compilation, debugging, and syntax highlighting are included.
Con A UI designed before anyone had a clue about UI design
I've used Emacs extensively, and it positively is NOT a well-designed user interface. Its design dates back to the time when all microwaves still needed instructions and VCRs universally displayed a flashing 12:00 because no one could figure out how to operate them. Many modern editors have 100% of the power of Emacs with none of the hassle.
Con Non-standard keyboard commands
I'm editing this in Chrome, but I could be using Firefox, Edge, or any other browser, or Notepad, or even Libreoffice or Microsoft Word, and in ALL of those cases, keys would work exactly the same way, including how to jump around by word, select words, cut/copy/paste, etc.
Pretty much all modern editors share the same basic key combinations, from Visual Studio to Sublime to Atom to VS Code to Xcode. Becoming an Emacs expert means you need to mode-shift between code editing and editing in your browser; adding Emacs modes to SOME apps means you need to remember which key bindings to use where. The cognitive load added by switching between Emacs and other text editors is not worth it, especially since all the advantages of Emacs are now available in free editors elsewhere.