1
0
mirror of https://github.com/ohmyzsh/ohmyzsh.git synced 2024-11-30 22:54:13 +08:00
ohmyzsh/plugins/alias-finder
2024-06-13 18:08:14 +02:00
..
tests feat(alias-finder): add cheaper option and apply zstyle options (#11773) 2023-08-24 17:12:59 +02:00
.zunit.yml feat(alias-finder): add cheaper option and apply zstyle options (#11773) 2023-08-24 17:12:59 +02:00
alias-finder.plugin.zsh feat(alias-finder): add cheaper option and apply zstyle options (#11773) 2023-08-24 17:12:59 +02:00
README.md docs(alias-finder): add some examples (#12502) 2024-06-13 18:08:14 +02:00

alias-finder plugin

This plugin searches the defined aliases and outputs any that match the command inputted. This makes learning new aliases easier.

Setup

To use it, add alias-finder to the plugins array of your zshrc file:

plugins=(... alias-finder)

To enable it for every single command, set zstyle in your ~/.zshrc.

# ~/.zshrc

zstyle ':omz:plugins:alias-finder' autoload yes # disabled by default
zstyle ':omz:plugins:alias-finder' longer yes # disabled by default
zstyle ':omz:plugins:alias-finder' exact yes # disabled by default
zstyle ':omz:plugins:alias-finder' cheaper yes # disabled by default

As you can see, options are also available with zstyle.

Usage

When you execute a command alias finder will look at your defined aliases and suggest shorter aliases you could have used, for example:

Running the un-aliased git status command:

╭─tim@fox ~/repo/gitopolis main 
╰─$ git status

gst='git status'         # <=== shorter suggestion from alias-finder

On branch main
Your branch is up-to-date with 'origin/main'.
nothing to commit, working tree clean

Running a shorter git st alias from .gitconfig that it suggested :

╭─tim@fox ~/repo/gitopolis main 
╰─$ git st
gs='git st'         # <=== shorter suggestion from alias-finder
## main...origin/main

Running the shortest gs shell alias that it found:

╭─tim@fox ~/repo/gitopolis main 
╰─$ gs
         # <=== no suggestions alias-finder because this is the shortest
## main...origin/main

image

Options

In order to clarify, let's say alias a=abc has source 'abc' and destination 'a'.

  • Use --longer or -l to include aliases where the source is longer than the input (in other words, the source could contain the whole input).
  • Use --exact or -e to avoid aliases where the source is shorter than the input (in other words, the source must be the same with the input).
  • Use --cheaper or -c to avoid aliases where the destination is longer than the input (in other words, the destination must be the shorter than the input).