diff --git a/README.md b/README.md
index 7b2efb1d..40163fa8 100644
--- a/README.md
+++ b/README.md
@@ -41,7 +41,7 @@ version is **4.3.11**.
```sh
export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:=$HOME/.config}"
- export ZDOTDIR="${ZDOTDIR:=$XDG_CONFIG_HOME/zsh}"
+ [[ -d $XDG_CONFIG_HOME/zsh ]] && export ZDOTDIR="$XDG_CONFIG_HOME/zsh"
source "$ZDOTDIR/.zshenv"
```
@@ -73,14 +73,6 @@ version is **4.3.11**.
05. Open a new Zsh terminal window or tab.
-### [Fig](https://fig.io)
-
-Fig adds apps, shortcuts, and autocomplete to your existing terminal.
-
-Install `prezto` in just one click.
-
-
-
### Troubleshooting
If you are not able to find certain commands after switching to Prezto, modify
diff --git a/modules/autosuggestions/external b/modules/autosuggestions/external
index a411ef3e..c3d4e576 160000
--- a/modules/autosuggestions/external
+++ b/modules/autosuggestions/external
@@ -1 +1 @@
-Subproject commit a411ef3e0992d4839f0732ebeb9823024afaaaa8
+Subproject commit c3d4e576c9c86eac62884bd47c01f6faed043fc5
diff --git a/modules/completion/external b/modules/completion/external
index 0331b290..978e79e1 160000
--- a/modules/completion/external
+++ b/modules/completion/external
@@ -1 +1 @@
-Subproject commit 0331b2908f93556453e45fa5a899aa21e0a7f64d
+Subproject commit 978e79e12c44b5b1d3e1e2920c537002087b82c2
diff --git a/modules/completion/init.zsh b/modules/completion/init.zsh
index 9ba95634..12cb3336 100644
--- a/modules/completion/init.zsh
+++ b/modules/completion/init.zsh
@@ -84,7 +84,7 @@ if zstyle -t ':prezto:module:completion:*' case-sensitive; then
zstyle ':completion:*' matcher-list 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
setopt CASE_GLOB
else
- zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
+ zstyle ':completion:*' matcher-list 'm:{[:lower:]}={[:upper:]}' 'm:{[:upper:]}={[:lower:]}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
unsetopt CASE_GLOB
fi
diff --git a/modules/directory/README.md b/modules/directory/README.md
index 86953a47..8603d9f6 100644
--- a/modules/directory/README.md
+++ b/modules/directory/README.md
@@ -17,6 +17,13 @@ Sets directory options and defines directory aliases.
## Aliases
+Aliases are enabled by default. To disable them, add the following to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_.
+
+```sh
+zstyle ':prezto:module:directory:alias' skip 'yes'
+```
+
- `d` prints the contents of the directory stack.
- `1 ... 9` changes the directory to the **n** previous one.
diff --git a/modules/directory/init.zsh b/modules/directory/init.zsh
index c5a01f1d..caf08d2a 100644
--- a/modules/directory/init.zsh
+++ b/modules/directory/init.zsh
@@ -25,6 +25,8 @@ unsetopt CLOBBER # Do not overwrite existing files with > and >>.
# Aliases
#
-alias -- -='cd -'
-alias d='dirs -v'
-for index ({1..9}) alias "$index"="cd +${index}"; unset index
+if ! zstyle -t ':prezto:module:directory:alias' skip; then
+ alias -- -='cd -'
+ alias d='dirs -v'
+ for index ({1..9}) alias "$index"="cd +${index}"; unset index
+fi
diff --git a/modules/editor/README.md b/modules/editor/README.md
index 9aef6ef1..a1c18520 100644
--- a/modules/editor/README.md
+++ b/modules/editor/README.md
@@ -12,6 +12,17 @@ Sets editor specific key bindings options and variables.
## Settings
+### Wordchars
+
+To change what characters are considered part of a word, add the following to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_.
+
+```sh
+zstyle ':prezto:module:editor' wordchars
+```
+
+Defaults to `*?_-.[]~&;!#$%^(){}<>`.
+
### Key bindings
To enable key bindings, add the following to _`${ZDOTDIR:-$HOME}/.zpreztorc`_,
diff --git a/modules/editor/init.zsh b/modules/editor/init.zsh
index 5b411f58..5798bc80 100644
--- a/modules/editor/init.zsh
+++ b/modules/editor/init.zsh
@@ -21,7 +21,8 @@ setopt BEEP # Beep on error in line editor.
#
# Treat these characters as part of a word.
-WORDCHARS='*?_-.[]~&;!#$%^(){}<>'
+zstyle -s ':prezto:module:editor' wordchars 'WORDCHARS' \
+ || WORDCHARS='*?_-.[]~&;!#$%^(){}<>'
# Use human-friendly identifiers.
zmodload zsh/terminfo
diff --git a/modules/emacs/README.md b/modules/emacs/README.md
index f93304aa..8cf7bfc8 100644
--- a/modules/emacs/README.md
+++ b/modules/emacs/README.md
@@ -12,6 +12,13 @@ execution of `carton`.
## Aliases
+Aliases are enabled by default. To disable them, add the following to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_.
+
+```sh
+zstyle ':prezto:module:emacs:alias' skip 'yes'
+```
+
### Carton
- `cai` installs dependencies.
diff --git a/modules/emacs/init.zsh b/modules/emacs/init.zsh
index 3acc965c..a53285ab 100644
--- a/modules/emacs/init.zsh
+++ b/modules/emacs/init.zsh
@@ -19,7 +19,9 @@ source "$HOME/.cask/etc/cask_completion.zsh" 2> /dev/null
# Aliases
#
-alias cai='cask install'
-alias cau='cask update'
-alias caI='cask init'
-alias cae='cask exec'
+if ! zstyle -t ':prezto:module:emacs:alias' skip; then
+ alias cai='cask install'
+ alias cau='cask update'
+ alias caI='cask init'
+ alias cae='cask exec'
+fi
diff --git a/modules/fasd/README.md b/modules/fasd/README.md
index 1958a739..04f9693a 100644
--- a/modules/fasd/README.md
+++ b/modules/fasd/README.md
@@ -19,6 +19,13 @@ instead of the bundled version.
## Aliases
+Aliases are enabled by default. To disable them, add the following to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_.
+
+```sh
+zstyle ':prezto:module:fasd:alias' skip 'yes'
+```
+
- `j` changes the current working directory interactively.
## Completion
diff --git a/modules/fasd/external b/modules/fasd/external
index 48220241..90b531a5 160000
--- a/modules/fasd/external
+++ b/modules/fasd/external
@@ -1 +1 @@
-Subproject commit 48220241e764fdf46b075cd7fe723468aaadde58
+Subproject commit 90b531a5daaa545c74c7d98974b54cbdb92659fc
diff --git a/modules/fasd/init.zsh b/modules/fasd/init.zsh
index f948789e..bd142f80 100644
--- a/modules/fasd/init.zsh
+++ b/modules/fasd/init.zsh
@@ -53,5 +53,7 @@ function fasd_cd {
# Aliases
#
-# Changes the current working directory interactively.
-alias j='fasd_cd -i'
+if ! zstyle -t ':prezto:module:fasd:alias' skip; then
+ # Changes the current working directory interactively.
+ alias j='fasd_cd -i'
+fi
diff --git a/modules/gnu-utility/init.zsh b/modules/gnu-utility/init.zsh
index 85e86050..2cfbf2fa 100644
--- a/modules/gnu-utility/init.zsh
+++ b/modules/gnu-utility/init.zsh
@@ -44,8 +44,7 @@ _gnu_utility_cmds=(
'libtool' 'libtoolize'
# Miscellaneous
- 'egrep' 'fgrep' 'getopt' 'grep' 'indent' 'make' 'sed' 'tar' 'time' 'units'
- 'which'
+ 'awk' 'getopt' 'grep' 'indent' 'make' 'sed' 'tar' 'time' 'units' 'which'
)
# Wrap GNU utilities in functions.
diff --git a/modules/history-substring-search/README.md b/modules/history-substring-search/README.md
index 3a109c55..e7c55c53 100644
--- a/modules/history-substring-search/README.md
+++ b/modules/history-substring-search/README.md
@@ -65,6 +65,42 @@ _`${ZDOTDIR:-$HOME}/.zpreztorc`_:
zstyle ':prezto:module:history-substring-search' globbing-flags ''
```
+### Case sensitive search
+
+To set the search case-sensitivity, add the following line to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
+
+```sh
+zstyle ':prezto:module:history-substring-search' case-sensitive 'yes'
+```
+
+### Fuzzy search
+
+To enable search for fuzzy matches, add the following line to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
+
+```sh
+zstyle ':prezto:module:history-substring-search' fuzzy 'yes'
+```
+
+### Unique results
+
+To enable unique results, add the following line to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
+
+```sh
+zstyle ':prezto:module:history-substring-search' unique 'yes'
+```
+
+### Prefixed search
+
+To enable prefixed search matches, add the following line to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
+
+```sh
+zstyle ':prezto:module:history-substring-search' prefixed 'yes'
+```
+
## Authors
_The authors of this module should be contacted via the [issue tracker][5]._
diff --git a/modules/history-substring-search/external b/modules/history-substring-search/external
index 0f80b8eb..8dd05bfc 160000
--- a/modules/history-substring-search/external
+++ b/modules/history-substring-search/external
@@ -1 +1 @@
-Subproject commit 0f80b8eb3368b46e5e573c1d91ae69eb095db3fb
+Subproject commit 8dd05bfcc12b0cd1ee9ea64be725b3d9f713cf64
diff --git a/modules/history-substring-search/init.zsh b/modules/history-substring-search/init.zsh
index 0de78918..54e8b00e 100644
--- a/modules/history-substring-search/init.zsh
+++ b/modules/history-substring-search/init.zsh
@@ -38,6 +38,18 @@ if ! zstyle -t ':prezto:module:history-substring-search' color; then
unset HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_{FOUND,NOT_FOUND}
fi
+if zstyle -t ':prezto:module:history-substring-search' fuzzy; then
+ HISTORY_SUBSTRING_SEARCH_FUZZY=1
+fi
+
+if zstyle -t ':prezto:module:history-substring-search' unique; then
+ HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE=1
+fi
+
+if zstyle -t ':prezto:module:history-substring-search' prefixed; then
+ HISTORY_SUBSTRING_SEARCH_PREFIXED=1
+fi
+
#
# Key Bindings
#
diff --git a/modules/history/README.md b/modules/history/README.md
index 11c6d947..51e6e8ca 100644
--- a/modules/history/README.md
+++ b/modules/history/README.md
@@ -36,6 +36,13 @@ Alternately, you can set `HISTFILE` manually to _`${ZDOTDIR:-$HOME}/.zhistory`_.
## Aliases
+Aliases are enabled by default. To disable them, add the following to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_.
+
+```sh
+zstyle ':prezto:module:history:alias' skip 'yes'
+```
+
- `history-stat` lists the ten most used commands
## Settings
diff --git a/modules/history/init.zsh b/modules/history/init.zsh
index 1f9a09b4..069dc2f1 100644
--- a/modules/history/init.zsh
+++ b/modules/history/init.zsh
@@ -10,58 +10,34 @@
# Options
#
-setopt BANG_HIST # Treat the '!' character specially during expansion.
-setopt EXTENDED_HISTORY # Write the history file in the ':start:elapsed;command' format.
-setopt SHARE_HISTORY # Share history between all sessions.
-setopt HIST_EXPIRE_DUPS_FIRST # Expire a duplicate event first when trimming history.
-setopt HIST_IGNORE_DUPS # Do not record an event that was just recorded again.
-setopt HIST_IGNORE_ALL_DUPS # Delete an old recorded event if a new event is a duplicate.
-setopt HIST_FIND_NO_DUPS # Do not display a previously found event.
-setopt HIST_IGNORE_SPACE # Do not record an event starting with a space.
-setopt HIST_SAVE_NO_DUPS # Do not write a duplicate event to the history file.
-setopt HIST_VERIFY # Do not execute immediately upon history expansion.
-setopt HIST_BEEP # Beep when accessing non-existent history.
+setopt BANG_HIST # Treat the '!' character specially during expansion.
+setopt EXTENDED_HISTORY # Write the history file in the ':start:elapsed;command' format.
+setopt SHARE_HISTORY # Share history between all sessions.
+setopt HIST_EXPIRE_DUPS_FIRST # Expire a duplicate event first when trimming history.
+setopt HIST_IGNORE_DUPS # Do not record an event that was just recorded again.
+setopt HIST_IGNORE_ALL_DUPS # Delete an old recorded event if a new event is a duplicate.
+setopt HIST_FIND_NO_DUPS # Do not display a previously found event.
+setopt HIST_IGNORE_SPACE # Do not record an event starting with a space.
+setopt HIST_SAVE_NO_DUPS # Do not write a duplicate event to the history file.
+setopt HIST_VERIFY # Do not execute immediately upon history expansion.
+setopt HIST_BEEP # Beep when accessing non-existent history.
#
# Variables
#
-zstyle -s ':prezto:module:history' histfile '_pmh_histfile' || _pmh_histfile="${HISTFILE:-${ZDOTDIR:-$HOME}/.zsh_history}"
-zstyle -s ':prezto:module:history' histsize '_pmh_histsize' || _pmh_histsize=10000
-zstyle -s ':prezto:module:history' savehist '_pmh_savehist' || _pmh_savehist=${_pmh_histsize}
-HISTFILE="${_pmh_histfile}" # The path to the history file.
-HISTSIZE="${_pmh_histsize}" # The maximum number of events to save in the internal history.
-SAVEHIST="${_pmh_savehist}" # The maximum number of events to save in the history file.
-unset _pmh_{hist{file,size},savehist}
+zstyle -s ':prezto:module:history' histfile 'HISTFILE' \
+ || HISTFILE="${HISTFILE:-${ZDOTDIR:-$HOME}/.zsh_history}" # The path to the history file.
+zstyle -s ':prezto:module:history' histsize 'HISTSIZE' \
+ || HISTSIZE=10000 # The maximum number of events to save in the internal history.
+zstyle -s ':prezto:module:history' savehist 'SAVEHIST' \
+ || SAVEHIST=$HISTSIZE # The maximum number of events to save in the history file.
#
# Aliases
#
-# Lists the ten most used commands.
-alias history-stat="history 0 | awk '{print \$2}' | sort | uniq -c | sort -n -r | head"
-
-if [[ -s "${OLD_HISTFILE::=${HISTFILE:h}/.zhistory}" ]]; then
-
- # New 'HISTFILE' doesn't exist yet, rename legacy one if available and notify.
- if [[ ! -s "$HISTFILE" ]]; then
- < /dev/null)"}:#export HOMEBREW*}"
+ cache_file="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/brew-shellenv-cache.zsh"
+ if [[ "$commands[brew]" -nt "$cache_file" \
+ || "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" \
+ || ! -s "$cache_file" ]]; then
+ mkdir -p "$cache_file:h"
+ # Cache the result.
+ echo "${(@M)${(f)"$(brew shellenv 2> /dev/null)"}:#export HOMEBREW*}" >! "$cache_file" 2> /dev/null
+ fi
+
+ source "$cache_file"
+ unset cache_file
fi
#
@@ -29,19 +39,21 @@ fi
#
# Homebrew
-alias brewc='brew cleanup'
-alias brewi='brew install'
-alias brewL='brew leaves'
-alias brewl='brew list'
-alias brewo='brew outdated'
-alias brews='brew search'
-alias brewu='brew upgrade'
-alias brewx='brew uninstall'
+if ! zstyle -t ':prezto:module:homebrew:alias' skip; then
+ alias brewc='brew cleanup'
+ alias brewi='brew install'
+ alias brewL='brew leaves'
+ alias brewl='brew list'
+ alias brewo='brew outdated'
+ alias brews='brew search'
+ alias brewu='brew upgrade'
+ alias brewx='brew uninstall'
-# Homebrew Cask
-alias caski='brew install --cask'
-alias caskl='brew list --cask'
-alias casko='brew outdated --cask'
-alias casks='brew search --cask'
-alias casku='brew upgrade --cask'
-alias caskx='brew uninstall --cask'
+ # Homebrew Cask
+ alias caski='brew install --cask'
+ alias caskl='brew list --cask'
+ alias casko='brew outdated --cask'
+ alias casks='brew search --cask'
+ alias casku='brew upgrade --cask'
+ alias caskx='brew uninstall --cask'
+fi
diff --git a/modules/macports/README.md b/modules/macports/README.md
index ba6143b5..15963b33 100644
--- a/modules/macports/README.md
+++ b/modules/macports/README.md
@@ -4,6 +4,13 @@ Defines MacPorts aliases and adds MacPorts directories to path variables.
## Aliases
+Aliases are enabled by default. To disable them, add the following to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_.
+
+```sh
+zstyle ':prezto:module:macports:alias' skip 'yes'
+```
+
- `portc` cleans the files used to build ports.
- `porti` installs a port.
- `ports` searches for a port.
diff --git a/modules/macports/init.zsh b/modules/macports/init.zsh
index 7bf4ab29..1ac3c531 100644
--- a/modules/macports/init.zsh
+++ b/modules/macports/init.zsh
@@ -28,10 +28,12 @@ path=(
# Aliases
#
-alias portc='sudo port clean --all installed'
-alias porti='sudo port install'
-alias ports='port search'
-alias portU='sudo port selfupdate && sudo port upgrade outdated'
-alias portu='sudo port upgrade'
-alias portX='sudo port -u uninstall'
-alias portx='sudo port uninstall'
+if ! zstyle -t ':prezto:module:macports:alias' skip; then
+ alias portc='sudo port clean --all installed'
+ alias porti='sudo port install'
+ alias ports='port search'
+ alias portU='sudo port selfupdate && sudo port upgrade outdated'
+ alias portu='sudo port upgrade'
+ alias portX='sudo port -u uninstall'
+ alias portx='sudo port uninstall'
+fi
diff --git a/modules/node/README.md b/modules/node/README.md
index 6ec0b75c..bc262151 100644
--- a/modules/node/README.md
+++ b/modules/node/README.md
@@ -29,6 +29,13 @@ _`$XDG_CONFIG_HOME/nvm`_, _`~/.nvm`_, or is installed with homebrew.
## Aliases
+Aliases are enabled by default. To disable them, add the following to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_.
+
+```sh
+zstyle ':prezto:module:node:alias' skip 'yes'
+```
+
### npm
- `npmi` install a package.
diff --git a/modules/node/init.zsh b/modules/node/init.zsh
index b3591049..0c27764d 100644
--- a/modules/node/init.zsh
+++ b/modules/node/init.zsh
@@ -48,18 +48,20 @@ N_PREFIX="${XDG_CONFIG_HOME:-$HOME/.config}/n" # The path to 'n' cache.
# Aliases
#
-# npm
-alias npmi='npm install'
-alias npml='npm list'
-alias npmo='npm outdated'
-alias npmp='npm publish'
-alias npmP='npm prune'
-alias npmr='npm run'
-alias npms='npm search'
-alias npmt='npm test'
-alias npmu='npm update'
-alias npmx='npm uninstall'
+if ! zstyle -t ':prezto:module:node:alias' skip; then
+ # npm
+ alias npmi='npm install'
+ alias npml='npm list'
+ alias npmo='npm outdated'
+ alias npmp='npm publish'
+ alias npmP='npm prune'
+ alias npmr='npm run'
+ alias npms='npm search'
+ alias npmt='npm test'
+ alias npmu='npm update'
+ alias npmx='npm uninstall'
-alias npmci='npm ci'
-alias npmcit='npm cit'
-alias npmit='npm it'
+ alias npmci='npm ci'
+ alias npmcit='npm cit'
+ alias npmit='npm it'
+fi
diff --git a/modules/osx/functions/manp b/modules/osx/functions/manp
index fcb2a026..d31bbc40 100644
--- a/modules/osx/functions/manp
+++ b/modules/osx/functions/manp
@@ -9,7 +9,7 @@ function manp {
local page
if (( $# > 0 )); then
for page in "$@"; do
- man -t "$page" | open -f -a Preview
+ mandoc -T pdf "$(/usr/bin/man -w $page)" | open -fa Preview
done
else
print 'What manual page do you want?' >&2
diff --git a/modules/osx/functions/trash b/modules/osx/functions/trash
new file mode 100644
index 00000000..0efa2154
--- /dev/null
+++ b/modules/osx/functions/trash
@@ -0,0 +1,31 @@
+#
+# Moves files to the macOS trash.
+#
+
+# function trash {
+
+emulate -L zsh
+setopt LOCAL_OPTIONS EXTENDED_GLOB
+
+local file
+local -a files=()
+for file in $@; do
+ if [[ -e $file ]]; then
+ # ':a' gets the full path (do not use ':A', which would resolve symlinks)
+ files+=("the POSIX file \"${file:a}\"")
+ else
+ print "trash: No such file or directory '$file'." >&2
+ return 1
+ fi
+done
+
+if (( $#files == 0 )); then
+ print 'usage: trash ' >&2
+ return 64 # Match rm's return code.
+fi
+
+# Join file list with commas, and tell Finder to trash that list.
+local file_list="${(pj., .)files}"
+osascript 2>&1 > /dev/null -e "tell app \"Finder\" to move { "${file_list}" } to trash"
+
+# }
diff --git a/modules/perl/README.md b/modules/perl/README.md
index 772d0680..dd594491 100644
--- a/modules/perl/README.md
+++ b/modules/perl/README.md
@@ -40,6 +40,13 @@ The subcommands of _plenv_ is similar with _rbenv_.
## Aliases
+Aliases are enabled by default. To disable them, add the following to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_.
+
+```sh
+zstyle ':prezto:module:perl:alias' skip 'yes'
+```
+
### General
- `pl` is short for `perl`.
diff --git a/modules/perl/init.zsh b/modules/perl/init.zsh
index 1b5e6657..efadd9ea 100644
--- a/modules/perl/init.zsh
+++ b/modules/perl/init.zsh
@@ -61,37 +61,39 @@ fi
# Aliases
#
-# General
-alias pl='perl'
-alias pld='perldoc'
-alias ple='perl -wlne'
+if ! zstyle -t ':prezto:module:perl:alias' skip; then
+ # General
+ alias pl='perl'
+ alias pld='perldoc'
+ alias ple='perl -wlne'
-# Perlbrew
-if (( $+commands[perlbrew] )); then
- alias plb='perlbrew'
- alias plba='perlbrew available'
- alias plbi='perlbrew install'
- alias plbl='perlbrew list'
- alias plbo='perlbrew off'
- alias plbO='perlbrew switch-off'
- alias plbs='perlbrew switch'
- alias plbu='perlbrew use'
- alias plbx='perlbrew uninstall'
+ # Perlbrew
+ if (( $+commands[perlbrew] )); then
+ alias plb='perlbrew'
+ alias plba='perlbrew available'
+ alias plbi='perlbrew install'
+ alias plbl='perlbrew list'
+ alias plbo='perlbrew off'
+ alias plbO='perlbrew switch-off'
+ alias plbs='perlbrew switch'
+ alias plbu='perlbrew use'
+ alias plbx='perlbrew uninstall'
-elif (( $+commands[plenv] )); then
- alias plv='plenv'
- alias plvc='plenv commands'
- alias plvl='plenv local'
- alias plvg='plenv global'
- alias plvs='plenv shell'
- alias plvi='plenv install'
- alias plvu='plenv uninstall'
- alias plvr='plenv rehash'
- alias plvv='plenv version'
- alias plvV='plenv versions'
- alias plvw='plenv which'
- alias plvW='plenv whence'
- alias plvm='plenv list-modules'
- alias plvM='plenv migrate-modules'
- alias plvI='plenv install-cpanm'
+ elif (( $+commands[plenv] )); then
+ alias plv='plenv'
+ alias plvc='plenv commands'
+ alias plvl='plenv local'
+ alias plvg='plenv global'
+ alias plvs='plenv shell'
+ alias plvi='plenv install'
+ alias plvu='plenv uninstall'
+ alias plvr='plenv rehash'
+ alias plvv='plenv version'
+ alias plvV='plenv versions'
+ alias plvw='plenv which'
+ alias plvW='plenv whence'
+ alias plvm='plenv list-modules'
+ alias plvM='plenv migrate-modules'
+ alias plvI='plenv install-cpanm'
+ fi
fi
diff --git a/modules/prompt/external/async b/modules/prompt/external/async
index bbbc92bd..ee1d11b6 160000
--- a/modules/prompt/external/async
+++ b/modules/prompt/external/async
@@ -1 +1 @@
-Subproject commit bbbc92bd01592513a6b7739a45b7911af18acaef
+Subproject commit ee1d11b68c38dec24c22b1c51a45e8a815a79756
diff --git a/modules/prompt/external/powerlevel10k b/modules/prompt/external/powerlevel10k
index 8a676a91..35833ea1 160000
--- a/modules/prompt/external/powerlevel10k
+++ b/modules/prompt/external/powerlevel10k
@@ -1 +1 @@
-Subproject commit 8a676a9157d2b0e00e88d06456ac7317f11c0317
+Subproject commit 35833ea15f14b71dbcebc7e54c104d8d56ca5268
diff --git a/modules/prompt/external/pure b/modules/prompt/external/pure
index 5b458ba5..a02209d3 160000
--- a/modules/prompt/external/pure
+++ b/modules/prompt/external/pure
@@ -1 +1 @@
-Subproject commit 5b458ba5b75f49a8071d53c343f1a23631f7bced
+Subproject commit a02209d36c8509c0e62f44324127632999c9c0cf
diff --git a/modules/prompt/init.zsh b/modules/prompt/init.zsh
index 31808837..37bff328 100644
--- a/modules/prompt/init.zsh
+++ b/modules/prompt/init.zsh
@@ -10,18 +10,8 @@ autoload -Uz promptinit && promptinit
# Load the prompt theme.
zstyle -a ':prezto:module:prompt' theme 'prompt_argv'
-if [[ "$TERM" == (dumb|linux|*bsd*) ]] || (( $#prompt_argv < 1 )); then
+if [[ $TERM == (dumb|linux|*bsd*) ]] || (( $#prompt_argv < 1 )); then
prompt 'off'
-elif [[ "$prompt_argv[1]" == 'powerlevel9k' ]] ; then
- <
-#
-
-if (( $+commands[$words[1]] )); then
-
- function _pip_completion {
- compadd -- $( COMP_WORDS="$words[*]" COMP_CWORD=$(( CURRENT - 1 )) \
- PIP_AUTO_COMPLETE=1 $words[1] 2>/dev/null )
- }
- _pip_completion "$@"
-
-fi
diff --git a/modules/python/init.zsh b/modules/python/init.zsh
index a80a9c47..c303cad1 100644
--- a/modules/python/init.zsh
+++ b/modules/python/init.zsh
@@ -25,12 +25,7 @@ if [[ -s "${local_pyenv::=${PYENV_ROOT:-$HOME/.pyenv}/bin/pyenv}" ]] \
# Ensure manually installed pyenv is added to path when present.
[[ -s $local_pyenv ]] && path=($local_pyenv:h $path)
- # pyenv 2+ requires shims to be added to path before being initialized.
- autoload -Uz is-at-least
- if is-at-least 2 ${"$(pyenv --version 2>&1)"[(w)2]}; then
- eval "$(pyenv init --path zsh)"
- fi
-
+ # Load pyenv into the shell session.
eval "$(pyenv init - zsh)"
# Prepend PEP 370 per user site packages directory, which defaults to
@@ -50,7 +45,7 @@ fi
unset local_pyenv
# Return if requirements are not found.
-if (( ! $#commands[(i)python[23]#] && ! $+functions[pyenv] && ! $+commands[conda] )); then
+if (( ! $+commands[(i)python[0-9.]#] && ! $+functions[pyenv] && ! $+commands[conda] )); then
return 1
fi
@@ -136,8 +131,8 @@ if (( $+VIRTUALENVWRAPPER_VIRTUALENV || $+commands[virtualenv] )) \
if [[ $pyenv_virtualenvwrapper_plugin_found != "true" ]]; then
# Fallback to standard 'virtualenvwrapper' if 'python' is available in '$path'.
- if (( ! $+VIRTUALENVWRAPPER_PYTHON )) && (( $#commands[(i)python[23]#] )); then
- VIRTUALENVWRAPPER_PYTHON=$commands[(i)python[23]#]
+ if (( ! $+VIRTUALENVWRAPPER_PYTHON )) && (( $+commands[(i)python[0-9.]#] )); then
+ VIRTUALENVWRAPPER_PYTHON=$commands[(i)python[0-9.]#]
fi
virtualenvwrapper_sources=(
@@ -171,6 +166,8 @@ fi
# Aliases
#
-alias py='python'
-alias py2='python2'
-alias py3='python3'
+if ! zstyle -t ':prezto:module:python:alias' skip; then
+ alias py='python'
+ alias py2='python2'
+ alias py3='python3'
+fi
diff --git a/modules/rails/README.md b/modules/rails/README.md
index 129627a0..5e230e0e 100644
--- a/modules/rails/README.md
+++ b/modules/rails/README.md
@@ -4,6 +4,13 @@ Defines [Ruby on Rails][1] aliases.
## Aliases
+Aliases are enabled by default. To disable them, add the following to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_.
+
+```sh
+zstyle ':prezto:module:rails:alias' skip 'yes'
+```
+
- `ror` is short for `rails`.
- `rorc` starts the Rails console.
- `rordc` starts the Rails console connected to the database.
diff --git a/modules/rails/init.zsh b/modules/rails/init.zsh
index 44b53e90..ed86372b 100644
--- a/modules/rails/init.zsh
+++ b/modules/rails/init.zsh
@@ -19,17 +19,19 @@ fi
# Aliases
#
-alias ror='bundle exec rails'
-alias rorc='bundle exec rails console'
-alias rordc='bundle exec rails dbconsole'
-alias rordm='bundle exec rake db:migrate'
-alias rordM='bundle exec rake db:migrate db:test:clone'
-alias rordr='bundle exec rake db:rollback'
-alias rorg='bundle exec rails generate'
-alias rorl='tail -f "$(ruby-app-root)/log/development.log"'
-alias rorlc='bundle exec rake log:clear'
-alias rorp='bundle exec rails plugin'
-alias rorr='bundle exec rails runner'
-alias rors='bundle exec rails server'
-alias rorsd='bundle exec rails server --debugger'
-alias rorx='bundle exec rails destroy'
+if ! zstyle -t ':prezto:module:rails:alias' skip; then
+ alias ror='bundle exec rails'
+ alias rorc='bundle exec rails console'
+ alias rordc='bundle exec rails dbconsole'
+ alias rordm='bundle exec rake db:migrate'
+ alias rordM='bundle exec rake db:migrate db:test:clone'
+ alias rordr='bundle exec rake db:rollback'
+ alias rorg='bundle exec rails generate'
+ alias rorl='tail -f "$(ruby-app-root)/log/development.log"'
+ alias rorlc='bundle exec rake log:clear'
+ alias rorp='bundle exec rails plugin'
+ alias rorr='bundle exec rails runner'
+ alias rors='bundle exec rails server'
+ alias rorsd='bundle exec rails server --debugger'
+ alias rorx='bundle exec rails destroy'
+fi
diff --git a/modules/ruby/README.md b/modules/ruby/README.md
index 97a09f07..fa3d1064 100644
--- a/modules/ruby/README.md
+++ b/modules/ruby/README.md
@@ -54,6 +54,13 @@ dependencies, with [Bundler][5].
## Aliases
+Aliases are enabled by default. To disable them, add the following to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_.
+
+```sh
+zstyle ':prezto:module:ruby:alias' skip 'yes'
+```
+
### General
- `rb` is short for `ruby`.
diff --git a/modules/ruby/init.zsh b/modules/ruby/init.zsh
index cf55bc50..86ab43ce 100644
--- a/modules/ruby/init.zsh
+++ b/modules/ruby/init.zsh
@@ -59,23 +59,25 @@ fi
# Aliases
#
-# General
-alias rb='ruby'
+if ! zstyle -t ':prezto:module:ruby:alias' skip; then
+ # General
+ alias rb='ruby'
-# Bundler
-if (( $+commands[bundle] )); then
- alias rbb='bundle'
- alias rbbc='bundle clean'
- alias rbbe='bundle exec'
- alias rbbi='bundle install --path vendor/bundle'
- alias rbbl='bundle list'
- alias rbbo='bundle open'
- alias rbbp='bundle package'
- alias rbbu='bundle update'
- alias rbbI='rbbi \
- && bundle package \
- && print .bundle >>! .gitignore \
- && print vendor/assets >>! .gitignore \
- && print vendor/bundle >>! .gitignore \
- && print vendor/cache >>! .gitignore'
+ # Bundler
+ if (( $+commands[bundle] )); then
+ alias rbb='bundle'
+ alias rbbc='bundle clean'
+ alias rbbe='bundle exec'
+ alias rbbi='bundle install --path vendor/bundle'
+ alias rbbl='bundle list'
+ alias rbbo='bundle open'
+ alias rbbp='bundle package'
+ alias rbbu='bundle update'
+ alias rbbI='rbbi \
+ && bundle package \
+ && print .bundle >>! .gitignore \
+ && print vendor/assets >>! .gitignore \
+ && print vendor/bundle >>! .gitignore \
+ && print vendor/cache >>! .gitignore'
+ fi
fi
diff --git a/modules/screen/README.md b/modules/screen/README.md
index a1775f7e..b5549510 100644
--- a/modules/screen/README.md
+++ b/modules/screen/README.md
@@ -24,6 +24,13 @@ zstyle ':prezto:module:screen:auto-start' remote 'yes'
## Aliases
+Aliases are enabled by default. To disable them, add the following to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_.
+
+```sh
+zstyle ':prezto:module:screen:alias' skip 'yes'
+```
+
- `scr` is short for `screen`.
- `scrl` lists sessions/socket directory.
- `scrn` starts a new session.
diff --git a/modules/screen/init.zsh b/modules/screen/init.zsh
index 0dee1c96..1a3908d8 100644
--- a/modules/screen/init.zsh
+++ b/modules/screen/init.zsh
@@ -22,7 +22,7 @@ if [[ -z "$STY" && -z "$EMACS" && -z "$VIM" ]] && ( \
session="$(
screen -list 2> /dev/null \
| sed '1d;$d' \
- | awk '{print $1}' \
+ | awk '!/Dead/ {print $1}' \
| head -1)"
if [[ -n "$session" ]]; then
@@ -36,7 +36,9 @@ fi
# Aliases
#
-alias scr='screen'
-alias scrl='screen -list'
-alias scrn='screen -U -S'
-alias scrr='screen -a -A -U -D -R'
+if ! zstyle -t ':prezto:module:screen:alias' skip; then
+ alias scr='screen'
+ alias scrl='screen -list'
+ alias scrn='screen -U -S'
+ alias scrr='screen -a -A -U -D -R'
+fi
diff --git a/modules/ssh/init.zsh b/modules/ssh/init.zsh
index f8709979..6bf237c5 100644
--- a/modules/ssh/init.zsh
+++ b/modules/ssh/init.zsh
@@ -16,8 +16,8 @@ _ssh_dir="$HOME/.ssh"
# Set the path to the environment file if not set by another module.
_ssh_agent_env="${_ssh_agent_env:-${XDG_CACHE_HOME:-$HOME/.cache}/prezto/ssh-agent.env}"
-# Set the path to the persistent authentication socket.
-_ssh_agent_sock="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/ssh-agent.sock"
+# Set the path to the persistent authentication socket if not set by another module.
+_ssh_agent_sock="${_ssh_agent_sock:-${XDG_CACHE_HOME:-$HOME/.cache}/prezto/ssh-agent.sock}"
# Start ssh-agent if not started.
if [[ ! -S "$SSH_AUTH_SOCK" ]]; then
diff --git a/modules/syntax-highlighting/external b/modules/syntax-highlighting/external
index 932e29a0..db085e46 160000
--- a/modules/syntax-highlighting/external
+++ b/modules/syntax-highlighting/external
@@ -1 +1 @@
-Subproject commit 932e29a0c75411cb618f02995b66c0a4a25699bc
+Subproject commit db085e4661f6aafd24e5acb5b2e17e4dd5dddf3e
diff --git a/modules/tmux/README.md b/modules/tmux/README.md
index e7ae929d..f6d375b0 100644
--- a/modules/tmux/README.md
+++ b/modules/tmux/README.md
@@ -53,6 +53,13 @@ Read [iTerm2 and tmux Integration][7] for more information.
## Aliases
+Aliases are enabled by default. To disable them, add the following to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_.
+
+```sh
+zstyle ':prezto:module:tmux:alias' skip 'yes'
+```
+
- `tmuxa` attaches or switches to a tmux session.
- `tmuxl` lists sessions managed by the tmux server.
diff --git a/modules/tmux/init.zsh b/modules/tmux/init.zsh
index 2075daa3..17006c82 100644
--- a/modules/tmux/init.zsh
+++ b/modules/tmux/init.zsh
@@ -45,5 +45,7 @@ fi
# Aliases
#
-alias tmuxa="tmux $_tmux_iterm_integration new-session -A"
-alias tmuxl='tmux list-sessions'
+if ! zstyle -t ':prezto:module:tmux:alias' skip; then
+ alias tmuxa="tmux $_tmux_iterm_integration new-session -A"
+ alias tmuxl='tmux list-sessions'
+fi
diff --git a/modules/utility/README.md b/modules/utility/README.md
index 142b1eae..78a75556 100644
--- a/modules/utility/README.md
+++ b/modules/utility/README.md
@@ -140,7 +140,6 @@ zstyle ':prezto:module:utility' correct 'no'
- `lt` lists sorted by date, most recent last.
- `lc` lists sorted by date, most recent last, shows change time.
- `lu` lists sorted by date, most recent last, shows access time.
-- `sl` lists directory contents (correction for `ls`).
### macOS Everywhere
diff --git a/modules/utility/init.zsh b/modules/utility/init.zsh
index c9015915..5b4bf80e 100644
--- a/modules/utility/init.zsh
+++ b/modules/utility/init.zsh
@@ -76,7 +76,7 @@ if zstyle -T ':prezto:module:utility' safe-ops; then
fi
# ls
-if [[ ${(@M)${(f)"$(ls --version 2>&1)"}:#*GNU *} ]]; then
+if [[ ${(@M)${(f)"$(ls --version 2>&1)"}:#*(GNU|lsd) *} ]]; then
# GNU Core Utilities
if zstyle -T ':prezto:module:utility:ls' dirs-first; then
@@ -88,7 +88,7 @@ if [[ ${(@M)${(f)"$(ls --version 2>&1)"}:#*GNU *} ]]; then
if (( ! $+LS_COLORS )); then
# Try dircolors when available
if is-callable 'dircolors'; then
- eval "$(dircolors --sh $HOME/.dir_colors(.N))"
+ eval "$(dircolors --sh $HOME/.dir_colors(N))"
else
export LS_COLORS='di=34:ln=35:so=32:pi=33:ex=31:bd=36;01:cd=33;01:su=31;40;07:sg=36;40;07:tw=32;40;07:ow=33;40;07:'
fi
@@ -122,7 +122,6 @@ alias lk='ll -Sr' # Lists sorted by size, largest last.
alias lt='ll -tr' # Lists sorted by date, most recent last.
alias lc='lt -c' # Lists sorted by date, most recent last, shows change time.
alias lu='lt -u' # Lists sorted by date, most recent last, shows access time.
-alias sl='ls' # Correction for common spelling error.
if [[ ${(@M)${(f)"$(ls --version 2>&1)"}:#*GNU *} ]]; then
alias lx='ll -XB' # Lists sorted by extension (GNU only).
diff --git a/runcoms/zlogin b/runcoms/zlogin
index ac4d3422..2f834353 100644
--- a/runcoms/zlogin
+++ b/runcoms/zlogin
@@ -10,7 +10,10 @@
# Compile the completion dump to increase startup speed.
zcompdump="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/zcompdump"
if [[ -s "$zcompdump" && (! -s "${zcompdump}.zwc" || "$zcompdump" -nt "${zcompdump}.zwc") ]]; then
- zcompile "$zcompdump"
+ if command mkdir "${zcompdump}.zwc.lock" 2>/dev/null; then
+ zcompile "$zcompdump"
+ command rmdir "${zcompdump}.zwc.lock" 2>/dev/null
+ fi
fi
} &!
diff --git a/runcoms/zpreztorc b/runcoms/zpreztorc
index f921c186..b0bfe5aa 100644
--- a/runcoms/zpreztorc
+++ b/runcoms/zpreztorc
@@ -62,6 +62,9 @@ zstyle ':prezto:load' pmodule \
# Editor
#
+# Set the characters that are considered to be part of a word.
+# zstyle ':prezto:module:editor' wordchars '*?_-.[]~&;!#$%^(){}<>'
+
# Set the key mapping style to 'emacs' or 'vi'.
zstyle ':prezto:module:editor' key-bindings 'emacs'
@@ -111,6 +114,18 @@ zstyle ':prezto:module:history' histfile "${ZDOTDIR:-$HOME}/.zsh_history"
# Set the search globbing flags.
# zstyle ':prezto:module:history-substring-search' globbing-flags ''
+# Enable search case-sensitivity.
+# zstyle ':prezto:module:history-substring-search' case-sensitive 'yes'
+
+# Enable search for fuzzy matches.
+# zstyle ':prezto:module:history-substring-search' fuzzy 'yes'
+
+# Enable search uniqueness.
+# zstyle ':prezto:module:history-substring-search' unique 'yes'
+
+# Enable prefixed search.
+# zstyle ':prezto:module:history-substring-search' prefixed 'yes'
+
#
# macOS
#