Fuzzy directory and file browser for the shell, built around fzf.
Zsh integration
Clone this repository (recommended location ~/.fzf_browser)
git clone https://github.com/ggVGc/fzf_browser ~/.fzf_browser
Make sure this repository is added to your $PATH, i.e
PATH=${PATH}:~/.fzf_browser
fuzzybrowse [options] root_path
Option | Description |
---|---|
-r |
Recursive mode |
-h |
Show hidden files |
-q |
Initial query |
-e |
Early exit, if only one option(best combined with initial query) |
-o |
Output file, instead of writing to stdout |
-s |
Sort output |
Add the following line to your .zshrc This will bind ctrl-b to open fuzzybrowse, and insert the result in the current command line.
bindkey "^b" _fuzzybrowse_zsh_insert_output
Add the following line to your .vimrc.
set rtp+=~/.fzf_browser/vim
If any of these are entered as the input string, they will trigger an action instead of selecting the current entry.
Input string | Description |
---|---|
. |
Select current dir and exit. |
.. |
Go to parent dir. |
Command | Description |
---|---|
fuzzybrowse |
Opens browser, and prints selected entries to stdout. |
(Zsh only) _fuzzybrowse_zsh_insert_output |
Should be mapped to something with bindkey(see installation example). Inserts output from fuzzybrowse into current command line. |
For these commands, if a directory is selected, cd
to it. If one of more files are selected, opens them for editing.
Command | Description |
---|---|
:FuzzyBrowse``<start_dir> |
Opens fuzzybrowse in <start_dir> , or current working dir if no argument is given. |
:FuzzyBrowseHere |
Same as FuzzyBrowse , but starts in the directory of the current buffer(regardless of current working dir) |
:FuzzyInsertPath |
Launches fzf_browsers and inserts the selection into current buffer |
Map | Description |
---|---|
<plug>FuzzyPath |
In insert mode, triggers path completion using fzf_browser. |
Example mapping:
imap <c-f> <plug>FuzzyPath
See top of fzf_browser.sh for options/functions.
Key | Description |
---|---|
Enter |
If selection is directory, change to it. If it is a file, select it and exit. If multiple entries are selected, just exits(with the selections). |
> |
Select current working directory as result and exit. |
ctrl-q / / |
Select entry, regardless if it's a directory or folder |
Tab |
Select multiple files/directories. |
Right arrow |
cd into selected directory, or run file(same as ctrl-v for files) |
Left arrow / # /` |
Go to parent directory |
Ctrl-l |
Preview selection. By default launches a less in a new terminal. |
ctrl-a |
Toggle showing hidden files. |
Ctrl-r / \ |
Toggle recursive mode. Lists all dirs/files recursively from current dir. |
Ctrl-g |
In file-recursive mode, go to directory of selected file. |
Ctrl-v |
View current selection using xdg-open |
Ctrl-z |
(Currently only works if application fasd is available) Select recent directory and switch to it. |
Ctrl-h |
Go to $HOME |
Ctrl-x |
Open $SHELL , with $e containing current selection. |
Ctrl-e |
Opens $EDITOR with selection. |
Ctrl-c |
Abort |
Ctrl-o |
Go backwards in directory stack. |
Ctrl-u |
Go forward in directory stack.(Currently only supports one jump) |
Ctrl-y |
Toggle sort |