fpick 0.7.10

Interactive file picker
# fpick

**fpick** is an interactive file picker to traverse through directories tree in a terminal.

<div align="center">
    <a href="https://github.com/igrek51/fpick">GitHub</a>
    -
    <a href="https://crates.io/crates/fpick">Crates</a>
    -
    <a href="https://docs.rs/crate/fpick/">docs.rs</a>
</div>

![](./docs/img/screenshot1.png)

**fpick** returns the selected path to standard output, so you combine it with other commands:
```sh
cd "$(fpick)"
cat $(fpick)
```

## Installation
### Cargo
```sh
cargo install fpick
```
This will install `fpick` binary in Rust's Path.

### Binary
Alternatively, you can download the compiled binary:

```sh
curl -L https://github.com/igrek51/fpick/releases/download/0.7.5/fpick -o ~/bin/fpick
chmod +x ~/bin/fpick
```

## Usage
### Traverse through directories
Type `cd "$(fpick)"` to quickly change the directory interactively:

- Start typing a name to filter the list of directories.
- Find your subdirectory with up and down arrows. Hit `Enter` to go inside.
- Repeat the steps until you are in the directory you are looking for.
- Hit `Enter` again (when being focused on `.`) to exit and change the directory.

## Controls
Launch the interactive file picker by running `fpick`.

Navigate with keyboard:

- `` and `` to move between files and directories,
- `` to enter a directory.
- `` to go up,
- Type a phrase to filter the list of files
- `Enter` on selected file to exit and print its path to stdout.
- `Enter` on selected directory to enter inside it.
- `Enter` on `.` to pick current directory.
- `Esc` or `Ctrl + C` to exit.
- `/` to go to root directory.
- `Alt + Enter` on selected file / directory to open context menu and execute an operation:
  - **Open** - open directory in file manager or a file in a default application
  - **Show in less**
  - **Edit in vim**
  - **Edit in sudo vim**
  - **Delete file**
  - **Delete directory**
  - **Copy path to clipboard**
  - **Pick absolute path** - return absolute path to stdout.
  - **Pick relative path** - return relative path to stdout.

## CLI arguments
See `fpick --help` for options.

Usage:
- `fpick [OPTIONS]` to select a file in a current directory and return its path
- `fpick [OPTIONS] <PATH>` to select a file starting from a specified directory

Options:
- `--relative`, `--rel`, `-r` - Print selected path as relative to the starting directory
- `--version` - Print version
- `--help`, `-h` - Print usage

## Examples
You can use it in combination with other commands, for example to print the selected file:
```sh
cat $(fpick)
```

Tired of typing `ls` and `cd`, over and over again,
just to find a file in a deeply nested directory tree?
Use `fpick` to navigate through directories interactively:
```sh
cd "$(fpick)"
```

Set alias for quick access:
```sh
alias cfp='cd "$(fpick)"'
```

Move file by interactively picking the source and destination:
```sh
mv "$(fpick)" "$(fpick)"
```