olets / zsh-abbr

The zsh manager for auto-expanding abbreviations, inspired by fish. ~18,000 clones by ~12,000 unique cloners as of Sept '24, and averaging ~60 Homebrew installs monthly since June 2023
https://zsh-abbr.olets.dev
Other
574 stars 20 forks source link
abbreviations cli command-line shell zsh zsh-plugin

zsh-abbr GitHub release (latest by date) GitHub commits since latest release

zsh-abbr is the zsh manager for auto-expanding abbreviations - text that when written in a terminal is replaced with other (typically longer) text. Inspired by fish shell.

[!IMPORTANT]
v6 was released on Nov 12 2024, with breaking changes. If you do advanced configuration, read the v5.x -> v6.x migration guide and/or read about pinning v5.x.

For example, abbreviate git checkout as co (or even c or anything else). Type coSpace and the co turns into git checkout. Abbreviate git checkout main as cm. Type cmEnter and the cm turns into and runs git checkout main. Don't want an abbreviation to expand? Use CtrlSpace instead of Space, and ;Enter instead of Enter.

Why? Like aliases, abbreviations save keystrokes. Unlike aliases, abbreviations can leave you with a transparently understandable command history ready for using on a different computer or sharing with a colleague. And where aliases can let you forget the full command, abbreviations may help you learn the full command even as you type the shortened version.

Like zsh's alias, zsh-abbr supports "regular" (i.e. command-position) and "global" (anywhere on the line) abbreviations. It also supports interactive creation of persistent abbreviations which are immediately available in all terminal sessions. Abbreviations automatically sync to a file, ready for your dotfile management.

Run abbr help for documentation; if the package is installed with Homebrew, man abbr is also available.

Documentation

📖 See the guide at https://zsh-abbr.olets.dev/

v5 is a major release. It makes changes that will require some users to update their configurations. Details are in the migration guide.

Changelog

See the CHANGELOG file.

Roadmap

See the ROADMAP file.

Contributing

Looking for the documentation site's source? See https://github.com/olets/zsh-abbr-docs

Thanks for your interest. Contributions are welcome!

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

Check the Issues to see if your topic has been discussed before or if it is being worked on. You may also want to check the roadmap (see above).

Please read CONTRIBUTING.md before opening a pull request.

The test suite uses zsh-test-runner v2.x. See tests/README.md for instructions on running the test suite.

Sponsoring

Love zsh-abbr? I'm happy to be able to provide it for free. If you are moved to turn appreciation into action, I invite you to make a donation to one of the organizations listed below (to be listed as a financial contributor, send me a receipt via email or Reddit DM). Thank you!

Community

This project uses all-contributors to recognize its community. The key to the emojis is on the all-contributors website.

The following are some of the people who have contributed. All zsh-abbr repo committers are listed here, and all zsh-abbr docs committers are listed here (v4) and here (v5). Other people have reported bugs and typos, helped debug, helped test features and bug fixes. The project wouldn't be where it is without them.

Akinori MUSHA
Akinori MUSHA

💻
Alwin Wang
Alwin Wang

💻
Daniel Berninghoff
Daniel Berninghoff

💻
Henry Bley-Vroman
Henry Bley-Vroman

📖 🎨 💬 🔧 💡 🤔 🚇 ⚠️ 🚧 👀
Henré Botha
Henré Botha

💻 🤔 💵 📖 🐛
Icy-Thought
Icy-Thought

📦
Ihor Urazov
Ihor Urazov

📖
Lucas Larson
Lucas Larson

🐛
Stefan Hojer
Stefan Hojer

💻 🐛 📓
Teppei Shimaji
Teppei Shimaji

💻 📖

License

zsh-abbr by Henry Bley-Vroman is licensed under a license which is the unmodified text of CC BY-NC-SA 4.0 and the unmodified text of a Hippocratic License 3. It is not affiliated with Creative Commons or the Organization for Ethical Source.

Human-readable summary of (and not a substitute for) the LICENSE file:

You are free to

Under the following terms

Acknowledgments