6.0.0 (2024-11-12)
https://zsh-abbr.olets.dev/ is now the v6 docs. The v5 docs are available at https://v5.zsh-abbr.olets.dev/.
- 🆕 Save to history
- 🆕 Prefixes
- 🆕 Reminders
- Drops everything that was deprecated in v5.x
See also the v6.0.0 beta releases' release notes, below.
6.0.0-beta.2 (2024-10-31)
- reminders: fix [#154]
6.0.0-beta.1 (2024-10-29)
Drop deprecated things; introduce history, prefixes, and reminders.
5.8.3 (2024-10-08)
- github: 'accepted feature request' issue template (4a5b1c9)
- publish-release workflow: pin mislav/bump-homebrew-formula-action at v3.1 (07a02be)
Increase coverage, including some breaking tests related to #118.
5.8.2 (2024-07-29)
Cleans up a Git conflict resolution mistake.
5.8.1 (2024-07-29)
- abbr-expand-and-space: deprecation warning points to abbr-expand-and-insert (752e9fc)
- internal fns: prep for making internal only (805a236)
5.8.0 (2024-05-23)
- abbr-expand-and-accept: respect user-defined accept-line widget (3bac1fc)
- init: do not choke if user sources zshrc in interactive shell (f59b7aa)
5.7.1 (2024-05-18)
- completions: correct version number (fa4ca0e)
5.7.0 (2024-05-17)
5.6.0 (2024-05-16)
- missing quotation mark (a19f0b2)
- ABBR_TMPDIR: distinct paths for un/privileged users [#54] (b740b01)
- ABBR_TMPDIR: support configurations without trailing slash. Thanks to @ealap (7103519)
5.5.0 (2024-05-16)
5.4.1 (2024-03-08)
- abbr-expand-and-space: available to zle while deprecated (bb4ac60)
5.4.0 (2024-03-08)
Cursor placement! With thanks to @burneyy (see #63)
- abbr-expand widget: support placing cursor [#110] (6c688e0)
- If
ABBR_SET_EXPANSION_CURSOR
(default0
) is non-zero, the expansion's first instance ofABBR_EXPANSION_CURSOR_MARKER
(default$ABBR_CURSOR_MARKER
(see below)) will be replaced with the cursor
- If
- abbr-expand-and-insert:
5.3.0 (2024-01-02)
With this release, running tests requires zsh-test-runner v2.x
- jobs: use zsh epoch time instead of date command [#106] (f3dcaf5)
- tests: support current shell and subshell (070e903)
- tests: temp file is deleted (7c02ea5)
- tests: temp file is deleted (7c02ea5)
5.2.0 (2023-10-19)
Adds command completion and deprecates access to some internal functions.
- precmd: no noise output (eaec694)
- completions: add for abbr commands [#104] (e67b3e1)
- completions: import-git-aliases suggests files [#104] (74dfcc6)
- _abbr:util_deprecated: deprecate (431ea27)
- add, erase: do not export abbreviations_set variable (c25eb0b)
- initialization: deprecate exported fns, use local instead... (d941318)
- precmd: deprecate (e341f87)
- warn deprecation: replacement is optional (f2a33e6)
5.1.0 (2023-05-26)
5.0.1 (2023-03-19)
- expand: quotation marks are preserved (2cb3613)
- Corrected false-negative tests
- expand: support multi-word string (70663b1)
- Test suite runs multiple file, logs file names
5.0.0 (2023-02-23)
Has breaking changes. See the migration guide.
- 🆕 Support for multi-word abbreviations
- 🆕 New documentation site
- 🆕
abbr git
command! - 📄 Default
ABBR_USER_ABBREVIATIONS_FILE
is now${XDG_CONFIG_HOME:-$HOME/.config}/zsh-abbr/user-abbreviations
(but if you have a file in the legacy path${XDG_CONFIG_HOME:-$HOME/.config}/zsh/abbreviations
, that will be used instead) ⚠️ zsh-syntax-highlighting users have to update their snippets⚠️ All features deprecated in the latest v4.x are dropped- License's ethics requirements are now Hippocratic License v3 (was HL v2.1)
For details see v5.0.0.beta-x release notes below.
5.0.0.beta-8 (2023-02-20)
From 4.9.3:
5.0.0.beta-7 (2023-02-10)
From v4.9.2:
From v4.9.1:
- man: correct version and release date (a6ae1c9)
5.0.0.beta-6 (2023-01-05)
- user file: default is now /zsh-abbr/user-abbreviations (aa3e42f)
5.0.0.beta-5 (2022-12-23)
From v4.9:
- profile: new command (4ba4bc8)
5.0.0.beta-4 (2022-12-23)
From v4.8.4:
- expand and accept: check for zsh-autosuggestion widget (8c84b54)
5.0.0.beta-3 (2022-12-16)
From v4.8.3:
From v4.8.3:
- expand-and-accept: use zsh-autosuggestions' recommendation for how to clear suggestions (a994077)
5.0.0.beta-2 (2022-11-19)
From v4.8.2:
5.0.0.beta-1 (2022-11-06)
Notably the first release of multi-word abbreviations and the move of the documentation out of the README and into a dedicated site.
- multi-word abbreviations! Thanks to @henrebotha for discussion in #32
- contributors: use all-contributors (32da6fb)
- erase,add: remove some possibly unnecessary quoting (02b84b5)
- expand: try all substrings from longest to shortest (4d8ea0f)
- git: support new subcommand (364a4b0), (ceeca77)
- import-git-aliases: create only one type (9979861)
- license:
- widgets: drop support for deprecated names (6aedbe9)
4.9.5 (2023-02-24)
Updates in support of v5.0.0's release
4.9.4 (2023-02-21)
Update release date
4.9.3 (2023-02-21)
4.9.2 (2023-02-10)
4.9 (2022-12-28)
- profile: new command (4ba4bc8)
4.8.4 (2022-12-23)
- expand and accept: check for zsh-autosuggestion widget (53a8b06)
4.8.3 (2022-12-16)
- expand-and-accept: use zsh-autosuggestions' recommendation for how to clear suggestions (c71302d)
4.8.2 (2022-11-19)
4.8.1 (2022-11-10)
- widgets: deprecate functions which were not dropped in v4.1.0... (8a01f32)
4.8.0 (2022-09-08)
- user abbreviation file: respect XDG_CONFIG_HOME if defined (unless there's already an abbreviations file in the old default location), with @qubidt (5d59cd0, 2df61f9)
4.7.1 (2022-01-03)
Copyright update
4.7.0 (2021-12-30)
- widgets: drop support for functions deprecated in 4.1.0 (4166395)
- init: no unnecessary NO_COLOR checks (da5205a)
4.6.0 (2021-09-24)
--version
shows the correct version number again.
- license: new license (cfe5abb)
4.5.0 (2021-09-14)
In this version abbr -v
gives zsh-abbr version 4.4.0
- color: more reliable respect for NO_COLOR (4706cf4)
4.4.0 (2021-08-1)
- help: show manpage regardless of installation method (55c4c29)
The README now includes instructions for importing macOS substitutions, by @mortenscheel (99af045)
4.3.0 (2021-03-28)
- tests: use zsh-test-runner (ztr) (da2b0b9)
4.2.1 (2021-02-28)
- echo: always use builtin (093269a)
- tests: new harness + support skipping (b884a9f)
- rm: Make sure "rm" is run as command and not as alias, by @hojerst (d275169)
4.2.0 (2020-12-13)
- add: logs always include type and scope (70ee858)
- import-git-aliases: respect multiline Git aliases (#30 / PR #31) by @henrebotha (5deee28)
- import-git-aliases: support specifying config file path (31fca3f)
v4.1.2 (2020-11-02)
v4.1.1 (2020-10-27)
v4.1.0 (2020-10-24)
Friendlier widget names, and syntax highlighting snippets for zsh-syntax-highlighting
.
- deprecations: reinstate support for warnings + add example forms (73c4626)
- widgets: rename widgets, deprecate old names, add precmd (35a2c15)
- precmd: add precmd logging (35a2c15)
v4.0.2 (2020-09-14)
- abbr_job_pop: use command 'rm' (15e383b)
v4.0.1 (2020-08-23)
abbr e -g <existing global abbreviation>
finished with the log message "regular user abbreviation". No longer! And polishes up tests.
- fix,refactor(logs): correct type and scope (a5a4171)
v4.0.0 (2020-07-26)
- dry run: message appended to log (4dd118f)
- abbreviations arrays: prefix var names with ABBR_ (fef023b)
- color: do not load module if NO_COLOR is set (25264ae)
- export aliases: drop support for output path arg (35b9274)
- list, list-abbreviations: swap; list is default (39fd84d)
- quiet: does not silence dry run message (0a4d5b6)
- subcommands: drop support and messages for deprecateds (f1b0ce7)
- temp files: new global var ABBR_TMPDIR (2fa0e88)
- temp files: no longer clean up v<3.2 temp files (f15ab53)
- variables, functions: drop support for 'zsh_' prefix... (7557ef4)
v.3.3.4 (2020-07-26)
Deprecates ABBR_USER_PATH
in favor of ABBR_USER_ABBREVIATIONS_FILE
.
v3.3.3 (2020-06-14)
Fix a session abbreviations bug, support NO_COLOR, and polish deprecation warnings.
- session abbreviations: do not unintentionally clear (113ffc6)
- config: deprecate ABBR_DEFAULT_BINDINGS 'true'/'false' (use 0/1) (5f25f1c)
- debugging: deprecate ZSH_-prefixed var name (2b5de18)
- deprecation: post-init warnings for non-init config vars (69d73b8)
- deprecation message: use warning color (fd53852)
- output: support NO_COLOR (see https://no-color.org/) (54f16db)
v3.3.2 (2020-06-06)
Save some keystrokes! --
and -
prefixes in actions are deprecated. Just say add
, clear-session
, erase
, expand
, export-aliases
, help
, import-aliases
, import-fish
, import-git-aliases
, list
, list-abbreviations
, list-commands
, rename
, and version
, or their single letter short forms (--help
and --version
are not deprecated, for findability; -L
is not deprecated to match zsh's alias -L
).
Advanced users no longer need to source zshrc after directly (ie not via the abbr CLI) editing the user abbreviations file to prevent against the possibility of losing data when subsequently running abbr actions in an open session. Details in the README.
Also a fix for Oh-My-Zsh users, and protection against the possibility that builtins have been redefined by aliases and that zsh emulation has been set to another shell.
- omz: plugin file is executable (e2f6632)
- abbr: argument can be a supported parameter's name... (47cfb6a)
- add: dry run, command overwriting, and log messages play nice (9a17c8b)
- add: wrap 'command', using builtin (042e68d)
- autoload: support opting out with env var (9658a67)
- commands: deprecate dash prefixes (3f75f57)
- data: manual changes are taken into account... (00abe87)
- echo: wrap builtin (c4ee8e2)
- emulation: emulate zsh in all functions (f644f1a)
- error: do not push the help command (379ae70)
- import aliases: wrap alias command (cbb9bb5)
- list-commands: deprecate --show, s (fd58b39)
- loading: always reload user file (3776076)
- warnings: do not cause an error exit code (f8b02be)
v3.3.1 (2020-05-12)
Fixed a Linux error, caught a regression.
- add: do not check for command name conflicts during init (153b2e3)
v3.3.0 (2020-05-09)
Prettier output. Suppress output with --quiet
. Don't add an abbreviation if it would interfere with an existing command. Add it anyway with --force
.
- add: support forcing add over system command (57eb4a8)
- add: warn if a command exists (0311ecf)
- dry run: helper message more visible (cce33fc)
- import aliases: respect type (c000975)
- import git aliases: warning gives key not full key+value (cbe4074)
- quiet, exit status: output to stdout or stderr with quiet option (e671a87)
v3.2.3 (2020-04-23)
- import git aliases: preserve quotation marks (aa62bd2)
3.2.2 (2020-04-18)
3.2.1 (2020-04-18)
3.2 (2020-04-07)
Key changes:
- Significantly faster initialization, significantly faster time per add
- Linux-friendly paths (with help from @AlwinW. Thanks!)
- More informative error messages
- Git alias import works again
- Two abbreviations are created for each Git alias,
abbr <alias>
andabbr -g g<alias>
- The user abbreviation file is kept alphabetized
- Anything in the user abbreviation file other than abbr commands is ignored and, after the first syncing action, sanitized away
- Erase does not insist that you pass the correct scope and type flags
- Under the hood updates to use more idiomatic zsh
- git aliases: one alias per array element (72b0bd7)
- git aliases: proper quoting (44432b2)
- import aliases: point to correct command (2fe9cbf)
- initialization: correct file name (d1e29eb)
- job: typo missing '/' in '/tmp/zsh-abbr-jobs' (e83f54c)
- job stack: play nice with bad options (c84a1bf)
- quotation marks: unsetting assoc array element requires quotes... (22336be)
- temp files: directory path plays nice with macos and linux (814d121)
- tests: test file is removed after tests run (77b0753)
- add, job stack: error messages are more informative (3611d33)
- alias, list, sync user: alphabetize, case-insensitively (459923c)
- debugging: support debug messages (add63cb)
- dry run: support env variable (a7df1d7)
- erase: guess unspecified type + scope; list if multiple matches (1976228)
- erase, rename: support dry run (c18a57d)
- export aliases: use list utility to support all quotation levels (ababcfd)
- fish: no longer any need to warn about quotation marks (a2878ea)
- git aliases: add unprefixed command aliases (4a7ab7e)
- git aliases: skip function aliases (2733d6b)
- importing: no help instructions when skipping an existing (b4e406c)
- init: at no point are the user temp files missing... (4603f5d)
- init: only run abbr commands in user file code... (93f2024)
- init: remove deprecated temp files (af1e348)
- init, performance: check to see if file exists before deleting (6cc58d3)
- job pop: don't add variable to session unnecessarily (c3af3d7)
- job stack: better error message (a3980df)
- job stack: ignore session-scope activity (9cd9616)
- job stack: prevent possibility of collision between sessions (099145a)
- job stack: surface the current job's identity (3257867)
- job stack, performance: max one stack item per session (f50df95)
- list: reinstate option to list abbreviations without expansions (99a16e2)
- rename, add: error includes type and scope (cdf22c0)
3.1.2 (2020-03-22)
- manpage: brew users get manpage, rest get text copy (ed35f49)
- quotes: quotation marks are preserved [#10] (5a3b905)
v3.1.1 (2020-03-07)
- export aliases: respect the abbreviation's type (69fb7a3)
- CONTRIBUTING: new file for GitHub friendliness (6d04986)
v3.1.0 (2020-03-07)
Look like zsh's alias
not fish's abbr
- list commands: rename from show (45b9a69)
- rename: shorthand is now capital -R and update tests (c0cdce2)
- show: listed session abbreviation commands include -S (57f98ea)
- list commands: support listing globals only (7418fac)
- list commands: support listing regulars only (a5cab16)
- list commands: support listing users only (9544e98)
- list definitions: with no arguments, behaves like zsh alias (6c1a7a8)
v3.0.2 (2020-03-07)
- expand and accept: respect trailing whitespace (f027565)
- expansion: no false positive expansions after (( (2b53f6a)
v3.0.1 (2020-03-07)
v3.0.0 (2020-03-01)
Parity with zsh alias's behavior: syntax is abbreviation=word
instead of fish abbr-like abbreviation word
. Distinguish between command-position abbreviations and global abbreviations. User abbreviations file is now at ${HOME}/.config/zsh/abbreviations
. Check the README documentation for --import-fish
to move from fish abbr and zsh-abbr<\v3 to zsh-abbr v3.
- erase, rename: support global expansions (bab6341)
- expansion: shell grammar word splitting determines current word (a3c00f5)
- global abbreviations: distinct from command abbreviations (cd58e0d)
- import aliases: rename from populate (2d4153a)
- import git aliases: rename from git populate (2f8e7bf)
- init,add,erase,rename: use abbr=expansion syntax (455dc75)
- scope: shorthand for --session is now -S (cf2f3b8)
- user file: no '-a -U' (ecb367e)
- user file, exported variables: style(env functions, env variables): more consistent naming (2f52f9f)
- abbreviation, expansion: can be just a hyphen (be1a0c9)
- dry run: support for add, import, and rename (59cbdee)
- import fish: new option + documentation (6d674bb)
- list: sections are divided with a newline (055e378)
- storage: globals are at top of file (79a920b)
- sync: use latest user globals (44b8281)
- tests: add basic test suite (af08727)
v2.1.3 (2020-02-26)
- expansion: refresh and style autosuggestions after space (73fc250)
v2.1.2 (2020-02-24)
- expansion: highlighting call is not necessary... (5d1fde0)
v2.1.1 (2020-02-22)
v2.1.0 (2020-02-03)
Under the hood polish; cut down on what is made available to the session; and
- aliases: flag changed to --output-aliases (shorthand -o) from --create-aliases (-c) (6b922c2)
- clear globals: flag changed to --clear-globals (shorthand -c) from --erase-all-globals (-E) (bf90f87)
- storage: universals file is a list of 'abbr -a' commands (2e191d1)
- scope: only a single scope flag is allowed (7114a1b)
- scope: no internal variables or functions bleed (4358c2b)
- add: support explicit end of options with -- (1085a29)
- options: no error on hyphen (a25c7da)
- rename: suggest changing scope if abbreviation exists in the other scope but not in the specified one (0473fb7)
- word: delimit by '&&', '|', ';', and whitespace (44b3740)
- zinit: verified installation documentation (7890320)
v2.0.0 (2020-01-19)
- universals: change variable name (7ee831b)
- expansion widget: abbreviations can end in n or t (16feffe)
- erase-all-globals: new option (f7b1bee)
- version: new option (206f521)
- universals: change default path (c7ba374)
v1.2.0 (2020-01-12)
- erase: universal abbreviations can be erased (1d67c8c)
- expansion: when expanding with spacebar, append a space (e5b4696)
- git-populate: synax error (e78eb2b)
- rename: correct syntax for removing an abbreviation (f99834a)
- synching: correct paths (6cc7e0c, aa80f5d)
- arguments: support long options (9386436)
- bindings: add variable for opting out of defaults (7edd67e)
- create-aliases: new option (35ace71)
- expansion: plays nice with zsh-autosuggestions (e19a0a1)
- expansion: support expand-on-enter (has suggestions bug) (f8356be)
- expansion: support zsh-syntax-highlighting (cff6dc0)
- rename: error if old doesn't exist or new already exists (a030670)
v1.1.0 (2019-01-26)
Bug fixes and
v1.0.0 (2019-01-26)
Feature parity with fish's abbr