Scroll to navigation

pico(1) General Commands Manual pico(1)


pico - simple text editor in the style of the Alpine Composer


pico [ options ] [ file ]


Pico is a simple, display-oriented text editor based on the Alpine message system composer. As with Alpine, commands are displayed at the bottom of the screen, and context-sensitive help is provided. As characters are typed they are immediately inserted into the text.

Editing commands are entered using control-key combinations. As a work-around for communications programs that swallow certain control characters, you can emulate a control key by pressing ESCAPE twice, followed by the desired control character, e.g. "ESC ESC c" would be equivalent to entering a ctrl-c. The editor has five basic features: paragraph justification, searching, block cut/paste, a spelling checker, and a file browser.

Paragraph justification (or filling) takes place in the paragraph that contains the cursor, or, if the cursor is between lines, in the paragraph immediately below. Paragraphs are delimited by blank lines, or by lines beginning with a space or tab. Unjustification can be done immediately after justification using the control-U key combination.

String searches are not sensitive to case. A search begins at the current cursor position and wraps around the end of the text. The most recent search string is offered as the default in subsequent searches.

Blocks of text can be moved, copied or deleted with creative use of the command for mark (ctrl-^), delete (ctrl-k) and undelete (ctrl-u). The delete command will remove text between the "mark" and the current cursor position, and place it in the "cut" buffer. The undelete command effects a "paste" at the current cursor position.

The spell checker examines all words in the text. It then offers, in turn, each misspelled word for correction while highlighting it in the text. Spell checking can be cancelled at any time. Alternatively, pico will substitute for the default spell checking routine a routine defined by the SPELL environment variable. The replacement routine should read standard input and write standard output.

The file browser is offered as an option in the "Read File" and "Write Out" command prompts. It is intended to help in searching for specific files and navigating directory hierarchies. Filenames with sizes and names of directories in the current working directory are presented for selection. The current working directory is displayed on the top line of the display while the list of available commands takes up the bottom two. Several basic file manipulation functions are supported: file renaming, copying, and deletion.

More specific help is available in pico's online help.


Causes pico to be started with the cursor located n lines into the file. (Note: no space between "+" sign and number)
Display all files including those beginning with a period (.).
Enable the option to Replace text matches found using the "Where is" command. This now does nothing. Instead, the option is always turned on (as if the -b flag had been specified).
Rebind the "delete" key so the character the cursor is on is rubbed out rather than the character to its left.
Enable file name completion.
Use function keys for commands. This option supported only in conjunction with UW Enhanced NCSA telnet.
List valid command line options.
Enable "Goto" command in the file browser. This enables the command to permit explicitly telling pilot which directory to visit.
Enable "Show Cursor" mode in file browser. Cause cursor to be positioned before the current selection rather than placed at the lower left of the display.
Causes "Cut Text" command to remove characters from the cursor position to the end of the line rather than remove the entire line.
Enable mouse functionality. This only works when pico is run from within an X Window System "xterm" window.
The -nn option enables new mail notification. The n argument is optional, and specifies how often, in seconds, your mailbox is checked for new mail. For example, -n60 causes pico to check for new mail once every minute. The default interval is 180 seconds, while the minimum allowed is 30. (Note: no space between "n" and the number)
-o dir
Sets operating directory. Only files within this directory are accessible. Likewise, the file browser is limited to the specified directory subtree.
Sets column used to limit the "Justify" command's right margin
-s speller
Specify an alternate program spell to use when spell checking.
Enable "tool" mode. Intended for when pico is used as the editor within other tools (e.g., Elm, Pnews). Pico will not prompt for save on exit, and will not rename the buffer during the "Write Out" command.
View the file only, disallowing any editing.
Print Pico version and exit.
Disable word wrap (thus allow editing of long lines).
Disable keymenu at the bottom of the screen.
Enable ^Z suspension of pico.
Preserve the "start" and "stop" characters, typically Ctrl-Q and Ctrl-S, which are sometimes used in communications paths to control data flow between devices that operate at different speeds.
-Q quotestr
Set the quote string. Especially useful when composing email, setting this allows the quote string to be checked for when Justifying paragraphs. A common quote string is "> ".
-W word_separators
If characters listed here appear in the middle of a word surrounded by alphanumeric characters that word is split into two words. This is used by the Forward and Backward word commands and by the spell checker.
Termcap or terminfo definition for input escape sequences are used in preference to sequences defined by default. This option is only available if pico was compiled with the TERMCAP_WINS define turned on.
Do setlocale(LC_CTYPE) if available. Default is to not do this setlocale.
Do not do setlocale(LC_COLLATE). Default is to do this setlocale.

