---
name: "leaf"
section: "1"
platform: "linux"
package: "cone"
version: "0.89-1"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/leaf"
---

# leaf(1)

Lightweight Editor of Ascii(and more) Files

	Cone©

## NAME

leaf - Lightweight Editor of Ascii(and more) Files

## SYNOPSIS

**leaf** \[-f\] \[-d *dictionary*\] \[+*n*\] \[*filename*\]

## USAGE

**leaf** is a simple console text file editor, with paragraph word-wrapping and spell checking. **leaf** is based on the text editor in the Cone mail reader and composer. **leaf** opens *filename*, positioning the cursor on the first line, or line #*n*, if specified.

This is not really the best editor for program sources. **leaf** is meant to be used as a quick editor for writing short notes and memos. As text is typed, words will automatically flow to wrap within a typical 80-character terminal display, even on larger display (due to **leaf**´s heritage as an editor for E-mail messages, which are traditionally formatted to fit an 80-character display). Word wrapping is "lazy": only long text lines are wrapped. Short text lines are not folded together. Individual paragraphs are separated by blank lines of text. Press CTRL-J to optimally rejustify the paragraph under the cursor. The bottom two lines on the screen list which keys to press for other functions.

### Flowed text

The **-f** option enables “flowed text” formatting convention. Plain text files have no explicit means for joining multiple lines into logical paragraph. Each line of text is an individual line, and a blank line marks the end of a paragraph.

In a “flowed text” formatted file, each line in a paragraph except the last one ends with a space character. This makes no visual difference, it´s just a marker that this line should be merged with the next line. The last line in the paragraph does not end in a space character.

The trailing space character is logically removed from each flowed line, and all flowed lines are merged into a logical paragraph that can be adjusted to any display width. It´s important to note that text written in non-ideographic languages, where individual words are separated by spaces, will have two space characters at the end of every line: the space character that separates the last word on the line from the first word on the next line, and the a second space character that marks the line as a flowed line.

Because the trailing space marking a flowed line is logically removed, without the second space character there will not be a logical space between the two words, and if the paragraph´s width is adjusted for display the two words may get combined together.

The **-f** option puts **leaf** into flowed text mode, removing spaces from each flowed line of text in an opened file. A flowed line is marked on the screen with a "\<" character in the right margin (or a small "next line" character on a UTF-8 display). When saving a file **leaf** automatically adds a trailing space to each line that´s marked as flowed.

The flowed text mode stays in effect for each file opened in **leaf**. When opening another file, press CTRL-F to turn flowed mode on or off for the next file. This change stays in effect until it gets toggled again.

Pressing CTRL-J optimally rejustifies the text in flowed text mode. **leaf** heuristically determines the start and the end of the paragraph, readjusts the width of the paragraph, and marks each line as flowed, except the last paragraph line. **leaf** uses a unicode-based algorithm for determining whether the last character line needs a space character, in addition to the flowed space marker.

**Note**\

**leaf** is frequently used to edit plain text email message content. Because email messages assign some semantical meaning to lines of text that start with spaces or "\>" characters, CTRL-J will not rejustify lines of text that begin with a "\>" or a space. These lines will be considered paragraph boundaries, in addition to blank lines.

### Spell checking

The **-d** option sets the name of the dictionary used for spell checking (overriding the default spell checking dictionary set by the **DICTIONARY** environment variable). **+***n* sets the initial cursor position to line #*n*.

## SEE ALSO

[**emacs**(1)](/emacs/1.md), [**vi**(1)](/vi/1.md)

## AUTHOR

**Sam Varshavchik**
