Pico (text editor)

Pico (Pine composer) is a text editor for Unix and Unix-like computer systems. It is integrated with Pine and Alpine, email clients initially designed by the Office of Computing and Communications at the University of Washington.

From the Pine FAQ: "Pine's message composition editor is also available as a separate stand-alone program, called PICO. PICO is a very simple and easy-to-use text editor offering paragraph justification, cut/paste, and a spelling checker...".

Features
Pico does not support working with several files simultaneously and cannot perform a find and replace across multiple files. It also cannot copy partial text from one file to another (though it is possible to read text into the editor from a whole file in its working directory). Pico does support search and replace operations.

By comparison, some popular Unix text editors such as vi and Emacs provide a wider range of features than Pico; including regular expression search and replace, and working with multiple files at the same time. By comparison, Pico's simplicity makes it suitable for beginners.

Basic commands and navigation
Pico features a number of commands for editing. Arrow keys move the cursor a character at the time in the direction of the movement. Inserting a character is done by pressing the corresponding character key in the keyboard, while giving commands (such as save, spell check, justify, search, etc.) is done using a control key.

The Ctrl command is used to spell check. The speller is defined from the command line using the -s option. When a person writes files in different languages, the speller can be set to be a script that interacts with the user to select the language to be checked.

The Ctrl command is used to left justify text. Text is flowed in each line of a paragraph up to a limit set with the -r option in the command line. If no limit is given in the command line, then a default value of 72 characters per line is used. This limit is used to wrap lines during composition, as well as to justify text. The Ctrl command justifies the text in the paragraph that the cursor is placed on. The command Ctrl Ctrl is used to justify the full file. In case that justification is not done correctly, or by mistake, it can be undone by pressing the Ctrl command immediately after justification has been done.

The Ctrl command is used to search for text. Search is done case insensitively, The search and replace command is not available by default, but must be enabled through the -b option in the command line.

Moving inside the editor can be done using the keyboard by using the arrow keys. Keys such as Page Up, or Page Down, scroll the text up or down (towards the beginning or end of the file, respectively). The commands Ctrl Ctrl, and Ctrl Ctrl move the cursor to the beginning or end of the file respectively, while the commands Ctrl and Ctrl move the cursor to the beginning and the end of the line that the cursor is located on.

Derivatives
A clone of Pico called nano, which is part of the GNU Project, was developed because Pico's earlier license had unclear redistribution terms. Newer versions of Pico as part of Alpine are released under the Apache License version 2.0.