# easychangedirectory
> **Tools for easy cd**
[](https://crates.io/crates/easychangedirectory)
[](https://crates.io/crates/easychangedirectory)
[](https://github.com/dijdzv/easychangedirectory/releases)
[](https://codecov.io/gh/dijdzv/easychangedirectory)
[](LICENSE-APACHE)
[](LICENSE-MIT)
[](https://github.com/dijdzv/easychangedirectory/actions/workflows/rust.yml)
[](https://github.com/dijdzv/easychangedirectory/actions/workflows/release.yml)
Dual-licensed under [Apache 2.0](LICENSE-APACHE) or [MIT](LICENSE-MIT).
[Features](#features) / [Usage](#usage) / [Support shell](#support-shell) / [Installation](#installation) / [Environment variable](#environment-variable)
## Features
- Can change paths visually
- The `cd` functionality can also be used as-is

## Usage
Command `ed`
| Key | Description |
| ------------------ | ------------------------------------------- |
| `↑` `k` | Move up |
| `↓` `j` | Move down |
| `←` `h` | Move parent directory |
| `→` `l` | Move Child directory |
| `Home` | Move to top |
| `End` | Move to bottom |
| `PageUp` | Skip a little and move up |
| `PageDown` | Skip a little and move down |
| `Enter` `c` `;` | Change directory to current directory |
| `Esc` `Ctrl+c` `q` | Exit and return to original directory |
| `Insert` `Ctrl+s` | Search mode switch (Char key will not work) |
| `Backspace` | Delete one character from the search string |
| `Delete` | Delete all search strings |
| `V` | Open VSCode in the current directory |
| `p` | Print the selected filepath |
If it does not work, try restarting the shell.
## Support shell
- Bash
- Fish
- Powershell
- Zsh
## Installation
[Install](#install) and [Register in the shell](#register-easychangedirectory-in-shell)
### Install
- If you can use Cargo
```
cargo install --locked easychangedirectory
```
- Download from Release page
- Download the data appropriate for your environment and place it in a directory with a path
We will add more as needed.
### Register **_easychangedirectory_** in shell
Bash
Add to `~/.bashrc` (Change as necessary)
```bash
eval "$(easychangedirectory --init bash)"
```
Run `. ~/.bashrc` as needed
Fish
Add to `~/.config/fish/config.fish` (Change as necessary)
```fish
easychangedirectory --init fish | source
```
Run `. ~/.config/fish/config.fish` as needed
Powershell
Add to the file found by `echo $profile`
```powershell
Invoke-Expression (& { (easychangedirectory --init powershell | Out-String) } )
```
Run `. $profile` as needed
Zsh
Add to `~/.zshrc` (Change as necessary)
```zsh
eval "$(easychangedirectory --init zsh)"
```
Run `. ~/.zshrc` as needed
## Environment variable
You can check all environment variable values with `ed --env`.
- `_ED_PWD`
- If the value is `1`, print current directory after execution
- `_ED_SET_BG`
- If the value is `1`, set black background
- `_ED_SHOW_INDEX`
- If the value is `1`, the index is displayed on the left side of the list
- `_ED_VIEW_FILE_CONTENTS`
- If the value is `1`, the file contents can be viewed
- Preview is possible without setting
- `_ED_LOG`
- If the value is `1`, output log to `HOME/.easychangedirectory/ed.log`
- If an environment variable appropriate for `HOME` is not found, panic ensues.
- Log output location will be printed upon completion