At first glance, Leo looks similar to other editors and IDE's.


At the top of the screen is an icon area containing buttons or other widgets. Leo's plugins (Python scripts) may add items to the icon area.

At the bottom of the screen, Leo has a minibuffer into which you can type minibuffer commands, just as in Emacs. Leo typically uses Emacs-like command names, like execute-script or close-window. Like Emacs, you can type the command name in the minibuffer, and like Emacs, you can use tab completion, shown in a tab in the log pane. Of course, you can also execute commands from menus. As we shall see, you can use special-purpose Leo outlines to change menus however you like.

Leo's outline pane appears below the icon area, to the left of the log pane. The outline pane contains headlines. Double-click the headline or type Ctrl-h to edit a headline. The icon box is a small icon just to the left of the headline. The icon box shows the nodes attributes. A red vertical bar indicates a node is marked. A small arrow indicates the node is a clone. A darker box indicates that the node has been changed. A small square indicates that the node has body text.

Below the outline pane lies the body pane. The body pane shows the body text associated with the presently selected headline. A node consists of a headline, its associated body text, and optional user data. We'll say much more about nodes in [Scripting Leo: Commanders, Nodes and Positions]?.

Note: It is natural to use the word "outline" in three ways. First, what is shown in the outline pane. Second, the entire collection of nodes (See the next section) in a Leo outline file (.leo file). Third, the .leo file itself. This slightly ambiguous usage typically causes no confusion.