Lastly, when a running pico is disconnected (i.e., receives a SIGHUP), pico will save the current work if needed before exiting. Work is saved under the current filename with ".save" appended. If the current work is unnamed, it is saved under the filename "".

Color Support

If your terminal supports colors, Pico can be configured to color text. Users can configure the color of the text, the text in the key menu, the titlebar, messages and prompt in the status line. As an added feature Pico can also be used to configure the color of up to three different levels of quoted text, and the signature of an email message. This is useful when Pico is used as a tool (with the -t command line switch.)

Pico can tell you the number of colors that your terminal supports, when started with the switch -color_codes. In addition Pico will print a table showing the numerical code of every color supported in that terminal. In order to configure colors, one must use these numerical codes. For example, 0 is for black, so in order to configure a black color, one must use its code, the number 0.

In order to activate colors, one must use the option -ncolors with a numerical value indicating the number of colors that your terminal supports, for example, -ncolors 256 indicates that the user wishes to use a table of 256 colors.

All options that control color, are four letter options. Their last two letters are either "fc" or "bc", indicating foreground color and bacground color, respectively. The first two letters indicate the type of text that is being configured, for example "nt" stands for normal text, so that -ntfc represents the color of the normal text, while -ntbc represents the color of the background of normal text. Here is a complete list of the color options supported by Pico.

displays the number of colors supported by the terminal, and a table showing the association of colors and numerical codes
activates color support in Pico, and tells Pico how many colors to use. Depending on your terminal number could be 8, 16, or 256.
specifies the number num of the color to be used to color normal text.
specifies the number num of the color of the background for normal text.
number of the color of reverse text. Default: same as background color of normal text (if specified.)
number of the color of the background of reverse text. Default: same as color of normal text (if specified.)
number of color of text of the title bar. Default: same as foreground color of reverse text.
number of the color of background of the title bar.
number of the color of the text of the key label.
number of color of background of the key label.
number of color of text of the key name.
number of color of background of the key name.
number of color of text of the status line.
number of color of background of the status line.
number of color of text of a prompt.
number of color of background of a prompt.
number of color of text of level one of quoted text.
number of color of background of level one of quoted text. If the option -q1bc is used, the default value of this option is the background color or normal text.
number of color of text of level two of quoted text.
number of color of background of level two of quoted text. If the option -q1bc is used, the default value of this option is the background color or normal text.
number of color of text of level three of quoted text.
number of color of text of signature block text.
number of color of background of signature block text.


The manner in which lines longer than the display width are dealt is not immediately obvious. Lines that continue beyond the edge of the display are indicated by a '$' character at the end of the line. Long lines are scrolled horizontally as the cursor moves through them.

Files	Unnamed interrupted work saved here.
*.save	Interrupted work on a named file is saved here.


Michael Seibel <>
Laurence Lundblade <>
Pico was originally derived from MicroEmacs 3.6, by Dave G. Conroy.
Copyright 1989-2008 by the University of Washington.

See Also

Source distribution (part of the Alpine Message System):

$Date: 2009-02-02 13:54:23 -0600 (Mon, 02 Feb 2009) $
Version 5.08