The sophisticated text editor for code, markup and prose. Sublime Text uses a custom UI toolkit, optimized for speed and beauty, while taking advantage of native functionality on each platform. One license is all you need to use Sublime Text on every computer you own, no matter what operating system it uses. Sublime Text is available for Windows, Mac, and Linux.

Is Sublime a code editor or IDE?

Sublime Text is a powerful and easily extensible code editor. It natively supports many programming languages. An IDE like Visual Studio adds more functionality out of the box, allowing you to debug and build code as opposed to a code editor like Sublime.

Is Sublime Text free?

Sublime Text offers an evaluation version that you can use for free, however it will constantly ask you to purchase the license. There is currently no enforced time limit for the evaluation.

Is Sublime Text better than Notepad++?

Both are great text editors but the main difference is that Notepad++ is open source and free, while Sublime Text costs $99 per license. Another important difference is that Notepad++ is only available for Windows, while Sublime Text is cross-platform.

Can I run Sublime Text on Windows 7?

Yes. Sublime Text is compatible with Windows 7 and up.

Is Sublime Text good for HTML?

Yes. Sublime Text contains a custom HTML and CSS engine, named minihtml, for displaying stylized content in editor panes.

Features

Goto Anything

Use Goto Anything to open files with only a few keystrokes, and instantly jump to symbols, lines or words.

Triggered with Ctrl+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 readfile within a file textparser.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 Ctrl+Shift+L to split the selection into lines and Ctrl+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 Ctrl+Shift+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.

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.

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.

What's New

GPU Rendering

  • New hardware_acceleration setting will composite the UI on the GPU
  • By default, GPU rendering is enabled on Mac, and disabled on Windows and Linux
  • Details about the active GPU will be displayed in the Console

Context-Aware Auto Complete

  • The auto complete engine now suggests completions based on patterns in existing code
  • Uses the entire project as a source, instead of just the current view
  • Plugins may specify symbol kind info to be displayed in suggestions list

Tab Multi-Select

  • Multiple tabs can be selected using ctrl/cmd, their contents will be shown side-by-side
  • Selecting multiple files from the sidebar will also preview them simultaneously
  • Included themes have a tab connector joining the active sheet and tab when using sheet multi-select
  • The sidebar can now select multiple files using alt
  • Goto Anything allows opening tabs side-by-side using ctrl/cmd
  • The Definition popup has a dedicated button for opening files side-by-side
  • Multiple tabs can also be selected from the tab dropdown
  • The menu Selection/Tab Selection contains various options for manipulating tab multi-select
  • File/New View into File has been replaced by File/Split View using multi-select

Python 3.8 API

  • Added a Python 3.8 API environment for plugins
  • Plugins can choose Python version via .python-version file in plugin folder
  • Existing plugins are fully supported via legacy Python 3.3 API
  • Many API improvements and additions - see API section for more details

Goto Symbol

  • Goto Symbol in Project is now significantly faster on huge projects
  • Icons are now shown next to symbols, indicating the symbol kind
  • Symbols with 3 characters or less are now indexed

Syntax Definitions

  • Added out of the box support for TypeScript, JSX and TSX - thanks to Thomas Smith
  • Added ability to "branch" within syntax definitions, for non-deterministic or multi-line constructs
  • Many syntax highlighting improvements, including significant improvements to:
  • Erlang, with thanks to deathaxe
  • Significantly improved load times, match times and reduced cache size on disk
  • embed is now lazy loaded, resulting in much higher performance for syntaxes like markdown
  • Added branch and fail for non-deterministic parsing
  • Added version: 2 to fix edge cases while retaining backwards compatibility
  • Added extends to inherit from another syntax definition. Multiple inheritance is supported, provided all parents have the same base syntax
  • Added hidden_extensions
  • Allow using pop alongside push/set/embed/branch
  • Fixed a performance issue with bounded repeats in regular expressions
  • Syntax tests can now assert that reindent is working as expected
  • Syntax tests can now assert that symbols are indexed
  • Prevent infinite include loops via with_prototype
  • Fixed a number of scope related bugs
  • Fixed some regex capture related bugs
  • Added more information to the Show Scope Name popup

