Sublime Text is a sophisticated text editor for code, markup, and prose. You’ll love the slick user interface, extraordinary features, and amazing performance.
Goto Anything. Use Goto Anything to open files with only a few keystrokes, and instantly jump to symbols, lines, or words. Triggered with ⌘P, it is possible to:
- Type part of a file name to open it.
- Type @ to jump to symbols, # to search within the file, and : to go to a line number.
These shortcuts can be combined, so tp@rf may take you to a function read_file within a file text_parser.py. Similarly, tp:100 would take you to line 100 of the same file.
Multiple Selections. Make ten changes at the same time, not one change ten times. Multiple selections allow you to interactively change many lines at once, rename variables with ease, and manipulate files faster than ever. Try pressing ⇧⌘L to split the selection into lines and ⌘D to select the next occurrence of the selected word. To make multiple selections with the mouse, take a look at the Column Selection documentation.
Command Palette. The Command Palette holds infrequently used functionality, like sorting, changing the syntax, and changing the indentation settings. With just a few keystrokes, you can search for what you want, without ever having to navigate through the menus or remember obscure key bindings. Show the Command Palette with ⌘⇧P.
Distraction-Free Mode. When you need to focus, Distraction-Free Mode is there to help you out. Distraction-Free Mode is full-screen, chrome-free editing, with nothing but your text in the center of the screen. You can incrementally show elements of the UI, such as tabs and the find panel, as you need them. You can enter Distraction Free Mode using the View/Enter Distraction Free Mode menu.
Split Editing. Get the most out of your wide-screen monitor with split-editing support. Edit files side-by-side, or edit two locations in the one file. You can edit with as many rows and columns as you wish. Take advantage of multiple monitors by editing with multiple windows, and using multiple splits in each window. Take a look at the View/Layout menu for split-editing options. To open multiple views into the one file, use the File/New View into File menu item.
Instant Project Switch. Projects in Sublime Text capture the full contents of the workspace, including modified and unsaved files. You can switch between projects in a manner similar to Goto Anything, and the switch is instant, with no save prompts. All your modifications will be restored next time the project is opened.
Plugin API. Sublime Text has a powerful, Python-based plugin API. Along with the API, it comes with a built-in Python console to interactively experiment in real time.
Customize Anything. Key bindings, menus, snippets, macros, completions and more – just about everything in Sublime Text is customizable with simple JSON files. This system gives you flexibility as settings can be specified on a per-file type and per-project basis.
Cross-Platform. Sublime Text is available for OS X, Windows and Linux. One license is all you need to use Sublime Text on every computer you own, no matter what operating system it uses. Sublime Text uses a custom UI toolkit, optimized for speed and beauty, while taking advantage of native functionality on each platform.
What’s New
Version 3170:
Themes/UI
- Windows: Added support for Windows 10 (and 8.1) per-monitor DPI scaling
- Improved overall High DPI support
- Added support for 8k monitors and 300% DPI scale
- Themes can now provide @3x versions of images for very high DPI monitors
- Improved indent guide positions when using line padding
- Rulers are drawn with stippled lines
- Linux/Windows: Improved High DPI minimap rendering
- Mac: Fixed occasional yellow or black windows when using a theme with a colored title bar
- Mac: Double-clicking a themed title bar now performs the default system action
- Mac: Fixed sizing of some dialog windows when a theme uses a themed title bar
- Mac: Fixed gutter icons sometimes not drawing
Text Rendering
- Added ligature support for symbols
- Added font_options for controlling ligatures and stylistic sets
- Improved rendering and selection of emojis
- Tab width is now properly measured for proportional fonts
Goto Definition
- Added Goto References when hovering over a symbol
- Added goto_reference command to the Goto menu
Color Schemes
- Added new color scheme format, .sublime-color-scheme
- Add Hashed Syntax Highlighting
- Added the Celeste color scheme to showcase hashed syntax highlighting
- Selections now render by default with true rounded corners
- Added color scheme settings for selection border width, corner style and radius
- Selection background and border now support alpha channels
- Improved color scheme reloading
- Added Convert Color Scheme command
- Added support for the invisibles key in color schemes
- selection_foreground can now be specified on a per-scope basis
- Color Schemes can specify bold and italic in the brackets_options key
- Improved handling of invalid.deprecated scopes in default color schemes
Syntax Highlighting
- Add embed action to .sublime-syntax files for improved syntax nesting
- Added Git Formats package for Git config files and use as core.editor, with thanks to Ryan Boehning and deathaxe
- Many syntax highlighting improvements, including significant improvements to:
- JavaScript, with thanks to Thomas Smith
- ShellScript, with thanks to Raoul Wols
- Makefiles, with thanks to Raoul Wols
- Java, with thanks to lastsecondsave
- C#, with thanks to keith-hall
- Markdown, with thanks to keith-hall
- Python, with thanks to FichteFoll
- Added stand alone syntax test runner for Linux, allowing for CI testing
- Various syntax definition errors now include the file name in the message
Command Palette
- New Command Palette implementation that can accept text input from users
- Fuzzy matching can match terms out of order by space separating them
- Added new commands Arithmetic, Rename File and View Package File to showcase new features
- Keyboard shortcut hints are no longer cut off at 15 characters
- Improve cancellation handling
- Use /usr/bin/env to locate bash
- Fix multi-byte encodings sometimes triggering decoding errors
- Improved exec build target handling of killing child processes
- Improved handling of symlinks in the sidebar, including additions and removals
- Symlinks no longer have an expand arrow in the sidebar, but have a Reveal Link Source context menu entry
- Add support for binary_file_patterns, index_exclude_patterns and index_include_patterns to .sublime-project files
- index_exclude_patterns and index_include_patterns can now match full paths instead of just filename
- Mac: Reduced the number of file stats operations
- Mac: Added support for case-sensitive file systems
Input
- Fixed popup and auto complete windows not showing when the caret is at the leftmost position of a widget
- Fix left arrow not working in the side bar
- Fixed not being able to grab the scrollbar by clicking on the rightmost pixels of the window
- Fix double clicking on the selection not setting input focus when drag_drop is enabled
Performance
- Significantly reduced memory usage related to syntax definitions - using up to 30% less total program memory
- Improve idle CPU usage
- Fix a bug where theme animations may continue even after a layer has been hidden, causing excessive CPU usage
- Mac: Solved increased CPU usage on Macs when a GPU switch occurs while using a theme with a colored title bar
API
- Added TextInputHandler and ListInputHandler to interact with new Command Palette functionality
- Added View.style() and View.style_for_scope()
- Added automatically generated scope names for use with the regions API: region.redish, region.orangish, region.yellowish, region.greenish, region.bluish, region.purplish and region.pinkish
- Improve View.find() and View.find_all() performance when doing literal matches
- Expanded ViewEventListener API
- Fix EventListener.on_activated_async() not being called for views when the editor starts
- Add ViewEventListener.on_activated() and ViewEventListener.on_activated_async() to be called for views when the editor starts
- Improve tracebacks for Python in .sublime-package files
- shell_environment is now ensured to be loaded before plugin_loaded() is called on plugins
- Plugin commands are now created before plugin_loaded() is run
- Loaded plugins are now stored in __plugins__ rather than plugins
- The Python ssl module will now negotiate TLS 1.2, 1.1 or 1.0 with the PROTOCOL_TLSv1 constant
- Updated Python environment with SQLite 3.22.0, and OpenSSL 1.0.2n
Miscellaneous
- Fixed being unable to load dictionary files larger than 16mb
- Fixed an issue where out of memory conditions would trigger a buffer overflow instead of a clean crash
- Word wrap is turned on by default for the console
- Added Regex Replace Widget.sublime-settings and Console Input Widget.sublime-settings
- Fixed a number of bugs that would cause crashes
Compatibility
OS X 10.7 or later, 64-bit processor
Screenshots
Download Now