When you ask for editor recommendations as a Python developer one of the top choices you’ll hear about is Sublime Text. In this post I’ll review the status of Python development with Sublime Text as of 2016.

Disclaimer : I’m a fan and long-time user of Sublime Text. I used a number of editors and IDEs for writing Python including PyCharm, IntelliJ with Python plugins, Atom, Visual Studio Code, BBEdit, and emacs. I’ve worked with colleagues who are big Vim proponents. And while I never got the hang of Vim, I feel like I’m qualified to give Sublime Text a relatively unbiased review. You’ve been warned though .
What I like about Sublime Text
Performance: Sublime is one of the fastest editors available. Pavel Fatin compared typing latencies between several popular editors and Sublime Text is consistently among the fastest and most responsive ones in his list. My (unscientific) personal impression comparing Sublime with similar editors like Atom or VS Code confirms this. Also note that Sublime starts up super fast. I don’t restart my development environment too often, but when I do it’s nice to be back up and running within a few seconds ― rather than waiting half a minute for a ginormous IDE to boot up.
Stability and reliability: I’ve been using Sublime as my main editor for almost four years and it’s always been rock solid for me in terms of stability. I don’t think I’ve ever lost any data due to a crash or some other issue. I think that’s impressive. I like my tools to be reliable.
Plugin ecosystem: Something that’s drawn me towards Sublime is its fantastic community that wrote thousands of plugins for it. That way you can build a custom editor setup that does exactly what you want and how you want it. Several fantastic packages for Python development are available. I’ve reviewed some of them here: Sublime Text Plugin Reviews .
Package Control: Sublime Text has Package Control which is a plugin manager that let’s you install and uninstall other plugins directly from within the editor. It’s kind of a “meta plugin” that makes tinkering with your setup super easy. Package Control comes with a directory of available plugins which makes it easy to pick out the good ones based on popularity and recent activity.
Plugins are written in Python: Most Sublime plugins are written in Python. Sublime Text includes an embedded Python interpreter that’s used to run the plugin code. It’s kind of nice to be able to look under the hood and just read through a plugin’s code to judge its quality. If you’re a Python developer and you’re interested in writing your own Sublime Text package then that’s also a bonus.
It’s pretty: There’s a wide variety of themes for Sublime Text available which allows you to set up the look and feel of your editor to your liking. On top of that, Sublime’s font rendering is excellent. I’m peculiar about the way my editor looks. If I’m going to be staring at this thing for several hours each day then it better be as pretty as it can be . I found Sublime Text to be easier to “prettify” than other editors.
UI state restoration: Sublime Text remembers the state of your editor windows when you shut it down so that when you restart Sublime everything looks the way you left it, including modified or unsaved files. This feature is brilliant! I haven’t seen anything quite like it and it’s something that discouraged me from using Atom, for example. I often use new editor tabs as scratchpads for notes. And while those are temporary it’s nice not having to worry about losing them due to an editor crash or restart.
Multiple cursors: Like some other editors Sublime supports editing with multiple cursors at the same time. This is super handy when you want to rename a local variable, for example. Just select the variable, hit cmd+d a couple of times to select all other occurrences and then type the new name. Done. The same approach works in other situations like re-formatting a several lines of code at once or cutting out parts from a log file.
Cross-platform: Sublime Text is available for Mac, linux, and Windows. It’s nice being able to use a familiar editing environment across multiple platforms.
Handles large files: Sublime is very good at dealing with large files, like an occasional giant CSV file or a log file that you want to take a look at in a familiar environment. I like not having to switch to other tools (like less ) for that job, knowing that Sublime will handle the file just fine and won’t freeze or crash. Atom dealt with the same files much less gracefully. It often freezed for seconds at a time or even crashed.
Fast global search: Sublime’s global text search is fast. I find it comparable to tools like ack , which is nice because that means I have to switch to the command line less. Sublime also indexes your source files and has a Goto Symbol in Project command that let’s you quickly jump to specific identifiers, functions, or classes. This feature is aware of Python’s syntax so it’s usually very accurate.
Command palette: I’m bad at remembering keyboard shortcuts for commands that I use infrequently. Sublime’s solution to that problem is the Command Palette . You can open it with cmd+p and find what you’re looking for with a fuzzy text search. Let’s say I want to rename a file and I can’t remember the keyboard shortcut for that what I’ll do is open the Command Palette and type ren to select the File: Rename command and then hit return . Boom, this let’s me rename a file without ever moving my hands away from the keyboard and without having to remember some arcane shortcut. This feature is a great time saver!
Things I dislike
Can be difficult to set up for a beginner: While using Sublime Text the way it comes out of the box is okay, getting most of the good stuff requires spending some time. It’s not as simple as installing an IDE like PyCharm that comes with batteries included. On the other hand, you can start with a very simple setup using Sublime. Then simply add more plugins and custom configurations over time to turn it into a completely personalized tool.
It’s not free: I was on the fence about adding this point because I believe in paying for the tools that allow me to do my job better. I realize though that some people might find a free solution (like Atom, emacs, or vim) more attractive.
Not open-source, “bus factor”: Many of the Sublime Text alternatives are open-source which makes them more future proof. Sublime Text is developed by just one developer, ex-Googler Jon Skinner. And while Jo