abbrv
A text expansion solution in C/C++ that allows the user to auto-expand abbreviations into full strings.
Uses
For example, typing ";;ttyl" might expand itself into "Talk to you later", or ";;license" might expand to a license key such as "ejp2RYhgI5p43n80BB311Ck32umDmqoezLkfOJmqIgNvHfux9Wm8bYtZJIA".
Other common use cases are quickly expanding commonly abbreviated words such as:
a11y -> accessibility
i18n -> internationalization
eod -> end of day
I do not recommend using this for expanding programming snippets: there are much better, context-aware solutions around for that. This projects aims to provide a means of allowing quick text expansions across any program. It can be used to speed up data entry, remove the need to memorize phone numbers you don't often use but occasionally need to share (my "office" number, for example, I always access by the abbreviation: ";;office" because I don't ever remember it but occasionally need to provide it to a client).
Want to be able to share that gif really quickly? Just make an abbreviation for it that expands to the URL. Meme at speeds never seen before.
Tired of a colleague that keeps asking the same damn question every week? Make an abbreviation that expands into a full, detailed response in just a few keystrokes so you can get back to work.
This project hopes to improve on existing solutions in a number of ways:
- It should be lean and only handle text expansion. I don't need a bloated tool that takes up unnecessary resources. Furthermore, I'd like to create a single executable for the user akin to the way RemedyBG does it.
- This project will be Open Source. Building functionality like this literally requires implementing a keylogger. All of the existing solutions I know of are not open source and could be doing anything with my keystrokes, including sending them off somewhere for storage and later username/password analysis. No bueno.
- Allow easy sharing of your saved entries. Ideally I hope to have a single config file generated by the executable that the user can then share across machines. This makes it incredibly easy to use something like Dropbox to keep multiple machines in sync.
Example / Demonstration
Consider a configuration with the following abbreviations and expansions created (these are simply typed in!):
That allows you to do the following (.gif capped at 10FPS for size -- real use is much faster):
The source and releases are both available on the GitHub Page.