OS Compatibility

The following operating systems are no longer supported as a result of adding Python 3.8:

  • OS X 10.7
  • OS X 10.8
  • Windows XP
  • Windows Vista

Previous Release Notes:

  • Various syntax highlighting improvements
  • Index collation is now done incrementally
  • Fixed an issue where animations were causing excessive redraws
  • Find in files now truncates long lines according to the "find_in_files_context_characters" setting
  • Fixed auto-complete not suggesting tokens from the current line
  • Added Mouse Bindings to the Preferences menu
  • Added Preferences > Font > Choose… for an easy way to select a font
  • Added Copy Path to Sidebar context menu
  • Fixed minimap border not rendering
  • Fixed color emoji blending with transparency
  • Fixed line-number alignment when using a variable-width font
  • Fixed double clicking a find in file result sometimes scrolling to the wrong line in the file
  • Fixed case where opening a file from Sublime Merge wouldn't jump to the right line
  • Improved bookmark toggling
  • Improved performance of "Definitions" popup
  • Improved Join Lines behavior
  • Improved behavior of Indent command on empty lines
  • Added "ruler_width" setting
  • Added current_result command
  • Fixed case conversions not taking all-caps into account
  • Fixed an auto-indent issue
  • Fixed an issue with find_under_expand when the find panel is focused
  • Fixed disabling "highlight_gutter" resulting in "highlight_line" begin disabled
  • Fixed some incorrect behavior when converting a multi-line selection to Title Case
  • Fixed a memory corruption bug related to block carets
  • Fixed Quick Switch Project… from the settings window closing the window
  • Fixed "move_to_limit_on_up_down" setting not working
  • Shift+Enter now also hides the incremental find panel
  • Fixed macro recording in Vintage package not working
  • Updated to OpenSSL 1.1.1v
  • Fixed run_syntax_tests command not running symbol tests
  • API: Added sublime.choose_font_dialog
  • API: Allow case insensitive comments using TM_COMMENT_CASE_INSENSITIVE
  • API: Fixed instability related to overlapping API calls
  • API: Fixed crash when an edit token is passed to the wrong view
  • API: Fixed some issues related to plugin initialization
  • API: ListInputHandler now supports initial_selection
  • API: Fixed ListInputHandler not selecting the first result when initial_text is provided
  • API: Added update_text option to sublime.encode_value
  • API: Fixed expand_to_paragraph in paragraph.py incorrectly unpacking tuple
  • Linux: Improved tracking of fullscreen state
  • Linux: Fixed some memory leaks related to fonts
  • Linux: Fixed "ui_scale" setting not being applied to fonts correctly in some cases
  • Windows: Added CRLF handling for text drag an drop
  • Windows: Fixed wrong font extents causing glyphs to be cut off at the top
  • Windows: Fixed caret movement across phantoms when using fractional scaling
  • Mac: Improved animation frame timing
  • Mac: Implemented window cascading
  • Mac: Recent files are now cleared when "update_system_recent_files" is disabled
  • Mac: Fixed Copy as HTML not working
  • Mac: Fixed subl not always finding the correct application bundle
  • Mac: Fixed "regex_auto_escape" not working
  • Some macOS 10.13.6 users experienced issues when updating to 4.4151, so a hotfix (4.4152) was released. The macOS download link posted here is to version 4.4152.
  • Various syntax highlighting improvements
  • Added "fold_style" setting for controlling syntax-based code folding
  • Last tab in a group can now be selected with alt+9 (Windows/Linux) and cmd+9 (Mac)
  • Split View retains the original view's viewport position
  • Added WebP support
  • Improved minimap viewport contrast with large amounts of visible text
  • The window title now indicates whether Sublime Text is running with administrator privileges
  • Improved indentation detection for files with many single space indents
  • Improved caret positioning when using text wrapping
  • Fixed files in side-bar not properly reflecting their git status
  • Find in Files: Tab multi-select modifier keys are now supported
  • Find in Files: Fixed search results not being ordered
  • Find in Files: Paths can now be quoted
  • Find in Files: Added "find_in_files_suppress_errors" settings
  • Find in Files: Added "find_in_files_context_lines" settings
  • Find in Files: Added "find_in_files_side_by_side" setting
  • Find in Files: Ongoing searches are no longer canceled on renamed buffer
  • Find in Files: Fixed ./ not working in the "Where" field
  • Find: Added "regex_auto_escape" setting
  • Find: Fixed find settings confusion when run immediately after find_under_expand
  • Find: Fixed find in selection skipping empty selections
  • Fixed word wrap being too early in some cases
  • Fixed scrolling by page not always including a full line of context
  • Fixed first character beyond ASCII range not being decoded/encoded for short code pages
  • Improved performance when drag selecting columns
  • Fixed annotations displaying incorrectly when "ui_scale" is set to something other than 1
  • Fixed recent file list not being updated when quitting with hot exit disabled
  • Fixed high memory usage edge case in minihtml parsing
  • Fixed case where open file/folder dialogs didn't respect "default_dir" setting
  • Reopen Closed File now uses the window's file history by default rather than global history
  • Fixed tabs of deleted files incorrectly showing as modified in some cases
  • Fixed "draw_centered" setting causing incorrect gutter rendering in some cases
  • Fixed extra commands being included for macros in some situations
  • Fixed goto-symbol not showing inside empty groups
  • Fixed column number in the status bar not updating upon changing tab width
  • Fixed issue where the command palette could consume key presses while not having input focus
  • Syntax Highlighting: Improved scope selector performance
  • Syntax Highlighting: Fixed syntax-based folding not working correctly with some indented code
  • Syntax Highlighting: Fixed syntax definition negative symbol tests
  • Syntax Highlighting: Fixed edge case that could break syntax highlighting
  • Syntax Highlighting: Fixed backtracking bug where tokens were being dropped
  • Syntax Highlighting: Fixed some hangs caused by syntax backtracking
  • Syntax Highlighting: Fixed a syntax highlighting performance issue due to backtracking
  • Syntax Highlighting: Fixed a crash when a lazy loaded syntax doesn't exist
  • API: Updated to Python 3.8.12 and OpenSSL 1.1.1s
  • API: The Python 3.3 plugin environment now uses the same OpenSSL as 3.8
  • API: Added support for the "context" key in mousemaps
  • API: Fixed inconsistent focus after Window.open_file()
  • API: The open_file command now supports "transient", "force_group", "clear_to_right" and "force_clone" arguments
  • API: Added Window.num_views_in_group()
  • API: Added sublime.project_history()
  • API: Added sublime.folder_history()
  • Windows: Added alt+shift+p as default keybinding for Quick Switch Project
  • Windows: Fixed a packaging error with the installers
  • Windows: Fixed tooltips sometimes not being removed
  • Windows: Fixed select folder dialog not respecting the initial directory
  • Windows: Fixed lockup that could occur when menus and popups interfere
  • Linux: Files for printing are saved in ~/Downloads if possible to work around snap/flatpak limitations
  • Linux: User config and cache paths are now created at startup if not present
  • Linux: Fixed incorrect mouse behavior at window edges
  • Linux, Mac: Attempt to find the license key for the user when using sudo
  • Mac: Better support for running as root
  • Mac: Fixed extra window being created when ST is launched by opening a file from finder
  • Mac: System setting "click in the scroll bar to" is now respected
  • Mac: Added workaround for Monterey bug causing scrolling to misbehave
  • Mac: Added security entitlements allowing plugins & build systems to request the camera and microphone

