summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/cabal/cabal.plugin.zsh40
-rw-r--r--plugins/git/git.plugin.zsh4
-rw-r--r--plugins/grunt/grunt.plugin.zsh253
-rw-r--r--plugins/history-substring-search/README7
-rw-r--r--plugins/history-substring-search/README.markdown7
-rw-r--r--plugins/mix/_mix1
-rw-r--r--plugins/mvn/mvn.plugin.zsh2
-rw-r--r--plugins/npm/npm.plugin.zsh6
-rw-r--r--plugins/osx/osx.plugin.zsh1
-rw-r--r--plugins/perl/perl.plugin.zsh8
-rw-r--r--plugins/ubuntu/readme.md21
-rw-r--r--plugins/ubuntu/ubuntu.plugin.zsh141
-rw-r--r--plugins/vagrant/_vagrant2
-rw-r--r--plugins/vi-mode/vi-mode.plugin.zsh5
14 files changed, 476 insertions, 22 deletions
diff --git a/plugins/cabal/cabal.plugin.zsh b/plugins/cabal/cabal.plugin.zsh
index 9f76add7a..cf7d2cf5e 100644
--- a/plugins/cabal/cabal.plugin.zsh
+++ b/plugins/cabal/cabal.plugin.zsh
@@ -45,3 +45,43 @@ function _cabal_commands() {
}
compdef _cabal_commands cabal
+
+function _cab_commands() {
+ local ret=1 state
+ _arguments ':subcommand:->subcommand' && ret=0
+
+ case $state in
+ subcommand)
+ subcommands=(
+ "sync:Fetch the latest package index"
+ "install:Install packages"
+ "uninstall:Uninstall packages"
+ "installed:List installed packages"
+ "configure:Configure a cabal package"
+ "build:Build a cabal package"
+ "clean:Clean up a build directory"
+ "outdated:Display outdated packages"
+ "info:Display information of a package"
+ "sdist:Make tar.gz for source distribution"
+ "upload:Uploading tar.gz to HackageDB"
+ "get:Untar a package in the current directory"
+ "deps:Show dependencies of this package"
+ "revdeps:Show reverse dependencies of this package"
+ "check:Check consistency of packages"
+ "genpaths:Generate Paths_<pkg>.hs"
+ "search:Search available packages by package name"
+ "add:Add a source directory"
+ "test:Run tests"
+ "bench:Run benchmarks"
+ "doc:Generate manuals"
+ "ghci:Run GHCi (with a sandbox)"
+ "init:Initialize a sandbox"
+ "help:Display the help message of the command"
+ )
+ _describe -t subcommands 'cab subcommands' subcommands && ret=0
+ esac
+
+ return ret
+}
+
+command -v cab >/dev/null 2>&1 && { compdef _cab_commands cab }
diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh
index bf7cd1ac9..bde219dae 100644
--- a/plugins/git/git.plugin.zsh
+++ b/plugins/git/git.plugin.zsh
@@ -75,6 +75,7 @@ compdef _git gss=git-status
alias ga='git add'
compdef _git ga=git-add
alias gap='git add --patch'
+alias gaa='git add --all'
alias gm='git merge'
compdef _git gm=git-merge
alias grh='git reset HEAD'
@@ -174,6 +175,3 @@ alias gignore='git update-index --assume-unchanged'
alias gunignore='git update-index --no-assume-unchanged'
# list temporarily ignored files
alias gignored='git ls-files -v | grep "^[[:lower:]]"'
-
-
-
diff --git a/plugins/grunt/grunt.plugin.zsh b/plugins/grunt/grunt.plugin.zsh
new file mode 100644
index 000000000..48f6cb5a2
--- /dev/null
+++ b/plugins/grunt/grunt.plugin.zsh
@@ -0,0 +1,253 @@
+#compdef grunt
+# -----------------------------------------------------------------------------
+# _grunt
+#
+# Completion script for grunt.
+# - https://github.com/gruntjs/grunt
+# - https://github.com/gruntjs/grunt-cli
+#
+# -----------------------------------------------------------------------------
+#
+# Version : 0.1.0
+# Author : Yonchu <yuyuchu3333@gmail.com>
+# License : MIT License
+# Repository : https://github.com/yonchu/grunt-zsh-completion
+# Last Change : 22 Jul 2013.
+#
+# Copyright (c) 2013 Yonchu.
+#
+# -----------------------------------------------------------------------------
+# USAGE
+# -----
+#
+# Enable caching:
+#
+# If you want to use the cache, set the followings in your .zshrc:
+#
+# zstyle ':completion:*' use-cache yes
+#
+#
+# Settings:
+#
+# - Show grunt file path:
+# zstyle ':completion::complete:grunt::options:' show_grunt_path yes
+#
+# - Cache expiration days (default: 7):
+# zstyle ':completion::complete:grunt::options:' expire 1
+#
+# - Not update options cache if target gruntfile is changed.
+# zstyle ':completion::complete:grunt::options:' no_update_options yes
+#
+# Note that if you change the zstyle settings,
+# you should delete the cache file and restart zsh.
+#
+# $ rm ~/.zcompcache/grunt
+# $ exec zsh
+#
+# -----------------------------------------------------------------------------
+
+function _grunt() {
+ local curcontext="$curcontext" update_policy state
+ local show_grunt_path update_msg gruntfile opts tasks
+
+ # Setup cache-policy.
+ zstyle -s ":completion:${curcontext}:" cache-policy update_policy
+ if [[ -z $update_policy ]]; then
+ zstyle ":completion:${curcontext}:" cache-policy __grunt_caching_policy
+ fi
+
+ # Check show_path option.
+ zstyle -b ":completion:${curcontext}:options:" show_grunt_path show_grunt_path
+
+ # Get current gruntfile.
+ gruntfile=$(__grunt_get_gruntfile)
+
+ # Initialize opts and tasks.
+ opts=()
+ tasks=()
+
+ # Add help options.
+ opts+=('(- 1 *)'{-h,--help}'[Display this help text.]')
+
+ ## Complete without gruntfile.
+ if [[ ! -f $gruntfile ]]; then
+ _arguments "${opts[@]}"
+ return
+ fi
+
+ ## Complete with gruntfile.
+ # Retrieve cache.
+ if ! __grunt_update_cache "$gruntfile"; then
+ update_msg=' (cache updated)'
+ fi
+
+ # Make optioins completion.
+ if [[ ${#__grunt_opts} -gt 0 ]]; then
+ opts+=("${__grunt_opts[@]}")
+ fi
+
+ # Complete arguments.
+ _arguments \
+ "${opts[@]}" \
+ '*: :->tasks' \
+ && return
+
+ case $state in
+ tasks)
+ if [[ $show_grunt_path == 'yes' ]]; then
+ update_msg="$update_msg: ${${gruntfile/#$HOME/~}%/}"
+ fi
+ # Make tasks completion.
+ if [[ ${#__grunt_tasks} -gt 0 ]]; then
+ tasks+=("${__grunt_tasks[@]}")
+ _describe -t grunt-task "$verbose grunt task$update_msg" tasks || return 1
+ fi
+ ;;
+ esac
+
+ return 0
+}
+
+# Cache policy:
+# The cache file name: grunt
+# The cache variable name: __grunt_version __grunt_gruntfile __grunt_opts __grunt_tasks
+function __grunt_update_cache() {
+ # TODO
+ local version='0.1.0'
+ local is_updating=0
+ local gruntfile="$1"
+ local grunt_info no_update_options cache_path
+
+ # Check no_update_options option.
+ zstyle -b ":completion:${curcontext}:options:" no_update_options no_update_options
+
+
+ if ! ( (( $+__grunt_gruntfile )) \
+ && (( $+__grunt_opts )) \
+ && (( $+__grunt_tasks )) ) \
+ && ! _retrieve_cache 'grunt'; then
+ is_updating=1
+ fi
+
+ if [[ $gruntfile != $__grunt_gruntfile ]]; then
+ # Except for --help options.
+ __grunt_gruntfile=$gruntfile
+ if [[ $no_update_options == 'yes' ]]; then
+ if [[ $PREFIX == ${PREFIX#-} ]]; then
+ # Not options completions.
+ is_updating=1
+ elif [[ ${#__grunt_opts} -lt 2 ]]; then
+ is_updating=1
+ else
+ unset __grunt_gruntfile
+ fi
+ else
+ is_updating=1
+ fi
+ else
+ if [[ $PREFIX != ${PREFIX#-} && ${#__grunt_opts} -gt 1 ]]; then
+ unset __grunt_gruntfile
+ fi
+ fi
+
+ if _cache_invalid 'grunt'; then
+ is_updating=1
+ fi
+
+ # Check _grunt version.
+ if [[ $__grunt_version != $version ]]; then
+ is_updating=1
+ fi
+
+ if [[ $is_updating -ne 0 ]]; then
+ # Update caceh.
+ __grunt_version=$version
+ __grunt_gruntfile=$gruntfile
+ is_updating=1
+ grunt_info=$(grunt --help --no-color --gruntfile "$__grunt_gruntfile" 2>/dev/null)
+ __grunt_opts=(${(f)"$(__grunt_get_opts "$grunt_info")"})
+ __grunt_tasks=(${(f)"$(__grunt_get_tasks "$grunt_info")"})
+ _store_cache 'grunt' __grunt_version __grunt_gruntfile __grunt_opts __grunt_tasks
+ fi
+ return $is_updating
+}
+
+function __grunt_get_tasks() {
+ echo -E "$1" \
+ | grep 'Available tasks' -A 100 \
+ | grep '^ ' \
+ | sed -e 's/^[[:blank:]]*//' -e 's/[[:blank:]]*$//' \
+ | sed -e 's/ /:/'
+}
+
+function __grunt_get_opts() {
+ local opt_hunk opt_sep opt_num line opt
+ opt_hunk=$(echo -E "$1" \
+ | grep 'Options$' -A 100 \
+ | sed '1 d' \
+ | sed -e 's/[[:blank:]]*$//' \
+ )
+
+ opt_sep=()
+ opt_hunk=(${(f)opt_hunk})
+ opt_num=0
+ for line in "$opt_hunk[@]"; do
+ opt=$(echo -E "$line" | sed -e 's/^[[:blank:]]*//')
+ if [[ $line == $opt ]]; then
+ break
+ fi
+ if [[ $opt != ${opt#-} ]]; then
+ # Start with -
+ (( opt_num++ ))
+ opt=$(echo -E "$opt" | sed 's/^\(\(--[^ ]*\)\(, \(-[^ ]*\)\)*\) */\2\\t\4\\\t/')
+ fi
+ opt_sep[$opt_num]=("${opt_sep[$opt_num]}${opt}")
+ done
+
+ for line in "$opt_sep[@]"; do
+ opt=(${(s:\t:)line})
+ if [[ ${opt[1]} == '--help' ]]; then
+ continue
+ fi
+ if [[ ${#opt} -eq 2 ]]; then
+ echo -E "(${opt[1]})${opt[1]}[${opt[2]}]"
+ else
+ echo -E "(${opt[1]},${opt[2]})${opt[1]}[${opt[3]}]"
+ echo -E "(${opt[1]},${opt[2]})${opt[2]}[${opt[3]}]"
+ fi
+ done
+}
+
+function __grunt_get_gruntfile() {
+ local gruntfile
+ local curpath="$PWD"
+ while [ "$curpath" ]; do
+ for gruntfile in "$curpath/"{G,g}runtfile.{js,coffee}; do
+ if [[ -e "$gruntfile" ]]; then
+ echo "$gruntfile"
+ return
+ fi
+ done
+ curpath=${curpath%/*}
+ done
+ return 1
+}
+
+function __grunt_caching_policy() {
+ # Returns status zero if the completions cache needs rebuilding.
+
+ # Rebuild if .agignore more recent than cache.
+ if [[ -f $__grunt_gruntfile && $__grunt_gruntfile -nt $1 ]]; then
+ # Invalid cache because gruntfile is old.
+ return 0
+ fi
+
+ local -a oldp
+ local expire
+ zstyle -s ":completion:${curcontext}:options:" expire expire || expire=7
+ # Rebuild if cache is more than $expire days.
+ oldp=( "$1"(Nm+$expire) )
+ (( $#oldp ))
+}
+
+compdef _grunt grunt
diff --git a/plugins/history-substring-search/README b/plugins/history-substring-search/README
deleted file mode 100644
index be11adf76..000000000
--- a/plugins/history-substring-search/README
+++ /dev/null
@@ -1,7 +0,0 @@
-To activate this script, load it into an interactive ZSH session:
-
- % source history-substring-search.zsh
-
-See the "history-substring-search.zsh" file for more information:
-
- % sed -n '2,/^$/s/^#//p' history-substring-search.zsh | more
diff --git a/plugins/history-substring-search/README.markdown b/plugins/history-substring-search/README.markdown
new file mode 100644
index 000000000..143b813a1
--- /dev/null
+++ b/plugins/history-substring-search/README.markdown
@@ -0,0 +1,7 @@
+To activate this script, please include it the `plugins` variable within `~/.zshrc`
+
+ `plugins=(git history-substring-search.zsh)`
+
+See the "history-substring-search.zsh" file for more information:
+
+ `sed -n '2,/^$/s/^#//p' history-substring-search.zsh | more`
diff --git a/plugins/mix/_mix b/plugins/mix/_mix
index 602f5ffa0..b7c982e0a 100644
--- a/plugins/mix/_mix
+++ b/plugins/mix/_mix
@@ -21,6 +21,7 @@ _1st_arguments=(
'local.install:Install a task or an archive locally'
'local.rebar:Install rebar locally'
'local.uninstall:Uninstall local tasks or archives'
+ 'local.hex:Install Hex locally'
'new:Creates a new Elixir project'
'run:Run the given file or expression'
"test:Run a project's tests"
diff --git a/plugins/mvn/mvn.plugin.zsh b/plugins/mvn/mvn.plugin.zsh
index 0c4f77162..865b15235 100644
--- a/plugins/mvn/mvn.plugin.zsh
+++ b/plugins/mvn/mvn.plugin.zsh
@@ -60,6 +60,8 @@ alias mvntc='mvn tomcat:run'
alias mvnjetty='mvn jetty:run'
alias mvndt='mvn dependency:tree'
alias mvns='mvn site'
+alias mvnsrc='mvn dependency:sources'
+alias mvndocs='mvn dependency:resolve -Dclassifier=javadoc'
function listMavenCompletions {
reply=(
diff --git a/plugins/npm/npm.plugin.zsh b/plugins/npm/npm.plugin.zsh
index c3eb91d31..d19079b3f 100644
--- a/plugins/npm/npm.plugin.zsh
+++ b/plugins/npm/npm.plugin.zsh
@@ -1 +1,7 @@
eval "$(npm completion 2>/dev/null)"
+
+# Install and save to dependencies
+alias npms="npm i -S "
+
+# Install and save to dev-dependencies
+alias npmd="npm i -D "
diff --git a/plugins/osx/osx.plugin.zsh b/plugins/osx/osx.plugin.zsh
index d366f1fc8..d0f9f009a 100644
--- a/plugins/osx/osx.plugin.zsh
+++ b/plugins/osx/osx.plugin.zsh
@@ -35,6 +35,7 @@ EOF
set current_session to current session
tell current_session
write text "${command}"
+ keystroke return
end tell
end tell
end tell
diff --git a/plugins/perl/perl.plugin.zsh b/plugins/perl/perl.plugin.zsh
index f94c4195d..1fbf7c122 100644
--- a/plugins/perl/perl.plugin.zsh
+++ b/plugins/perl/perl.plugin.zsh
@@ -27,7 +27,7 @@ alias latest-perl='curl -s http://www.perl.org/get.html | perl -wlne '\''if (/pe
# Functions #################################################################
-# newpl - creates a basic Perl script file and opens it with $EDITOR
+# newpl - creates a basic Perl script file and opens it with $EDITOR
newpl () {
# set $EDITOR to 'vim' if it is undefined
[[ -z $EDITOR ]] && EDITOR=vim
@@ -54,9 +54,3 @@ pgs() { # [find] [replace] [filename]
prep() { # [pattern] [filename unless STDOUT]
perl -nle 'print if /'"$1"'/;' $2
}
-
-# say - append a newline to 'print'
-say() {
- print "$1\n"
-}
-
diff --git a/plugins/ubuntu/readme.md b/plugins/ubuntu/readme.md
new file mode 100644
index 000000000..c9ef61f4e
--- /dev/null
+++ b/plugins/ubuntu/readme.md
@@ -0,0 +1,21 @@
+This plugin was created because the aliases in the debian plugin are inconsistent and hard to remember. Also this apt-priority detection that switched between apt-get and aptitude was dropped to keep it simpler. This plugin uses apt-get for everything but a few things that are only possible with aptitude I guess. Ubuntu does not have aptitude installed by default.
+
+acs = Apt-Cache Search
+acp = Apt-Cache Policy
+
+ag = sudo Apt-Get
+agi = sudo Apt-Get Install
+agd = sudo Apt-Get Dselect-upgrade
+By now you already can guess almost all aliases
+
+There are two exeptions since ...
+agu = sudo Apt-Get Update - we have ...
+agug = sudo Apt-Get UpGrade - as the exeptional 4 letter alias for a single command.
+
+afs = Apt-File Search --regexp - this has the regexp switch on without being represented in the alias, I guess this makes sense since the debian plugin has it, I never used that command.
+
+Then there are the 2 other 4 letter aliases for combined commands, that are straight forward and easy to remember.
+aguu = sudo Apt-Get Update && sudo apt-get Upgrade - better then adg or not?
+agud = sudo Apt-Get Update && sudo apt-get Dist-upgrade
+
+For a full list aliases and the functions just watch the plugins code https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/ubuntu/ubuntu.plugin.zsh, look at the comments if you want to switch from the debian plugin. Ubuntu, Mint and & co users will like the new aar function to install packages from ppas with a single command.
diff --git a/plugins/ubuntu/ubuntu.plugin.zsh b/plugins/ubuntu/ubuntu.plugin.zsh
new file mode 100644
index 000000000..0211d3374
--- /dev/null
+++ b/plugins/ubuntu/ubuntu.plugin.zsh
@@ -0,0 +1,141 @@
+# Authors:
+# https://github.com/AlexBio
+# https://github.com/dbb
+# https://github.com/Mappleconfusers
+# Nicolas Jonas nextgenthemes.com
+#
+# Debian, Ubuntu and friends related zsh aliases and functions for zsh
+
+alias acs='apt-cache search'
+compdef _acs acs='apt-cache search'
+
+alias afs='apt-file search --regexp'
+compdef _afs afs='apt-file search --regexp'
+
+# These are apt-get only
+alias ags='apt-get source' # asrc
+compdef _ags ags='apt-get source'
+
+alias acp='apt-cache policy' # app
+compdef _acp acp='apt-cache policy'
+
+# superuser operations ######################################################
+alias afu='sudo apt-file update'
+compdef _afu afu='sudo apt-file update'
+
+alias ppap='sudo ppa-purge'
+compdef _ppap ppap='sudo ppa-purge'
+
+alias ag='sudo apt-get' # age - but without sudo
+alias aga='sudo apt-get autoclean' # aac
+alias agb='sudo apt-get build-dep' # abd
+alias agc='sudo apt-get clean' # adc
+alias agd='sudo apt-get dselect-upgrade' # ads
+alias agi='sudo apt-get install' # ai
+alias agp='sudo apt-get purge' # ap
+alias agr='sudo apt-get remove' # ar
+alias agu='sudo apt-get update' # ad
+alias agud='sudo apt-get update && sudo apt-get dist-upgrade' #adu
+alias agug='sudo apt-get upgrade' # ag
+alias aguu='sudo apt-get update && sudo apt-get upgrade' #adg
+
+compdef _ag ag='sudo apt-get'
+compdef _aga aga='sudo apt-get autoclean'
+compdef _agb agb='sudo apt-get build-dep'
+compdef _agc agc='sudo apt-get clean'
+compdef _agd agd='sudo apt-get dselect-upgrade'
+compdef _agi agi='sudo apt-get install'
+compdef _agp agp='sudo apt-get purge'
+compdef _agr agr='sudo apt-get remove'
+compdef _agu agu='sudo apt-get update'
+compdef _agud agud='sudo apt-get update && sudo apt-get dist-upgrade'
+compdef _agug agug='sudo apt-get upgrade'
+compdef _aguu aguu='sudo apt-get update && sudo apt-get upgrade'
+
+# Remove ALL kernel images and headers EXCEPT the one in use
+alias kclean='sudo aptitude remove -P ?and(~i~nlinux-(ima|hea) \
+ ?not(~n`uname -r`))'
+
+# Misc. #####################################################################
+# print all installed packages
+alias allpkgs='aptitude search -F "%p" --disable-columns ~i'
+
+# Create a basic .deb package
+alias mydeb='time dpkg-buildpackage -rfakeroot -us -uc'
+
+# apt-add-repository with automatic install/upgrade of the desired package
+# Usage: aar ppa:xxxxxx/xxxxxx [packagename]
+# If packagename is not given as 2nd arument the function will ask for it and guess the defaupt by taking
+# the part after the / from the ppa name wich is sometimes the right name for the package you want to install
+aar() {
+ if [ -n "$2" ]; then
+ PACKAGE=$2
+ else
+ read "PACKAGE?Type in the package name to install/upgrade with this ppa [${1##*/}]: "
+ fi
+
+ if [ -z "$PACKAGE" ]; then
+ PACKAGE=${1##*/}
+ fi
+
+ sudo apt-add-repository $1 && sudo apt-get update
+ sudo apt-get install $PACKAGE
+}
+
+# Prints apt history
+# Usage:
+# apt-history install
+# apt-history upgrade
+# apt-history remove
+# apt-history rollback
+# apt-history list
+# Based On: http://linuxcommando.blogspot.com/2008/08/how-to-show-apt-log-history.html
+apt-history () {
+ case "$1" in
+ install)
+ zgrep --no-filename 'install ' $(ls -rt /var/log/dpkg*)
+ ;;
+ upgrade|remove)
+ zgrep --no-filename $1 $(ls -rt /var/log/dpkg*)
+ ;;
+ rollback)
+ zgrep --no-filename upgrade $(ls -rt /var/log/dpkg*) | \
+ grep "$2" -A10000000 | \
+ grep "$3" -B10000000 | \
+ awk '{print $4"="$5}'
+ ;;
+ list)
+ zcat $(ls -rt /var/log/dpkg*)
+ ;;
+ *)
+ echo "Parameters:"
+ echo " install - Lists all packages that have been installed."
+ echo " upgrade - Lists all packages that have been upgraded."
+ echo " remove - Lists all packages that have been removed."
+ echo " rollback - Lists rollback information."
+ echo " list - Lists all contains of dpkg logs."
+ ;;
+ esac
+}
+
+# Kernel-package building shortcut
+kerndeb () {
+ # temporarily unset MAKEFLAGS ( '-j3' will fail )
+ MAKEFLAGS=$( print - $MAKEFLAGS | perl -pe 's/-j\s*[\d]+//g' )
+ print '$MAKEFLAGS set to '"'$MAKEFLAGS'"
+ appendage='-custom' # this shows up in $ (uname -r )
+ revision=$(date +"%Y%m%d") # this shows up in the .deb file name
+
+ make-kpkg clean
+
+ time fakeroot make-kpkg --append-to-version "$appendage" --revision \
+ "$revision" kernel_image kernel_headers
+}
+
+# List packages by size
+function apt-list-packages {
+ dpkg-query -W --showformat='${Installed-Size} ${Package} ${Status}\n' | \
+ grep -v deinstall | \
+ sort -n | \
+ awk '{print $1" "$2}'
+}
diff --git a/plugins/vagrant/_vagrant b/plugins/vagrant/_vagrant
index 0c82acd42..76f80b0d7 100644
--- a/plugins/vagrant/_vagrant
+++ b/plugins/vagrant/_vagrant
@@ -113,7 +113,7 @@ case $state in
(box)
__vagrant-box
;;
- (up|provision|package|destroy|reload|ssh|halt|resume|status)
+ (up|provision|package|destroy|reload|ssh|ssh-config|halt|resume|status)
_arguments ':feature:__vm_list'
esac
;;
diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh
index 1de8bf91a..4424bb29a 100644
--- a/plugins/vi-mode/vi-mode.plugin.zsh
+++ b/plugins/vi-mode/vi-mode.plugin.zsh
@@ -16,10 +16,7 @@ function zle-keymap-select zle-line-init zle-line-finish {
# Ensure that the prompt is redrawn when the terminal size changes.
TRAPWINCH() {
- if [[ -o zle ]]; then
- zle reset-prompt
- zle -R
- fi
+ zle && { zle reset-prompt; zle -R }
}
zle -N zle-line-init