The previous version rebound the `hash` and `rehash` builtins to
reassing GNU utils when they were called. This didn't take into
account that when `$PATH` changes, the commands are rehashed as
well.
This version adds a preexec hook to reassign the GNU utilities
before running any command, if and only if they aren't already
reassigned. This is checked by looking at the `whoami` command.
Fixes#10535
BREAKING CHANGE: the `zsh-navigation-tools` plugin now bundles the version from the
zdharma-continuum project, which republished the projects that psprint deleted (we
don't yet know yet why). In theory this change doesn't break anything, but be aware
of the change and that the upstream repository now lives somewhere else.
Source: https://github.com/zdharma-continuum/zsh-navigation-tools/commit/67b24e1
This is an improvement (in my opinion) to the `brews` command that prints each leaf formula (in white), followed by its dependencies (in blue), on each line. Compared to the existing flat list of formulae, the new layout is both more compact and more informative, by differentiating leaves from dependencies at a glance.
Screenshot:
<img width="530" src="https://user-images.githubusercontent.com/1753319/130641713-b78535c9-e3f5-4dbb-80f8-22bc00e1129d.png">
* Added support for SUSE and derivatives for command-not-found plugin
* Updated command-not-found documentation to list support for SUSE and derivatives
BREAKING CHANGE: the `DEFAULT_PROXY` setting has been renamed to `SHELLPROXY_URL`,
and `CONFIG_PROXY` has been renamed to `SHELLPROXY_CONFIG`. See the plugin README
for more information.
Co-authored-by: Marc Cornellà <hello@mcornella.com>
BREAKING CHANGE: the `hg_prompt_info` function now uses `ZSH_THEME_HG_PROMPT_PREFIX`
and `ZSH_THEME_HG_PROMPT_SUFFIX` variables when displaying branch information, similar
to the `git_prompt_info` function.
Closes#6631
Replaced two different calls of hg with one `hg --id --branch` for retrieving
information whether we're in a repo (will be empty if not), whether the repo is
dirty (revision id will contain "+" if there are uncommitted changed), and the
branch name.
Closes#6197Closes#7929
When calling `bundle install` with `--jobs=<n>`, bundle persists this
argument in `.bundle/config`. If we run `BUNDLE_JOBS=<n> bundle install`
instead, this is not persisted.
Fixes#10425
BREAKING CHANGE: the plugin now checks for the `docker-compose` command instead
of trying whether `docker compose` is a valid command. This means that if the
old command is still installed it will be used instead. To use `docker compose`,
uninstall any old copies of `docker-compose`.
Fixes#10409
The `rand-quote` plugin uses quotationspage.com and prints part of its content to the
shell without sanitization, which could trigger command injection. There is no evidence
that this has been exploited, but this commit removes all possibility for exploit.
Similarly, the `hitokoto` plugin uses the hitokoto.cn website to print quotes to the
shell, also without sanitization. Furthermore, there is also no evidence that this has
been exploited, but with this change it is now impossible.
Apple changed the name of their operating system from OS X to macOS a number of years ago. This was overdue!
As per issue #10311
* refactor(osx): rename `osx` plugin to `macos`
* refactor(macos): Add symbolic link from old `osx` plugin name.
BREAKING CHANGE: all `gem` aliases that started with `g` now start
with `ge` to fix conflicting names with the `git` plugin. Also, the
`ghlp` alias is now renamed `geh`. Have a look at the plugin README
for more information.
Fixes#10320
BREAKING CHANGE: the `zsh_reload` plugin is deprecated. Instead of using its `src`
function, use `omz reload` or `exec zsh` to reload zsh after making changes to
your `.zshrc` file.
Closes#9078
This change looks at the frame type of the open frames ('framep) and
looks if they're of the type requested based on the arguments passed
to emacsclient (-nw/-t/--tty require tty frames, otherwise we need
graphical frames).
NOTE: this code considers anything different than t as graphical
terminals, including MS-DOS types (pc). I don't have such a setup
to test if this is correct.
BREAKING CHANGE: Zsh already provides completion for the `django-admin` and `manage.py`
commands, which is substantially better than the one provided by this plugin. We're
therefore deprecating this plugin and we will remove it in the near future.
Also update upstream completion to version fe2008d04e80fafd.
NOTE: this fix means the version bundled within Oh My Zsh has diverged
from the upstream version.
Instead of relying on a hardcoded instance-name existing for the default-value, let's
look up the latest instance. This also resolves my problem where MacVim
had a servername of "VIM" instead of "GVIM".
Co-authored-by: Johann Fridriksson <jofridri@silabs.com>
BREAKING CHANGE: the `gmt` alias conflicts with the Generic Mapping Tools command.
For that, the `gmt` alias has been renamed to `gmtl`, and `gmtvim` has been renamed to
`gmtlvim` for consistency.
Fixes#9154
On M1-Macs homebrew uses /opt/homebrew as default location for ARM
packages. This results in the autojump plugin not being able to find
autojump after a clean default installation.
This commit adds the new default location to the autojump plugin.
The previous fix ignored any pyenv command found in $PATH while on
WSL, regardless of whether it was correctly set up or not.
This change only ignores the pyenv command if it's proved to come
from pyenv-win by looking at its full path.
This change fixes the setting of $PATH for pyenv and its shims, while warning
the user about non-interactive shells.
Co-authored-by: Marc Cornellà <hello@mcornella.com>
Without this fix the confirmation prompt appears wherever the cursor is,
which means that it might appear in the command line when using a widget
that changes the directory without redrawing the prompt (an example of
this are the dircycle and dirhistory plugins).
Changed commands:
gcd: uses gitflow.branch.develop to get user-set development branch
gch: uses gitflow.prefix.hotfix to get user-set hotfix prefix
gcr: uses gitflow.prefix.release to get user-set release prefix
Co-authored-by: Fabio 'c0m3tx' Vitale <c0m3tx@gmail.com>
I thought it would be useful to add these aliases.
There are already aliases for `git commit -S` and `git commit -s` but there is none for both simultaneously =)
* Add first impl of samtools autocompletion
* Just autocomplete with files all the time
* Add init impl of bedtools completion
* Add readme.md for bedtools plugin
* Add readme for samtools
Co-authored-by: Rolf Schroeder <rolf.schroeder@centogene.com>
* Switch order of "apt" and "aptitude" for detection
"apt" is installed by default at Debian (maybe Ubuntu too), while "aptitude" does not seem to be installed by default.
For that, it may be better for most of the users to prefer "aptitude" if installed.
* plugins/debian/README: Change of order mirroded into documentation
* Test only for the presence of a .git directory in virtualenvwrapper
Instead of using both $(git rev-parse --show-toplevel) and a check for
a .git directory, use just the latter. As well as being redundant
the former does not work quite so well when using multiple worktrees;
each worktree will be treated as a separate project.
* Unset ENV_NAME & deactivate if no virtualenv found
This addresses #4603 without breaking current behaviour (where current
behaviour is correct).
When changing directories, if there is no environment matching
ENV_NAME, ENV_NAME is emptied and deactivate called if there is a
current environment active (based on CD_VIRTUAL_ENV).
* Use path comparison not string comparison for paths
This will solve part of issue #4255 where WORKON_HOME is defined with a
trailing slash or not normalised in some way, as well as instances
where symlinks are used, and any other instances where constructed
paths don't exactly match even though they go to the same file.
Co-authored-by: Robby Russell <robby@planetargon.com>
* `rdmd` is aliased to `rake db:migrate:down`
* `rdmu` is aliased to `rake db:migrate:up`
* These tasks allow you to run a specific migration up or down by
specifying the appropriate `VERSION` env variable, which contains
the numerical prefix of the migration's filename
* ssh-agent: lock this script with a mkdir style mutex
This script is a kind of singleton pattern and is not reentrant.
If several shells are oppened in a fast sequence, then several
independent ssh-agents would be created, which is not acceptable.
A mutex is required.
Signed-off-by: Nuno Goncalves <nunojpg@gmail.com>
* ssh-agent: only start agent if .ssh dir exists
To use the same profile system-wide, it might happen
that the .ssh directory does not exist
(typically $HOME/.ssh/). This would trigger a error.
Creating the directory would be a option, but it
usually will not make sense to do so because it means
the user doesn't have ssh keys or config.
Signed-off-by: Nuno Goncalves <nunojpg@gmail.com>
* ssh-agent: adds lazy option to disable key loading on start
Option is documented on updated README.md
Signed-off-by: Nuno Goncalves <nunojpg@gmail.com>
* ssh-agent: simplify agent-forwarding checking
Signed-off-by: Nuno Goncalves <nunojpg@gmail.com>
Co-authored-by: Robby Russell <robby@planetargon.com>
By default, cargo provides alias for some commonly used functions. This patch
makes it that those alias will complete the same as their full commands.
Default alias:
b -> build
c -> check
t -> test
r -> run
Since cargo allows users to define custom alias it would be nice if
oh-my-zsh automatically detected those and preformed completions as such
but that would be a much more complex patch.
`pk-command-not-found` doesn't accept `--` as an argument. This is what happens when `--` is the first argument:
```
$ gem
zsh: --: command not found...
```
As documented in the README, `npm i -f` forces npm to install the specified packages from a remote
package registry, even if local copies exist on disk caches.
BREAKING CHANGE: the various update aliases will no longer run `abs` and `aur`, which are either
deprecated or nonexistent. See https://archlinux.org/news/deprecation-of-abs/ for more.
* Update VI_KEYMAP on zle-line-finish. Fixes next prompt draw.
* Also fix vi-mode prompt redraw in case previous prompt was canceled
* Do not redraw fix prompt if VI_MODE_RESET_PROMPT_ON_MODE_CHANGE is unset
* Use a local variable instead of global in function
* [docker-compose] Added alias for docker-compose up --build
Sometimes building images before starting the containers comes in handy.
Alias: `dcupb`
Command: `docker-compose up --build`
* Updated docker-compose/README.md
Added the alias definition in the readme
Co-authored-by: Robby Russell <robby@planetargon.com>
The sub-command `reclaim` is quite useful for freeing up disk space.
`reclaim` is a useful command that is missing from the list of completions in the plugin.
The description is for the `reclaim` sub-command is:
"port reclaim will find files that can be removed to reclaim disk space by uninstalling inactive ports on your system as well as unnecessary unrequested ports, and removing unneeded or unused installation files. The user is then provided interactive options for files to remove. No files are removed initially, until the user selects them from the provided list."
For all the details use this command on a system with Macports installed:
`port help reclaim`
BREAKING CHANGE: the key binding to open an editor to edit the command line has
been moved from being `v` (press v once) to being `vv` (press v twice). Now, the
action for `v` is the default `visual-mode`, as is in Vim.
Fixes#9573
- Added follow redirects curl flag to fix the 301 response
- Updated trusted users URL format
- Changed from `pgp.mit.edu` keyserver to `keyserver.ubuntu.com` keyserver
It wasn’t clear where I should set the `NVM_AUTOLOAD` variable. The clue was to be found in [the docs for another plugin](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/fzf). It seems setting values need to come before Oh My Zsh is sourced.
Updated read me to reflect this, and the fact that one of the settings mentioned is specific to nvm, not this plugin.
BREAKING CHANGE: changes deprecated `brew cask reinstall $(...)` alias to use
`brew upgrade --cask` instead. If you don't have this command, run `brew update` to
get the latest Homebrew CLI version.
Co-authored-by: jakepez <jake@findjake.com>
*Bugs*
The following bugs have been fixed:
- All generators ignored errors from external commands. For example,
if `/usr/share/dict/words` was unreadable, `genpass-xkcd` would
print "0-" as a password and return success.
- All generators silently ignored the argument if it wasn't a number.
For example, `genpass-apple -2` was generating one password and
not printing any errors.
- All generators silently ignored extra arguments. For example,
`genpass-apple -n 2` was generating one password and not printing
any errors.
- `genpass-xkcd` was generating passwords with less than 128 bits of
security margin in contradiction to documentation. The smaller the
dictionary size, the weaker the passwords it was generating. For a
dictionary with 27 words, `genpass-xkcd` was generating passwords
with 93 bits of security margin (`log2(27!)`).
- The source of random data used by `genpass-xkcd` was not
cryptographically secure in contradiction to documentation. See:
https://www.gnu.org/software/coreutils/manual/html_node/Random-sources.html
- `genpass-apple` could generate a password with non-ascii characters
depending on user locale. For example, passwords could contain 'İ'
for users with Turkish locale.
- `genpass-apple` didn't work with `ksh_arrays` shell option.
- `genpass-xkcd` was printing spurious errors with `ksh_arrays` shell
option.
- `genpass-xkcd` was producing too short (weak) or too strong (long)
and/or printing errors when `IFS` was set to non-default value.
- All generators were printing fewer passwords than requested and
returning success when passed a very large number as an argument.
*Usability*
Generators are now implemented as self-contained executable files.
They can be invoked from scripts with no additional setup.
Generators no longer depend on external commands. The only dependencies
are `/dev/urandom` and, for `genpass-xkcd`, `/usr/share/dict/words`.
All generators used to silently ignore all arguments after the first
and the first argument if it wasn't a number. For example, both
`genpass-apple -2` and `genpass-apple -n 2` were generating one password
and not printing any errors. Now these print an error and fail.
*Performance*
The time it takes to load the plugin has been greatly reduced. This
translates into faster zsh startup when the plugin is enabled.
Incidentally, two generators out of three have been sped up to a large
degree while one generator (`genpass-xkcd`) has gotten slower. This is
unlikely to matter one way or another unless generating a very large
number of passwords. In the latter case `genpass-xkcd` is now also
faster than it used to be.
The following table shows benchmark results from Linux x86-64 on i9-7900X.
The numbers in the second and third columns show how many times a given
command could be executed per second. Higher numbers are better.
command | before (Hz) | after (Hz) | speedup |
----------------------------|------------:|-----------:|--------:|
`source genpass.plugin.zsh` | 4810 | 68700 | +1326% |
`genpass-apple` | 30.3 | 893 | +2846% |
`genpass-monkey` | 203 | 5290 | +2504% |
`genpass-xkcd` | 34.4 | 14.5 | -58% |
`genpass-xkcd 1000` | 0.145 | 0.804 | +454% |
Antigen doesn't call `compinit` until the user prompt is about to be shown,
which means `_cache_invalid` isn't automatically autoloaded. This patch
fixes that, though we should work towards a better caching mechanism.
Fixes#9490