ICTREE(1) User's Reference Manuals ICTREE(1)

ictree - like tree but interactive

ictree [option ...] file

ictree is a terminal-based program that takes a list of contents of directories and displays them in a pager similar to less where you can fold/unfold directories and quickly jump between them.

It is useful to browse locate, find or any other program output that is a list of paths.

Fold directories by default.
Set directory separator to C. ‘/’ is the default value.
Print a help message and exit.
Display version information and exit.

Find something with locate and pipe output into ictree:

locate something | ictree
    

The same applies to any program that can produce a list of paths. For example, one can use find with ictree to view current working directory in a nice tree-like format:

find | ictree
    

ictree can also take a file that contains paths as its first argument:

locate something > list.txt
ictree list.txt
    

ictree supports Vi-like search functionality. Extended regular expressions are supported. If a pattern contains ‘/’ character, the search is performed by full paths of items instead of their short names in the list.

All the commands for moving in the pager resemble less and Vi commands.

<Down>
Move cursor down 1 line
<Up>
Move cursor up 1 line
>
Scroll right
<
Scroll left
^E
<Mouse Wheel Down>
Scroll down one line
^Y
<Mouse Wheel Up>
Scroll up one line
^D
Scroll down half-window
^U
Scroll up half-window
^F
Scroll down one window
^B
Scroll up one window
Move cursor to the top
Move cursor to the bottom
Put cursor at the center of window
Go to parent item

<Enter>
<Mouse Left Button>
Fold/unfold selected item
<Space>
Fold selected item and move cursor down 1 line
Go to parent item and fold it
<Right>
If selected item is folded, unfold it; otherwise go to first child item
<Left>
If selected item is unfolded, fold it; otherwise go to parent item
/
Search forward for pattern
?
Search backward for pattern
Repeat previous search
Repeat previous search in reverse direction
Copy selected item into X or Wayland clipboard (using this command requires xsel or wl-copy installed, depending on which display server is used)
Write selected item to standard output and exit
<Esc>
Quit
^Z
Suspend ictree

It's possible to define custom commands in the configuration file (see FILES) to open a selected path in other programs.

Examples:

# open selected path in vim by pressing e
map e vim "$f"

# open selected path in a pager
# defined in $PAGER environment variable
map i $PAGER "$f"
    

When a custom command is invoked, ictree simply runs a program with /bin/sh and sets $f variable to whatever a user has selected.

Note: unlike Vim, it's impossible to use more than one character in a mapping.

$XDG_CONFIG_HOME/ictree/config
Configuration file. If $XDG_CONFIG_HOME is not set, defaults to ~/.config.

tree(1), find(1), locate(1), less(1)

Written by Nikita Ivanov.

2022 Linux