Build 4143:

  • Fixed a performance regression in 4142 on color schemes with very complex selectors
  • Folded regions no longer include the trailing newline by default
  • Fixed selection jumping when clicking on a fold marker

Build 4142:

  • Mac: Added Notarization
  • Fixed a performance regression when moving the caret upwards in large files
  • Fixed a memory leak
  • Fixed not being able to swap lines down with the last line if it was empty
  • Git: Fixed includeIf handling in git config files not interpreting ~ relative paths correctly
  • Various syntax highlighting improvements
  • Git: Git repositories at the top level of a users home directory are ignored for performance reasons. This can be changed via the allow_git_home_dir setting.
  • Git: Improved performance with a large number of git repositories in the side bar
  • Git: Fixed UTF8 BOMs not being handled correctly in .gitignore files
  • Fixed a crash in the Git repository handling
  • Improved file indexing behavior in some scenarios
  • Improved scrolling logic in some scenarios
  • Fixed block carets changing the way text selection works
  • Fixed swap_line_up and swap_line_down transforming tabs into spaces
  • Mac: Added a workaround for a MacOS issue with DisplayLink adapters
  • Linux: Fixed compatibility with old Linux distributions
  • Linux: Improved high dpi handling under KDE
  • Linux: Tweaked the way text scaling is handled
  • Linux: Fixed incorrect file ownership in the deb packages
  • API: Fixed an incompatibility with SublimeREPL
  • API: Fixed regression with phantoms interfering with home/end behavior

