# Sublime Text

Sublime Text is a text and source code editor featuring a minimal interface, syntax highlighting and code folding with native support for numerous programming and markup languages, search and replace with support for regular expressions, an integrated terminal/console window, and customizable themes. Available for Windows, macOS, and Linux, its functionality can be expanded with plugins written in Python. Community-contributed plugins can be downloaded and installed via a built-in Package Control system, or written by the user via a Python API. Sublime Text is proprietary software, but can be downloaded for free and used as an evaluation version with no time limit.

## Features

Features of Sublime Text include quick navigation to symbols, lines, or project files; a "command palette" with adaptive matching for quick keyboard invocation of frequently used commands; simultaneous editing; a Python-based API for plugins; project- and syntax-specific preferences; extensive customizability via JSON settings files, including project- and platform-specific settings; cross-platform support (Windows, macOS, and Linux) and associated support for writing cross-platform plugins; and support for TextMate language grammars.

## Limitations

As of version 4, Sublime Text does not support editing right-to-left languages such as Hebrew, Arabic, and Persian.

## Version history
### Version 1

Sublime Text 1.0 was released on 18 January 2008 as an application for the Windows operating system. It supports tabs and side-by-side view of files.

### Version 2

Sublime Text 2.0 was released on 26 June 2013. It is the first release to support Linux and OS X. Other changes from the first version of the software, as promoted on the official Sublime blog, include Retina display support and "Quick Skip Next" functionality.

#### Themes

* Sublime Text contains 23 visual themes, with the option to download and configure additional themes via third-party plugins.
* The minimap feature shows a reduced overview of the entire file in the top-right corner of the screen. The portion of the file visible in the main editor pane is highlighted and clicking or dragging in this view scrolls the editor through the file.

#### Panels, groups and screen modes

* Screen modes include: showing up to four files at once in panels, a full-screen and distraction-free mode to show one file without interface menus around it.

#### Column selection and multi-select editing

With this feature a user can select entire text columns at once or place more than one cursor in the text. This allows simultaneous editing. The cursors behave as if each of them was the only one in the text, moving independently in the same manner. Including to move by one character, by line, by words, and by subwords (CamelCase, hyphen or underscore delimited), and move to beginning/end of line. This allows editing complex repetitive structures without the use of macros or regular expressions.

#### Auto-completion

Sublime Text suggests completing entries as the user is typing, informed by the programing language of the current file. It also auto-completes variable names assigned to within the same code base.

#### Syntax highlight and high-contrast display

The dark background on Sublime Text is intended to reduce eyestrain and improve readability of text by increasing the amount of contrast with the text.

#### In-editor code building

Users can run code for certain languages from within the editor, reducing the need to switch to a command-line prompt. This function can also be set to build the code automatically every time the file is saved.

#### Snippets

This feature allows users to save blocks of frequently used code and assign keywords to them. The user can then type the keyword and press Tab ↹ to paste the block of code whenever they require it.

#### Other features

Sublime Text has a number of features in addition to these, including:
* Auto-save, which attempts to prevent users from losing their work
* Customizable key assignments, a navigational tool which allows users to assign hotkeys to their choice of options in both the menus and the toolbar
* Find as you type, begins to look for the text being entered as the user types without requiring a separate dialog box
* Spell-check function corrects as you type
* Macros
* Repeat the last action
* A wide selection of editing commands, including indenting and unindenting, paragraph reformatting and line joining

### Version 3

Version 3 entered beta on 29 January 2013. At first available only for registered users who had purchased Sublime Text 2, on 28 June 2013 it became available to the general public. However, the very latest development builds still required a registration code. Sublime Text 3 was officially released on 13 September 2017. In May 2018 it was followed by version 3.1 and by version 3.2 in March 2019.
Two of the main features that Sublime Text 3 adds include symbol indexing and pane management. Symbol Indexing allows Sublime Text to scan files and build an index to facilitate the features Goto Definition and Goto Symbol in Project. Pane Management allows users to move between panes via hotkeys.

### Version 4

Version 4 was released on 20 May 2021. Major new features included a project-wide context-sensitive auto completion, tab multi-select and support for darkmode. The new version introduced hardware accelerated rendering using OpenGL for large display resolutions and native Apple M1 and ARM64 support. It also shipped internal performance optimizations and updates such as a new Python 3.8 plugin host and extended APIs for extended plugin development.

## Package manager

Package Control is an open source third-party package manager for Sublime Text which allows the user to find, install, upgrade and remove plug-ins, usually without restarting Sublime Text. The package manager keeps installed packages up-to-date with an auto-upgrade feature and downloads packages from GitHub, BitBucket and a custom JSON-encoded channel/repository system. It also handles updating packages cloned from GitHub and BitBucket via Git and Hg, as well as providing commands for enabling and disabling packages. The package manager also includes a command to bundle any package directory into a .sublime-package file.
Notable third-party packages include:
* LSP - Support for the Language Server Protocol
* Bracket Highlighter – Enhances the basic highlights Sublime Text provides for bracket pairs
* SublimeLinter – Code linting (validation) for JavaScript, Perl, PHP, Python, Ruby, and others
* Sidebar Enhancements – Enhancements to the Sublime Text sidebar with new options for deleting, opening, moving, creating, editing, and finding files

## Sublime Merge

In 2018, Sublime HQ released Sublime Merge, a Git GUI and merging tool. When installed along with Sublime Text it uses its syntax highlighting packages and they have integrations to interact with each other. Technically Sublime Merge and Text share large parts of the codebase and UI concepts.