treefactor-throw refiles something to a destination in the next window.

Imagine that the next window holds a row of boxes. You pick up the object at point and throw it into one of the boxes.

In this gif demo, I throw Org headings to different directories in a Dired buffer.


treefactor-throw refiles headings into an file in the chosen directory. If the directory doesn't already have an file, one is created.

treefactor-throw tries to place headings intelligently in files. Normally it appends the heading to the bottom of the file. However, if the file contains a level-one heading, then treefactor-throw assumes that the file is a polished document, not an inbox-style list of headings. It will place the heading immediately before the level-one heading, where it is hard for the user to miss.

treefactor-throw also works on outline headings in other text modes. If the text is not inside an outline heading, then it throws the line at point.

treefactor-throw handles files the same way as text. Here's a demo gif:


treefactor-throw puts files in a /0-Inbox directory under the chosen directory, so that new files aren't mixed up with pre-existing files.

Lastly, treefactor-throw can throw text to outline headings. Here's a demo gif. This time I'm throwing lines of text instead of outline headings, just for variety:


The lines are double-spaced and placed under the selected outline heading:


Double-spacing prevents the user from accidentally appending a line to an existing unrelated paragraph of text.

I've used capitalized search terms to minimize typing in these demos so far. But what if the destination list is difficult to navigate with isearch?

When throwing to an outline, if isearch returns multiple matches, treefactor-throw uses Avy for the final selection.

gif-screencast couldn't capture the Avy overlay, but you can watch how Avy works at the above link. To summarize: Just type the red letter at the line you want.