@nesardramos/fmg
Version:
A CLI tool to manage path aliases in your terminal.
142 lines (89 loc) • 2.7 kB
Markdown
# fmg
`fmg` is a lightweight command-line utility for managing aliases to your most-used directories. It allows you to quickly navigate, copy, and move files and folders using short, memorable names instead of long, absolute paths.
## 🚀 Features
- **Quick Navigation**: Use `fcd <alias>` to instantly change to a directory.
- **File Operations**: Perform `fcp` (copy) and `fmv` (move) operations with aliases.
- **Zsh Completion**: Enjoy seamless tab-completion for all your alias names.
- **Easy Setup**: A single command installs all the necessary shell functions.
## ⬇️ Installation
### 1. Install the CLI
Ensure you have Node.js and `npm` installed.
```bash
npm install -g @nesardramos/fmg
```
### 2. Set Up Shell Functions
This command installs the necessary shell functions (`fcd`, `fcp`, `fmv`) and provides instructions for setting up autocompletion.
```bash
fmg setup
```
Follow the on-screen instructions to add the source lines to your `~/.zshrc` file.
### 3. Set Up Autocompletion
To enable tab-completion for your aliases, run the `fmg completion` command and paste the output directly into your `~/.zshrc` file.
```bash
fmg completion
```
After updating your `~/.zshrc` file, remember to apply the changes by running:
```bash
source ~/.zshrc
```
## 🛠 Usage
### Set an Alias
```bash
fmg set <alias> <path>
```
Examples:
```bash
fmg set dev ~/Documents/development
fmg set project "/Users/nesaruddin/My Projects/CLI"
```
### List Aliases
```bash
fmg list
```
### Get Alias Path
```bash
fmg get <alias>
```
Example:
```bash
fmg get project
# Output: /Users/nesaruddin/My Projects/CLI
```
### Delete Alias
```bash
fmg delete <alias>
```
Example:
```bash
fmg delete project
```
## 🐚 Shell Functions
After running `fmg setup`, you will have access to these powerful shell functions:
### `fcd <alias>`
Changes the current directory. This command also supports regular directory navigation (e.g., `fcd ..` or `fcd /path/to/folder`).
```bash
fcd dev # Changes to ~/Documents/development
fcd .. # Changes to the parent directory
```
### `fcp [options] <source> <destination>`
Copies files or folders. Automatically uses the `-r` flag for recursive copying and accepts aliases.
```bash
fcp file.txt dev
fcp dev ~/Desktop/backup-dev
```
### `fmv [options] <source> <destination>`
Moves files or folders. Automatically uses the `-r` flag for recursive moving and accepts aliases.
```bash
fmv new-file.js dev
fmv dev ~/Desktop/moved-dev
```
## ✍️ Contributing
Feel free to submit issues or pull requests to improve the tool.
## 📄 License
This project is licensed under the MIT License.