---
title: "Abbreviations are better than aliases"
date: 2024-08-25 01:02:35
tags: [Shell, zsh, Linux]
---

Aliases are a way to shorten long or complicated commands or to easily add additional arguments when running commands.

Common aliases are `gs` for `git status`, `a` for `artisan` and `dr` for `drush`.

I've been experimenting with Zellij today and have written aliases like `zl` for `zellij list-sessions`, but have also added extra arguments such as `zellij list-sessions | sort | grep -v EXITED` to sort the sessions and filter any exited sessions.

Running these aliases means it's easier and quicker for me to run these commands.

The issue with aliases, I think, is that you can forget that the underlying commands are if you only type `gs` or `zl`.

It's also not easy when giving demos, pair programming for others to see and understand the commands that are being run.

Instead of aliases, I mostly use abbreviations that expand automatically after pressing the space key.

That way, I and others get to see and understand the commands being run.

Note: I originally saw this done by [Sebastian Daschner](https://blog.sebastian-daschner.com/entries/zsh-aliases) and I originally used his ZSH expansion code, but now use [zsh-abbr](https://zsh-abbr.olets.dev). There are settings for this in Nix/Home Manager.

## Links

- <https://github.com/olets/zsh-abbr>
- <https://mynixos.com/search?q=zsh-abbr>
- <https://github.com/opdavies/dotfiles.nix/blob/main/lib/shared/modules/zsh/abbreviations.zsh>