The first stable release of Sublime Text 4 has finally arrived! We've worked hard on providing improvements without losing focus on what makes Sublime Text great. There are some new major features that we hope will significantly improve your workflow and a countless number of minor improvements across the board.

  • Improved OpenGL rendering performance by automatically batching together controls
  • Added support for Chinese standard GB18030 file encoding
  • Added support for CP862 file encoding
  • Resolved various issues tracking symlinks in the side-bar
  • Avoid session data corruption if a crash happens while saving the session
  • subl -n will reuse an existing empty window if the application isn't running
  • Binary files now show as "Binary" syntax instead of "Plain Text" in the status bar
  • Fixed wildcards incorrectly matching subpaths (For settings like "folder_exclude_patterns")
  • Made "find_in_files_max_result_size" not apply when replacing
  • Fixed crash when loading invalid grid layout from session
  • Fixed spell checker incorrectly marking some words as correct if they can't be encoded
  • Fixed rendering order of successive popups
  • Fixed package subfolders sometimes not being loaded when matching the "ignored_packages" setting
  • Fixed layout instability in side bar causing things to occasionally be rendered 1 pixel off
  • Added some missing glyphs to "draw_unicode_white_space": "all"
  • Added "draw_unicode_bidi" setting for drawing unicode bidi characters
  • Added "select_across_groups" setting for opting into the old side bar selection behavior when selecting a single file
  • Fixed "close_windows_when_empty" setting not working
  • Fixed goto-definition preview not closing on escape
  • Fixed quick panel closing on enter when there are no matching entries
  • Syntax Highlighting: Fixed backtracking breaking when creating phantoms or doing a context backtrace
  • Syntax Highlighting: Fixed regression with some syntax definitions introduced in 4115
  • Linux: Added missing libcurl dependency for package managers
  • Linux: Fixed GTK overriding LC_NUMERIC environment variable breaking serialization
  • Windows: Fixed command line not taking focus after closing a waited on file
  • Windows: Fixed crash when OpenGL initialization fails
  • Mac: Aliases are now resolved when using drag and drop
  • Mac: Fixed window sometimes being restored on startup when "create_window_at_startup" is disabled
  • Mac: Fixed native tabs restoration resulting in odd behavior
  • Mac: Fixed subl -b not working
  • Mac: Fixed terminal not being focused after waiting on file
  • Mac: Fixed Window > Merge All Windows merging minimized windows
  • Mac: Fixed various inconsistencies when opening files from finder
  • API: The show_panel command for the find and find in files panels can now take "pattern" and "replace_pattern" arguments
  • API: ListInputHandler.preview is now called with None when no items match the current filter
  • API: Fixed case where Window.project_data() could return an invalid value
  • API: Opening a new pane moves currently selected sheets
  • API: Added Window.move_sheets_to_group
  • API: The commands move_to and move_to_neighbouring now move currently selected sheets