Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dijdzv/easychangedirectory

Tools for easy cd
https://github.com/dijdzv/easychangedirectory

bash cd command-line-tool fish powershell rust zsh

Last synced: 4 months ago
JSON representation

Tools for easy cd

Awesome Lists containing this project

README

        

# easychangedirectory

> **Tools for easy cd**

[![Latest version](https://img.shields.io/crates/v/easychangedirectory)](https://crates.io/crates/easychangedirectory)
[![crates.io downloads](https://img.shields.io/crates/d/easychangedirectory?label=downloads&style=flat-square)](https://crates.io/crates/easychangedirectory)
[![Github All Releases](https://img.shields.io/github/downloads/dijdzv/easychangedirectory/total.svg)](https://github.com/dijdzv/easychangedirectory/releases)
[![codecov](https://codecov.io/gh/dijdzv/easychangedirectory/branch/main/graph/badge.svg?token=V568GOT5XP)](https://codecov.io/gh/dijdzv/easychangedirectory)

[![Apache](https://img.shields.io/badge/license-Apache%202.0-blue?style=flat-square)](LICENSE-APACHE)
[![MIT](https://img.shields.io/badge/license-MIT-blue?style=flat-square)](LICENSE-MIT)
[![Build Status](https://github.com/dijdzv/easychangedirectory/actions/workflows/rust.yml/badge.svg?branch=)](https://github.com/dijdzv/easychangedirectory/actions/workflows/rust.yml)
[![release](https://github.com/dijdzv/easychangedirectory/actions/workflows/release.yml/badge.svg?branch=)](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

![demo](./assets/demo.gif)

## 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