Two additional sets of paths are now added to the default list of well
known paths: '$HOME/{bin,sbin}' and '/opt/{homebrew,local}/{bin,sbin}'.
- '$HOME/{bin,sbin}': Most users have custom scripts in '$HOME/bin'
anyway, we might as well honor those. '$HOME/sbin' is not really common,
but we can keep it for consistency.
- '/opt/{homebrew,local}/{bin,sbin}': With Homebrew changing default
installation location in macOS on Apple Silicon which will eventually
become ubiquitous, we have a good reason to add these paths by default.
While at it, we also honor MacPorts installation.
In all cases, we add them _iff_ the paths actually exist, not otherwise.
This has the side effect of a newly installed program not available
immediately in the '$path' in a mint fresh system (because of the fact
that '/opt/{homebrew,local}/{bin,sbin}' won't exist initially) until the
shell is reloaded. But that's a minor inconvenience to keep the '$path'
from getting unnecessarily bloated.
Zsh and Prezto files don't always reside in `~/`. Instead, they have
a more spec compliant location (`${ZDOTDIR:-$HOME}/`). Make them
unambiguous in the documentation. Likewise, for `$GNUPGHOME`.
Further, add instruction for optionally setting up Prezto in
`$XDG_CONFIG_HOME`.
While at this, also add clarification on relative ordering of some of
the modules, apply more formatting tweaks and doc improvements.
General purpose reformating and rewording in (a few places). This should
also make markdown linting happier.
Prefer back-ticks wherever useful and use `console` for code blocks to
be executed on terminal.
Also, update references links wherever possible (including update from
'http://' to 'https://').
The existing code in runcoms/zlogin results in `$?` being
equal to `1` when starting a login shell if stderr is not
a TTY. For example:
zsh -l 2>/dev/null
When using a theme that displays error/success status of
the last command, the first prompt will show an error.
This commit fixes it so that error code is zero after
sourcing zlogin (unless something unexpected and bad happens).
- Add missing documentation for options and environment variables
- Rearrange definition and documentation of 'Options', 'Variables'
and 'Aliases' in a consistent order
This reverts commit 6d00fdf8c8.
As unfortunate as it is, this workaround was a hack and doesn't take
into account prompts like spaceship which don't use $editor_info but
rely on $KEYMAP directly. We'll need to find a more consistent solution
to fix this.
* Allow modules to be loaded from multiple places
* Add setting for user specified module dirs
This is initial work for the contrib repo, mentioned in #1424
Entries from static '/etc/hosts' can now be ignored via 'zstyle' based
configuration. Both IP address and corresponding hostname will be ignored
during host completion. However, some of the entries ignored from '/etc/hosts'
still might appear during completion because of their presence in 'ssh'
configuration ('~/.ssh/config') or history ('~/.ssh/ssh_hosts',
'~/.ssh/known_hosts' etc.).
Changes:
* Simplify zstyle name `skip-virtualenvwrapper-init` to `initialize`
avoiding double negation in name
* Always perform `eval (pyenv virtualenv-init -)` at initialization
* Prefer `virtualenvwrapper_lazy` over `virtualenvwrapper` when available
* Honor `VIRTUALENVWRAPPER_VIRTUALENV` if it is defined.
* Document about `VIRTUALENVWRAPPER_PYTHON` and `VIRTUALENVWRAPPER_VIRTUALENV`
(this would be particularly important in macOS after recent homebrew update)
* Add additional documentation for `initialize` in _README.md_ and _zpreztorc_
* Add aliases `py2`, `py3` as shortcut for `python2`, `python3` respectively
Changes:
* In prezto, function names are hyphenated ('-') by convention,
rename `promptpwd` to `prompt-pwd` accordingly.
* Unset local variable `current_pwd` proactively.
* Tweak additional documentation for `prompt-pwd`.
Currently rm/cp/ln/mv are aliased to rm/cp/ln/mv -i so that it will
prompt before removing files.
Some people would not like this functionality and wish for an easy way to
disable it. This adds a new option:
zstyle ':prezto:module:utility' safe-ops yes/no
It is enabled by default even if zstyle is not set, but can be set to no
to disable these aliases.
This should resolve issue #205
In some cases TMPDIR may not be set, in which case it could cause issues
for zsh modules.
This change was prompted by issue #1331.
Also when creating a missing TMPDIR, use mkdir --mode=700 instead
of creating the directory and then chmoding it afterward.
* Command to activate virtualenvs on changing directory
Enables automatic activation of a virtualenv when jumping into a directory
This is done by looking in the current directory for a file or directory
named `.venv`. If it's not found in the current directory its parents will
also be examined. `.venv` can be either:
1. A file containing the name of a virtualenv found in $WORKON_HOME
2. A directory containing bin/activate (meaning that the directory is
assumed to be a virtualenv.)
If $WORKON_HOME is set it is assumed that virtualenvwrapper is installed
and the `workon` command will be issued.
Multiplexer titles can be set independent of window and tab titles.
Add auto-title always option to have dynamic titling inside terminal
multiplexers. Setting auto-title to yes continues to ignore dynamic
titling inside terminal multiplexers.
This patch should not alter behavior under Apple terminals.
Debian based systems have `lesspipe`, without '.sh' suffix.
Since `$commands` is an associative array, we do index search and set
the input preprocessor on first match.
Only set up environment for the top-level shell, and allow it to be
inherited normally.
A top level shell is usually a login shell, but can also be a
non-interactive, non-login shell in certain cases, such as when
executing an SSH remote command.
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
Setting the auto-start 'remote' and 'local' zstyles for the screen and
tmux modules to 'true' automatically starts a session in SSH connections
and in local terminals respectively.
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
The detection of lesspipe.sh has to be done after setting PATH as it
could be installed in a non-standard bin directory. For example,
Homebrew installs lesspipe in /usr/local.
Setting environment variables for launchd processes is unreliable.
Finder and all Finder launched programs have to be restarted for the
new environment variables to take effect.