When comparing Sublime Text vs PyCharm, the Slant community recommends PyCharm for most people. In the question“What are the best IDEs or editors for Python?” PyCharm is ranked 1st while Sublime Text is ranked 3rd. The most important reason people chose PyCharm is:
PyCharm has CVS, Git, Subversion and Mercurial integration.
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 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 Regex commands
Regex commands help describe a certain amount of text.
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 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 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 Installable package manager
The package manager is a plugin and can be swapped with something else custom.
Pro Portable settings
Settings are modular and can be shared.
Pro Customizable keymapping
From menus to commands, assign key maps to almost anything.
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 Version control integration
PyCharm has CVS, Git, Subversion and Mercurial integration.
Pro Catches run-time information when running the code
PyCharm can leverage run-time information when running your application with the built-in debugger to figure out what types can possibly be passed to which functions, etc.
Pro One of the best autocompletion engines around
PyCharm has two types of autocompletion: structural completion and word expansion.
Both types of autocompletion work extremely well, have little to no problems and are quite fast even when loading suggestions on the go.
Pro Free version available
There's a community edition (with limited features) that's free to use. You can also get a 30-day trial of the Professional edition.
Pro Excellent refactoring support
There are many refactoring options including renaming and changing signature across entire projects. It also includes the an ability to preview changes before committing and exclude anything unwanted.
Pro Great pip support
PyCharm offers great pip integration. When opening a project it automatically checks for a
requirements.txt file in the root of the project. If it's found, it checks if all the libraries are available in the interpreter. If one or more libraries are missing, it issues a warning and asks whether you want to install any missing libraries.
Pro Automatically figures out what test to run based on the method the cursor rests at a given time
PyCharm, based on what method or class the cursor rests, can figure out what tests to run and perform them with a keyboard shortcut or two, without breaking up the flow and need to switch to a command line interface.
Pro Supports installing 3rd party libraries
No need to go to the command line to download a new package, PyCharm has an easy system to browse, download, and update 3rd party packeges.
Pro Great for navigating large codebases
PyCharm has amazing code navigation implementations. It supports both goto symbol and goto declaration. The former finds classes, variables, functions, etc by name. While the latter is used by moving the cursor on top of a symbol and by using the mouse or a keyboard combination it finds the declaration of that symbol and takes you there.
Both of these features are extremely helpful when consulting large code-bases and when trying to understand an API written by someone else.
Pro Sophisticated static analysis tools
Pro Built-in Django support
Pycharm has excellent django support, from templating to management commands, it has it all.
Pro Remote debugging over ssh coupled with automatic deployment creates a streamlined workflow
The professional version allows remote debugging over ssh, which together with automatic deployment creates a streamlined workflow.
Pro Excellent integration with debugging tools
All the debugging can be done inside the IDE. Breakpoints in the code can be added using keyboard shortcuts or the mouse. When the code is executed through the debugger a toolbar pops up with all the relevant context needed for the debugging process.
The whole process is smooth and painless and you don't even have to switch windows to do the debugging.
Pro Vim mode for people used to Vim commands
IdeaVim supports motion keys, insert mode commands, marks, registers, visual mode commands, vim regexps, key mapping, macros, digraphs, some ex and :set commands. You can find a full comparison in the IdeaVim reference manual.
Pro Free student access to Professional Edition
With a valid .edu address students can register to use the Professional edition and enjoy all the perks of the full paid version for free.
Though it should be mentioned that the with the free student acess you cannot use PyCharm for any commercial purposes, even accepting donations for an open source project.
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 Inadequate language support
Sublime Text offers poor support for Far-East languages in Linux.
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.
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 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 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 Often crashes due to poor quality plugins
Some plugins are quite buggy, meaning that installing many can become quite a problem regarding stability.
Con Interruption while work
"Purchasing" messages box interrupts while saving file.
Con Very high memory usage
Con Does not support inline plots
Spyder supports the inline plot function of matplotlib, not the case for PyCharm.
Con Vim mode is limited
Con Odd Autosave "feature", can't be disabled fully
PyCharm automatically saves your files for you, always, without telling you. You can't disable this. There's a way to indicate if a file has been modified via an indicator in the tab (not enabled by default - why?).
If you exit it won't ask you if you want to save the modified file. Totally unintuitive and contrary to all other established workflows. It's ok to try something new, but give users the option to have the "normal" behaviour of any other IDE/editor out there. Can be a deal breaker for those that need to know/have control over when they save their files. (PyCharm offers a history to undo the automatic save, but why force a user to undo something with extra steps that shouldn't have happened in the first place?)
Con Not suitable to edit project's files written in other languages
Con Some relatively basic functionality requires paid license
Con Rendering is awful
Con Can not be integrated with external linters, like Pylint, Flake8, etc.
Sublime Text has SublimeLinter, Vim has Syntastic, PyCharm has nothing.