lacy 0.7.1

Fast magical cd alternative for lazy terminal navigators
Documentation
# Set Up

After you [installed](./install.md) lacy, you have to add it's shell configuration to your shell.

## Shell Setup

For more shell options, see `lacy init --help`.

### Zsh

```bash
# ~/.zshrc
eval "$(lacy init zsh)"
```

### Bash

```bash
# ~/.bashrc
eval "$(lacy init bash)"
```

### Fish

```bash
# ~/.config/fish/config.fish
lacy init fish | source
```

### Nushell

<!-- Remove this in like 2027 when everyone gets v0.113+ -->
If you're running anything older than v0.112, you'll need `lacy init nu --cd-cmd=cd`.
If you're running anything older than v0.113, you'll also need a small hack to set lacy alias (`--cmd`) to `cd`. Check [`--cmd`](#--cmd).

```bash
# $nu.config-path
mkdir ($nu.data-dir | path join "vendor/autoload")
lacy init nu | save -f ($nu.data-dir | path join "vendor/autoload/lacy.nu")
```

### PowerShell

```powershell
# $PROFILE
lacy init powershell | Out-String | iex
```

### Other shells

Feel free to contribute the init script for your preferred shell.

## Shell Options

You can customize the shell script that gets generated by using these options:

### `--cd-cmd`

Define the command to be used instead of `cd`. (e.g. `--cd-cmd=z`)

Default:

- Bash, ZSH, Fish: `builtin cd`
- Nushell: `%cd`
- PowerShell: `Set-Location`

### `--cmd`

The name of the main lacy command you use for navigating. (e.g. `--cmd=cd`)

Default: `y`

> [!WARNING]
> Even though nushell has an analogue of `builtin` keyword - which is the `%` sigil,
> it was only added recently in v0.112 (and will break older versions!),
> and it was actually bugged to the point that `--cmd=cd` would still have
> caused infinite recursion, and that only got fixed in v0.113.
>
> So if you're running older versions, use this hack from the very
> [nushell book]https://www.nushell.sh/book/aliases.html#replacing-existing-commands-using-aliases:
> ```bash
> alias core-cd = cd
> mkdir ($nu.data-dir | path join "vendor/autoload")
> lacy init nu --cd-cmd=core-cd --cmd=cd | save -f ($nu.data-dir | path join "vendor/autoload/lacy.nu")
> ```

### `--custom-fuzzy`

Configure this to disable lacy's built in UI selector and replace it with your own command. (e.g. `--custom-fuzzy=fzf`)

Default: *none*