1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
# Broot
[![CI][s3]][l3] [![MIT][s2]][l2] [![Latest Version][s1]][l1] [![Chat on Miaou][s4]][l4]
[s1]: https://img.shields.io/crates/v/broot.svg
[l1]: https://crates.io/crates/broot
[s2]: https://img.shields.io/badge/license-MIT-blue.svg
[l2]: LICENSE
[s3]: https://travis-ci.org/Canop/broot.svg?branch=master
[l3]: https://travis-ci.org/Canop/broot
[s4]: https://miaou.dystroy.org/static/shields/room.svg
[l4]: https://miaou.dystroy.org/3490?broot
A better way to navigate directories
### Get an overview of a directory, even a big one:
![overview](img/20190128-overview.png)
Notice the "unlisted"? That's what makes it usable where the old `tree` command would produce pages of output.
`.gitignore` files are properly dealt with to put unwanted files out of your way (if you want to see git ignored files, type `:gi`).
### Find a directory then `cd` to it:
![cd](img/20190128-cd.png)
This way, you can navigate to a directory with the minimum amount of keystrokes, even if you don't exactly remember where it is.
broot is fast and never blocks, even when you make it search a big slow disk (any keystroke interrupts the current search to start the next one).
Most useful keys for this:
* the letters of what you're looking for
* `<enter>` to select a directory (staying in broot)
* `<esc>` to get back to the previous state or clear your search
* `<alt><enter>` to get back to the shell having `cd` to the selected directory
* `:q` if you just want to quit (`<ctrl><q>` works too)
### Never lose track of file hierarchy while you fuzzy search:
![size](img/20190212-mycnf.png)
broot tries to select the most relevant file. You can still go from one match to another one using `<tab>` or arrow keys.
You may also search with a regular expression. To do this, add a `/` before or after the pattern.
Complex regular expression are possible, but you'll probably most often use a regex to do an "exact" search, or search an expression at the start or end of the filename.
For example, assuming you look for your one file whose name contains `abc` in a big directory, you may not see it immediately because of many fuzzy matches. In that case, just add a slash at the end to change your fuzzy search into an exact expression: `abc/`.
And if you look for a filename *ending* in `abc` then you may anchor the regex: `abc$/`.
### See what takes space:
![size](img/20190128-only-folders-with-size.png)
To toggle size display, type `:s`. Sizes are computed in the background, you don't have to wait for them when you navigate.
### Apply a personal shortcut to a file:
![size](img/20190128-edit.png)
Just find the file you want to edit with a few keystrokes, type `:e`, then `<enter>` (you should define your preferred editor, see [documentation](documentation.md#verbs)).
### More...
See **[Broot's web site](https://dystroy.org/broot)** for instructions regarding installation and usage.
|