gedit
Description
The GNOME desktop environment on Linux required a default text editor — a simple, clean application for editing configuration files, scripts, and documents that worked naturally within the GNOME interface. gedit filled that role from GNOME’s early years and became the default text editor in Ubuntu, Fedora, and other major Linux distributions that ship with GNOME. Its audience is wide: Linux users who need a quick editor for a config file, beginning programmers who are writing their first scripts, sysadmins who are editing server configuration between more specialized sessions, and writers who want a distraction-free text editor without installing extra software.
The GNOME Project develops gedit as open source software under the GNU GPL license. The application conforms to the GNOME Human Interface Guidelines, and integrates cleanly with GNOME’s visual design and configuration system. Active development is ongoing with the GNOME release cycle, and gedit is included in the default installation of most GNOME-based Linux distributions.
gedit supports syntax highlighting for over 100 programming and markup languages using the GtkSourceView library. Highlighting covers programming languages such as Python, C, C++, Java, JavaScript, PHP, Ruby, Go, and Rust; markup formats such as HTML, XML, CSS, Markdown, and reStructuredText; configuration formats such as JSON, YAML, TOML, and INI; and shell scripting formats such as Bash, Zsh, and Fish. The language is automatically detected from the file extension or the shebang line at the top of a script, and the user overrides the detection from the language selector in the status bar.
The search bar opens at the bottom of the editor window and finds text strings or regular expressions in the active file. Regular expression search is based on the syntax of GLib’s regex, including character classes, quantifiers, groups, and backreferences. Search and replace performs replacements one by one or all at once in the file. Case sensitivity and whole word matching toggle on a per search session basis.
gedit’s plugin system is used to extend the editor with functionality that is not available by default. The standard set of plugins contains useful additions: a file browser panel for navigating the filesystem from within the editor window, a spell checker for underlining misspelled words using the system dictionary, a code snippet library for inserting frequently used text blocks, a multi-document sort tool, and a word count display in the status bar. Additional community plugins extend the application further with features such as terminal integration, color picker tools and Git diff display.
gedit opens multiple files at the same time in a tabbed interface, with each file in its own tab at the top of the window. The tab bar displays file names, and unsaved changes indicate a dot indicator on a tab. Splitting the window horizontally or vertically splits the editing space to show two files side by side, useful for comparing files or working from a reference document while editing another.
gedit recognizes and processes text files in a variety of character encodings such as UTF-8, UTF-16, ISO 8859 variants, etc. Encoding selector in the open dialog specifies encoding for files where auto-detection is ambiguous. Saving saves the file in any supported encoding, so that conversion between encodings does not require a separate tool.
The status bar displays the current position of the cursor as line number and column number, changing as the cursor moves. Go to Line – goes directly to a specific line number, useful for jumping to a line reference from a compiler error message or a script reference.
gedit makes a backup copy of a file before it saves changes, adding a tilde to the original filename. Auto-save saves unsaved changes to a temporary file at configurable intervals, minimizing data loss due to application crashes or system interruptions. Both behaviors are configured in the preferences.
When gedit is closed with open files that have unsaved changes, it restores the files in the same state at the next launch, asking the user if it should apply or discard the unsaved changes before reopening the editor session.