UNPKG

@nesardramos/fmg

Version:

A CLI tool to manage path aliases in your terminal.

142 lines (89 loc) 2.7 kB
# 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.