A clone is a "live" copy of a node that changes when the original nodes changes. A small red arrow in icon boxes marks clones. When you clone a node, there is no distinction between the "original" node and the "new" cloned node. All clones are created equal; both nodes are now clones. When you remove the penultimate cloned node, the last clone becomes a non-cloned node.

In effect, all clones are the same node. When you change any part of cloned node, Leo instantly updates the corresponding parts of all its clones, including their headline, body text and all their descendant nodes. Inserting, deleting or reordering child nodes in one clone, causes Leo to make the corresponding changes in the children of all other clones.

If you have already installed Leo, now would be a good time to play with clones. Start with a single node whose headline is A. Clone this node using the clone-node (Ctrl-`) command. Type some text into the body of either node A. The same text appears in the body of the other clone. Insert a node whose headline is B as a child of any clone. All the A nodes now have a B child. What happens when you clone B? All A nodes should now have two children B. What happens when you insert, delete or move nodes that are children of A? The corresponding changes should appear in all clones. Verify that when the second-to-last cloned node is deleted the last cloned node becomes a regular node again.

Using clones, any node may appear in many places in the outline. A view is just a node containing other nodes. You can create as many views of your data as you want, each tailored exactly to the task at hand. You never have to create a single "right" or "best" view. You can have them all. Views, being nodes, persist until you delete them. Leo is the best possible filing cabinet for any kind of data.

To create a new view of the data, just create any ordinary node. This view node represents the new view. Views can contain any other nodes, but views typically contain one or more clones. Views gather nodes from all parts of the outline. Views create a focus of attention.

For example, when I begin to fix a bug I first create a view node for that bug. I create a child node that contains the original bug report, and possibly other child nodes containing notes and documentation, test results, etc. Next, I go looking throughout Leo's code for nodes related to the bug. When I find such a node I clone it and move one of the clones so it becomes a child of the view node. Once I have created the view of the bug, I can concentrate only on that view. Because all clones are, in effect, the same node, I can fix code elsewhere by changing cloned nodes in the view. In effect, I can limit my attention to just a few nodes. Views create mini-projects within a larger project.