Pluma (text editor)

Pluma (plūma "feather") is a fork of gedit 2 and the default text editor of the MATE desktop environment used in Linux distributions. It extends the basic functionality with other features and plugins.

Pluma is a graphical application which supports editing multiple text files in one window (tabs or MDI). It fully supports international text through its use of the Unicode UTF-8 encoding. As a general purpose text editor, Pluma supports most standard editor features, and emphasizes simplicity and ease of use. Its core feature set includes syntax highlighting of source code, auto indentation, and printing support with print preview.

It is designed to have a clean, simple graphical user interface according to the philosophy of the MATE project, and it is the default text editor for MATE. Pluma is free and open-source software subject to the requirements of the GNU General Public License version 2 or later.

The Xed text editor, the pre-installed text editor on Linux Mint, was forked from Pluma in 2016.

Features
Pluma features complete MATE integration, including drag and drop to and from Caja (the MATE file manager), the use of the MATE help system, the MATE Virtual File System and the MATE print framework.

Pluma has a Multiple Document Interface (MDI), or GUI tabs, for editing multiple files. Tabs can be moved between various windows by the user. It can edit remote files using GVfs. It supports a full undo and redo system as well as search and replace. Other typical code oriented features include line numbering, bracket matching, text wrapping, current line highlighting, automatic indentation and automatic file backup.

The features of Pluma include multilanguage spellchecking via Enchant and a flexible plugin system allowing the addition of new features, for example snippets and integration with external applications including a Python or Bash terminal. A number of plugins are included in Pluma itself, with more plugins in the pluma-plugins package and online.

Pluma supports printing, including print preview and printing to PostScript and PDF files. Printing options include text font, and page size, orientation, margins, optional printing of page headers and line numbers, as well as syntax highlighting.

Pluma has an optional side pane displaying the list of open files and (in a different tab of the side pane) a file browser. It also has an optional bottom pane with a Python console and (using Pluma plugins) terminal. Pluma automatically detects when an open file is modified on disk by another application and offers to reload that file. Using a plugin (in pluma-plugins package), Pluma can save and load sessions, which are lists of currently open tabs.

Pluma also includes syntax highlighting via GtkSourceView for various program code and text markup formats.

List of features

 * Syntax highlighting
 * Printing and Print Previewing Support
 * File Revert
 * Full support for UTF-8 text
 * Support for editing remote files
 * Search and Replace
 * Configurable Plugin system, with optional python support
 * A complete preferences interface
 * A new mini map which gives you instant overview over the content.
 * The new grid background pattern turns Pluma into a writing pad.
 * The sort plugin supports undo actions.
 * A show/hide line-numbers shortcut, namely Ctrl + Y.

List of plugins
Some of the plugins, packaged and installed with Pluma (external plugins are also available):
 * File Browser
 * Tag list
 * Word count
 * Spell checker
 * Insert Date/Time
 * Sort
 * Change case of selected text
 * Automatic snippet expansion
 * External Tools
 * Synctex

Architecture
Being part of the MATE Core Applications Pluma uses the latest GTK+ and MATE libraries. The Pluma source code is maintained using the git version control system.