summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/bundler/bundler.plugin.zsh1
-rw-r--r--plugins/capistrano/_capistrano6
-rw-r--r--plugins/capistrano/capistrano.plugin.zsh2
-rw-r--r--plugins/dircycle/dircycle.plugin.zsh16
-rw-r--r--plugins/github/README.md46
-rw-r--r--plugins/github/_github40
-rw-r--r--plugins/github/github.plugin.zsh101
-rw-r--r--plugins/gradle/gradle.plugin.zsh40
-rw-r--r--plugins/history-substring-search/README.markdown7
-rw-r--r--plugins/history-substring-search/README.md149
-rw-r--r--plugins/history-substring-search/history-substring-search.plugin.zsh15
-rw-r--r--plugins/history-substring-search/history-substring-search.zsh321
-rwxr-xr-xplugins/history-substring-search/update-from-upstream.zsh127
-rw-r--r--plugins/mercurial/README.md24
-rwxr-xr-xplugins/wd/wd.sh28
-rw-r--r--plugins/wp-cli/README.md4
-rw-r--r--plugins/wp-cli/wp-cli.plugin.zsh4
17 files changed, 563 insertions, 368 deletions
diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh
index dfff6956e..382a1a471 100644
--- a/plugins/bundler/bundler.plugin.zsh
+++ b/plugins/bundler/bundler.plugin.zsh
@@ -2,6 +2,7 @@ alias be="bundle exec"
alias bl="bundle list"
alias bp="bundle package"
alias bo="bundle open"
+alias bout="bundle outdated"
alias bu="bundle update"
alias bi="bundle_install"
alias bcn="bundle clean"
diff --git a/plugins/capistrano/_capistrano b/plugins/capistrano/_capistrano
index c19c20b7a..a79e47b2f 100644
--- a/plugins/capistrano/_capistrano
+++ b/plugins/capistrano/_capistrano
@@ -1,7 +1,7 @@
-#compdef shipit
+#compdef capit
#autoload
-# Added `shipit` because `cap` is a reserved word. `cap` completion doesn't work.
+# Added `capit` because `cap` is a reserved word. `cap` completion doesn't work.
# http://zsh.sourceforge.net/Doc/Release/Zsh-Modules.html#The-zsh_002fcap-Module
local curcontext="$curcontext" state line ret=1
@@ -14,7 +14,7 @@ _arguments -C \
_cap_tasks() {
if [[ -f config/deploy.rb || -f Capfile ]]; then
if [[ ! -f .cap_tasks~ ]]; then
- shipit --tasks | sed 's/\(\[\)\(.*\)\(\]\)/\2:/' | awk '{command=$2; $1=$2=$3=""; gsub(/^[ \t\r\n]+/, "", $0); gsub(":", "\\:", command); print command"["$0"]"}' > .cap_tasks~
+ capit --tasks | sed 's/\(\[\)\(.*\)\(\]\)/\2:/' | awk '{command=$2; $1=$2=$3=""; gsub(/^[ \t\r\n]+/, "", $0); gsub(":", "\\:", command); print command"["$0"]"}' > .cap_tasks~
fi
OLD_IFS=$IFS
diff --git a/plugins/capistrano/capistrano.plugin.zsh b/plugins/capistrano/capistrano.plugin.zsh
index c85eb474c..0b5559791 100644
--- a/plugins/capistrano/capistrano.plugin.zsh
+++ b/plugins/capistrano/capistrano.plugin.zsh
@@ -1,7 +1,7 @@
# Added `shipit` because `cap` is a reserved word. `cap` completion doesn't work.
# http://zsh.sourceforge.net/Doc/Release/Zsh-Modules.html#The-zsh_002fcap-Module
-func shipit() {
+func capit() {
if [ -f Gemfile ]
then
bundle exec cap $*
diff --git a/plugins/dircycle/dircycle.plugin.zsh b/plugins/dircycle/dircycle.plugin.zsh
index 1e31105b1..8a406b54d 100644
--- a/plugins/dircycle/dircycle.plugin.zsh
+++ b/plugins/dircycle/dircycle.plugin.zsh
@@ -27,11 +27,11 @@ insert-cycledright () {
zle -N insert-cycledright
-# add key bindings for iTerm2
-if [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then
- bindkey "^[[1;6D" insert-cycledleft
- bindkey "^[[1;6C" insert-cycledright
-else
- bindkey "\e[1;6D" insert-cycledleft
- bindkey "\e[1;6C" insert-cycledright
-fi \ No newline at end of file
+# These sequences work for xterm, Apple Terminal.app, and probably others.
+# Not for rxvt-unicode, but it doesn't seem differentiate Ctrl-Shift-Arrow
+# from plain Shift-Arrow, at least by default.
+# iTerm2 does not have these key combinations defined by default; you will need
+# to add them under "Keys" in your profile if you want to use this. You can do
+# this conveniently by loading the "xterm with Numeric Keypad" preset.
+bindkey "\e[1;6D" insert-cycledleft
+bindkey "\e[1;6C" insert-cycledright
diff --git a/plugins/github/README.md b/plugins/github/README.md
new file mode 100644
index 000000000..21b7367f7
--- /dev/null
+++ b/plugins/github/README.md
@@ -0,0 +1,46 @@
+# github
+
+This plugin supports working with GitHub the command line. It provides a few things:
+
+* Sets up the `hub` wrapper and completions for the `git` command if you have `hub` installed.
+* Completion for the `github` Ruby gem.
+* Convenience functions for working with repos and URLs.
+
+### Functions
+
+* `empty_gh` - Creates a new empty repo (with a `README.md`) and pushes it to GitHub
+* `new_gh` - Initializes an existing directory as a repo and pushes it to GitHub
+* `exist_gh` - Takes an existing repo and pushes it to GitHub
+* `git.io` - Shortens a URL using [git.io](http://git.io)
+
+
+## Installation
+
+[Hub](http://github.com/github/hub) needs to be installed if you want to use it. On OS X with Homebrew, this can be done with `brew install hub`. The `hub` completion definition needs to be added to your `$FPATH` before initializing OMZ.
+
+The [`github` Ruby gem](http://github.com/defunkt/github-gem) needs to be installed if you want to use it.
+
+### Configuration
+
+These settings affect `github`'s behavior.
+
+#### Environment variables
+
+* `$GITHUB_USER`
+* `$GITHUB_PASSWORD`
+
+#### Git configuration options
+
+* `github.user` - GitHub username for repo operations
+
+See `man hub` for more details.
+
+### Homebrew installation note
+
+If you have installed `hub` using Homebrew, its completions may not be on your `$FPATH` if you are using the system `zsh`. Homebrew installs `zsh` completion definitions to `/usr/local/share/zsh/site-functions`, which on `$FPATH` for the Homebrew-installed `zsh`, but not for the system `zsh`. If you want it to work with the system `zsh`, add this to your `~/.zshrc` before it sources `oh-my-zsh.sh`.
+
+```zsh
+if (( ! ${fpath[(I)/usr/local/share/zsh/site-functions]} )); then
+ FPATH=/usr/local/share/zsh/site-functions:$FPATH
+fi
+```
diff --git a/plugins/github/_github b/plugins/github/_github
deleted file mode 100644
index 83e1713c7..000000000
--- a/plugins/github/_github
+++ /dev/null
@@ -1,40 +0,0 @@
-#compdef github
-#autoload
-
-# in order to make this work, you will need to have the github gem installed
-# http://github.com/defunkt/github-gem
-
-# github zsh completion, based on homebrew completion
-
-local -a _1st_arguments
-_1st_arguments=(
- 'browse:Open this repo in a web browser'
- 'clone:Clone a repo'
- 'config:Automatically set configuration info, or pass args to specify'
- 'create-from-local:Create a new GitHub repository from the current local repository'
- 'create:Create a new empty GitHub repository'
- 'fetch:Fetch from a remote to a local branch'
- 'fetch_all:Fetch all refs from a user'
- 'fork:Forks a GitHub repository'
- 'home:Open this repos master branch in a web browser'
- 'ignore:Ignore a SHA from github network commits'
- 'info:Info about this project'
- 'issues:Project issues tools'
- 'network:Project network tools - sub-commands : web [user], list, fetch, commits'
- 'open:Open the given user/project in a web browser'
- 'pull-request:Generate the text for a pull request'
- 'pull:Pull from a remote'
- 'search:Search GitHub for the given repository name'
- 'track:Track another users repository'
-)
-
-local expl
-local -a pkgs installed_pkgs
-
-_arguments \
- '*:: :->subcmds' && return 0
-
-if (( CURRENT == 1 )); then
- _describe -t commands "github subcommand" _1st_arguments
- return
-fi
diff --git a/plugins/github/github.plugin.zsh b/plugins/github/github.plugin.zsh
index bd69b1bd5..ca19901fd 100644
--- a/plugins/github/github.plugin.zsh
+++ b/plugins/github/github.plugin.zsh
@@ -1,56 +1,25 @@
-# Setup hub function for git, if it is available; http://github.com/defunkt/hub
-if [ "$commands[(I)hub]" ] && [ "$commands[(I)ruby]" ]; then
- # Autoload _git completion functions
- if declare -f _git > /dev/null; then
- _git
- fi
-
- if declare -f _git_commands > /dev/null; then
- _hub_commands=(
- 'alias:show shell instructions for wrapping git'
- 'pull-request:open a pull request on GitHub'
- 'fork:fork origin repo on GitHub'
- 'create:create new repo on GitHub for the current project'
- 'browse:browse the project on GitHub'
- 'compare:open GitHub compare view'
- )
- # Extend the '_git_commands' function with hub commands
- eval "$(declare -f _git_commands | sed -e 's/base_commands=(/base_commands=(${_hub_commands} /')"
- fi
- # eval `hub alias -s zsh`
- function git(){
- if ! (( $+_has_working_hub )); then
- hub --version &> /dev/null
- _has_working_hub=$(($? == 0))
- fi
- if (( $_has_working_hub )) ; then
- hub "$@"
- else
- command git "$@"
- fi
- }
+# Set up hub wrapper for git, if it is available; http://github.com/github/hub
+if [ "$commands[(I)hub]" ]; then
+ if hub --version &>/dev/null; then
+ eval $(hub alias -s zsh)
+ fi
fi
# Functions #################################################################
-# https://github.com/dbb
+# Based on https://github.com/dbb/githome/blob/master/.config/zsh/functions
-
-# empty_gh [NAME_OF_REPO]
+# empty_gh <NAME_OF_REPO>
#
# Use this when creating a new repo from scratch.
+# Creates a new repo with a blank README.md in it and pushes it up to GitHub.
empty_gh() { # [NAME_OF_REPO]
- repo=$1
- ghuser=$( git config github.user )
+ emulate -L zsh
+ local repo=$1
- mkdir "$repo"
- cd "$repo"
- git init
- touch README
- git add README
- git commit -m 'Initial commit.'
- git remote add origin git@github.com:${ghuser}/${repo}.git
- git push -u origin master
+ mkdir "$repo"
+ touch "$repo/README.md"
+ new_gh "$repo"
}
# new_gh [DIRECTORY]
@@ -58,16 +27,25 @@ empty_gh() { # [NAME_OF_REPO]
# Use this when you have a directory that is not yet set up for git.
# This function will add all non-hidden files to git.
new_gh() { # [DIRECTORY]
- cd "$1"
- ghuser=$( git config github.user )
+ emulate -L zsh
+ local repo="$1"
+ cd "$repo" \
+ || return
- git init
- # add all non-dot files
- print '.*'"\n"'*~' >> .gitignore
- git add ^.*
- git commit -m 'Initial commit.'
- git remote add origin git@github.com:${ghuser}/${repo}.git
- git push -u origin master
+ git init \
+ || return
+ # add all non-dot files
+ print '.*'"\n"'*~' >> .gitignore
+ git add [^.]* \
+ || return
+ git add .gitignore \
+ || return
+ git commit -m 'Initial commit.' \
+ || return
+ hub create \
+ || return
+ git push -u origin master \
+ || return
}
# exist_gh [DIRECTORY]
@@ -75,13 +53,13 @@ new_gh() { # [DIRECTORY]
# Use this when you have a git repo that's ready to go and you want to add it
# to your GitHub.
exist_gh() { # [DIRECTORY]
- cd "$1"
- name=$( git config user.name )
- ghuser=$( git config github.user )
- repo=$1
+ emulate -L zsh
+ local repo=$1
+ cd "$repo"
- git remote add origin git@github.com:${ghuser}/${repo}.git
- git push -u origin master
+ hub create \
+ || return
+ git push -u origin master
}
# git.io "GitHub URL"
@@ -91,7 +69,10 @@ exist_gh() { # [DIRECTORY]
# source: https://github.com/nvogel/dotzsh
# documentation: https://github.com/blog/985-git-io-github-url-shortener
#
-git.io() {curl -i -s http://git.io -F "url=$1" | grep "Location" | cut -f 2 -d " "}
+git.io() {
+ emulate -L zsh
+ curl -i -s http://git.io -F "url=$1" | grep "Location" | cut -f 2 -d " "
+}
# End Functions #############################################################
diff --git a/plugins/gradle/gradle.plugin.zsh b/plugins/gradle/gradle.plugin.zsh
index 661c29d5b..a908eaeaa 100644
--- a/plugins/gradle/gradle.plugin.zsh
+++ b/plugins/gradle/gradle.plugin.zsh
@@ -1,4 +1,3 @@
-#!zsh
##############################################################################
# A descriptive listing of core Gradle commands
############################################################################
@@ -54,22 +53,11 @@ function _gradle_arguments() {
##############################################################################
-# Are we in a directory containing a build.gradle file?
-############################################################################
-function in_gradle() {
- if [[ -f build.gradle ]]; then
- echo 1
- fi
-}
-
-############################################################################## Examine the build.gradle file to see if its
-# timestamp has changed, and if so, regen
-# the .gradle_tasks cache file
+# Examine the build.gradle file to see if its timestamp has changed;
+# and if so, regenerate the .gradle_tasks cache file
############################################################################
_gradle_does_task_list_need_generating () {
- [ ! -f .gradletasknamecache ] && return 0;
- [ build.gradle -nt .gradletasknamecache ] && return 0;
- return 1;
+ [[ ! -f .gradletasknamecache ]] || [[ build.gradle -nt .gradletasknamecache ]]
}
@@ -77,22 +65,22 @@ _gradle_does_task_list_need_generating () {
# Discover the gradle tasks by running "gradle tasks --all"
############################################################################
_gradle_tasks () {
- if [ in_gradle ]; then
+ if [[ -f build.gradle ]]; then
_gradle_arguments
if _gradle_does_task_list_need_generating; then
- gradle tasks --all | grep "^[ ]*[a-zA-Z0-9:]*\ -\ " | sed "s/ - .*$//" | sed "s/[\ ]*//" > .gradletasknamecache
+ gradle tasks --all | awk '/[a-zA-Z0-9:-]* - / {print $1}' > .gradletasknamecache
fi
- compadd -X "==== Gradle Tasks ====" `cat .gradletasknamecache`
+ compadd -X "==== Gradle Tasks ====" $(cat .gradletasknamecache)
fi
}
_gradlew_tasks () {
- if [ in_gradle ]; then
+ if [[ -f build.gradle ]]; then
_gradle_arguments
if _gradle_does_task_list_need_generating; then
- ./gradlew tasks --all | grep "^[ ]*[a-zA-Z0-9:]*\ -\ " | sed "s/ - .*$//" | sed "s/[\ ]*//" > .gradletasknamecache
+ ./gradlew tasks --all | awk '/[a-zA-Z0-9:-]* - / {print $1}' > .gradletasknamecache
fi
- compadd -X "==== Gradlew Tasks ====" `cat .gradletasknamecache`
+ compadd -X "==== Gradlew Tasks ====" $(cat .gradletasknamecache)
fi
}
@@ -102,13 +90,3 @@ _gradlew_tasks () {
############################################################################
compdef _gradle_tasks gradle
compdef _gradlew_tasks gradlew
-
-
-##############################################################################
-# Open questions for future improvements:
-# 1) Should 'gradle tasks' use --all or just the regular set?
-# 2) Should gradlew use the same approach as gradle?
-# 3) Should only the " - " be replaced with a colon so it can work
-# with the richer descriptive method of _arguments?
-# gradle tasks | grep "^[a-zA-Z0-9]*\ -\ " | sed "s/ - /\:/"
-#############################################################################
diff --git a/plugins/history-substring-search/README.markdown b/plugins/history-substring-search/README.markdown
deleted file mode 100644
index c154afdce..000000000
--- a/plugins/history-substring-search/README.markdown
+++ /dev/null
@@ -1,7 +0,0 @@
-To activate this script, please include it the `plugins` variable within `~/.zshrc`
-
- `plugins=(git history-substring-search)`
-
-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.md b/plugins/history-substring-search/README.md
new file mode 100644
index 000000000..0c02e91b1
--- /dev/null
+++ b/plugins/history-substring-search/README.md
@@ -0,0 +1,149 @@
+zsh-history-substring-search
+==============================================================================
+
+This is a clean-room implementation of the [Fish shell][1]'s history search
+feature, where you can type in any part of any previously entered command
+and press the UP and DOWN arrow keys to cycle through the matching commands.
+You can also use K and J in VI mode or ^P and ^N in EMACS mode for the same.
+
+[1]: http://fishshell.com
+[2]: http://www.zsh.org/mla/users/2009/msg00818.html
+[3]: http://sourceforge.net/projects/fizsh/
+[4]: https://github.com/robbyrussell/oh-my-zsh/pull/215
+[5]: https://github.com/zsh-users/zsh-history-substring-search
+[6]: https://github.com/zsh-users/zsh-syntax-highlighting
+
+------------------------------------------------------------------------------
+Requirements
+------------------------------------------------------------------------------
+
+* [ZSH](http://zsh.sourceforge.net) 4.3 or newer
+
+------------------------------------------------------------------------------
+Usage
+------------------------------------------------------------------------------
+
+1. Load this script into your interactive ZSH session:
+
+ % source zsh-history-substring-search.zsh
+
+ If you want to use [zsh-syntax-highlighting][6] along with this script,
+ then make sure that you load it *before* you load this script:
+
+ % source zsh-syntax-highlighting.zsh
+ % source zsh-history-substring-search.zsh
+
+2. Bind keyboard shortcuts to this script's functions:
+
+ # bind UP and DOWN arrow keys
+ zmodload zsh/terminfo
+ bindkey "$terminfo[kcuu1]" history-substring-search-up
+ bindkey "$terminfo[kcud1]" history-substring-search-down
+
+ # bind UP and DOWN arrow keys (compatibility fallback
+ # for Ubuntu 12.04, Fedora 21, and MacOSX 10.9 users)
+ bindkey '^[[A' history-substring-search-up
+ bindkey '^[[B' history-substring-search-down
+
+ # bind P and N for EMACS mode
+ bindkey -M emacs '^P' history-substring-search-up
+ bindkey -M emacs '^N' history-substring-search-down
+
+ # bind k and j for VI mode
+ bindkey -M vicmd 'k' history-substring-search-up
+ bindkey -M vicmd 'j' history-substring-search-down
+
+3. Type any part of any previous command and then:
+
+ * Press the UP arrow key to select the nearest command that (1) contains
+ your query and (2) is older than the current command in the command
+ history.
+
+ * Press the DOWN arrow key to select the nearest command that (1)
+ contains your query and (2) is newer than the current command in the
+ command history.
+
+ * Press ^U (the Control and U keys simultaneously) to abort the search.
+
+4. If a matching command spans more than one line of text, press the LEFT
+ arrow key to move the cursor away from the end of the command, and then:
+
+ * Press the UP arrow key to move the cursor to the line above. When the
+ cursor reaches the first line of the command, pressing the UP arrow
+ key again will cause this script to perform another search.
+
+ * Press the DOWN arrow key to move the cursor to the line below. When
+ the cursor reaches the last line of the command, pressing the DOWN
+ arrow key again will cause this script to perform another search.
+
+------------------------------------------------------------------------------
+Configuration
+------------------------------------------------------------------------------
+
+This script defines the following global variables. You may override their
+default values only after having loaded this script into your ZSH session.
+
+* HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND is a global variable that defines
+ how the query should be highlighted inside a matching command. Its default
+ value causes this script to highlight using bold, white text on a magenta
+ background. See the "Character Highlighting" section in the zshzle(1) man
+ page to learn about the kinds of values you may assign to this variable.
+
+* HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND is a global variable that
+ defines how the query should be highlighted when no commands in the
+ history match it. Its default value causes this script to highlight using
+ bold, white text on a red background. See the "Character Highlighting"
+ section in the zshzle(1) man page to learn about the kinds of values you
+ may assign to this variable.
+
+* HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS is a global variable that defines
+ how the command history will be searched for your query. Its default value
+ causes this script to perform a case-insensitive search. See the "Globbing
+ Flags" section in the zshexpn(1) man page to learn about the kinds of
+ values you may assign to this variable.
+
+To always receive _unique_ search results, use `setopt HIST_IGNORE_ALL_DUPS`.
+Alternatively, use `setopt HIST_FIND_NO_DUPS` which makes this plugin skip
+duplicate _adjacent_ search results as you cycle through them---however, this
+does not guarantee that search results are unique: if your search results were
+"Dog", "Dog", "HotDog", "Dog", then cycling them gives "Dog", "HotDog", "Dog".
+Notice that the "Dog" search result appeared twice as you cycled through them!
+If you wish to avoid this limitation, then use `setopt HIST_IGNORE_ALL_DUPS`.
+
+------------------------------------------------------------------------------
+History
+------------------------------------------------------------------------------
+
+This script was originally written by [Peter Stephenson][2], who published it
+to the ZSH users mailing list (thereby making it public domain) in September
+2009. It was later revised by Guido van Steen and released under the BSD
+license (see below) as part of [the fizsh project][3] in January 2011.
+
+It was later extracted from fizsh release 1.0.1, refactored heavily, and
+repackaged as both an [oh-my-zsh plugin][4] and as an independently loadable
+[ZSH script][5] by Suraj N. Kurapati in 2011.
+
+It was [further developed][4] by Guido van Steen, Suraj N. Kurapati, Sorin
+Ionescu, and Vincent Guerci in 2011.
+
+------------------------------------------------------------------------------
+Oh My Zsh Distribution Notes
+------------------------------------------------------------------------------
+
+What you are looking at now is Oh My Zsh's repackaging of zsh-history-substring-search
+as an OMZ module inside the Oh My Zsh distribution.
+
+The upstream repo, zsh-users/zsh-history-substring-search, can be found on GitHub at
+https://github.com/zsh-users/zsh-history-substring-search.
+
+This downstream copy was last updated from the following upstream commit:
+
+ SHA: 2c295432175990c1bb4e90bc13f609daa67a25d6
+ Commit date: 2015-09-28 10:47:34 -0700
+
+Everything above this section is a copy of the original upstream's README, so things
+may differ slightly when you're using this inside OMZ. In particular, you do not
+need to set up key bindings for the up and down arrows yourself in `~/.zshrc`; the OMZ
+plugin does that for you. You may still want to set up additional emacs- or vi-specific
+bindings as mentioned above.
+
diff --git a/plugins/history-substring-search/history-substring-search.plugin.zsh b/plugins/history-substring-search/history-substring-search.plugin.zsh
index 99a5922c5..25fd3a2da 100644
--- a/plugins/history-substring-search/history-substring-search.plugin.zsh
+++ b/plugins/history-substring-search/history-substring-search.plugin.zsh
@@ -1,6 +1,6 @@
-# This file integrates the history-substring-search script into oh-my-zsh.
+# This file integrates the zsh-history-substring-search script into oh-my-zsh.
-source "$ZSH/plugins/history-substring-search/history-substring-search.zsh"
+source "${0:r:r}.zsh"
if test "$CASE_SENSITIVE" = true; then
unset HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS
@@ -10,3 +10,14 @@ if test "$DISABLE_COLOR" = true; then
unset HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND
unset HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND
fi
+
+
+# Bind terminal-specific up and down keys
+
+if [[ -n "$terminfo[kcuu1]" ]]; then
+ bindkey "$terminfo[kcuu1]" history-substring-search-up
+fi
+if [[ -n "$terminfo[kcud1]" ]]; then
+ bindkey "$terminfo[kcud1]" history-substring-search-down
+fi
+
diff --git a/plugins/history-substring-search/history-substring-search.zsh b/plugins/history-substring-search/history-substring-search.zsh
index 65f0750db..ad316acc8 100644
--- a/plugins/history-substring-search/history-substring-search.zsh
+++ b/plugins/history-substring-search/history-substring-search.zsh
@@ -1,95 +1,4 @@
#!/usr/bin/env zsh
-#
-# This is a clean-room implementation of the Fish[1] shell's history search
-# feature, where you can type in any part of any previously entered command
-# and press the UP and DOWN arrow keys to cycle through the matching commands.
-#
-#-----------------------------------------------------------------------------
-# Usage
-#-----------------------------------------------------------------------------
-#
-# 1. Load this script into your interactive ZSH session:
-#
-# % source history-substring-search.zsh
-#
-# If you want to use the zsh-syntax-highlighting[6] script along with this
-# script, then make sure that you load it *before* you load this script:
-#
-# % source zsh-syntax-highlighting.zsh
-# % source history-substring-search.zsh
-#
-# 2. Type any part of any previous command and then:
-#
-# * Press the UP arrow key to select the nearest command that (1) contains
-# your query and (2) is older than the current command in the command
-# history.
-#
-# * Press the DOWN arrow key to select the nearest command that (1)
-# contains your query and (2) is newer than the current command in the
-# command history.
-#
-# * Press ^U (the Control and U keys simultaneously) to abort the search.
-#
-# 3. If a matching command spans more than one line of text, press the LEFT
-# arrow key to move the cursor away from the end of the command, and then:
-#
-# * Press the UP arrow key to move the cursor to the line above. When the
-# cursor reaches the first line of the command, pressing the UP arrow
-# key again will cause this script to perform another search.
-#
-# * Press the DOWN arrow key to move the cursor to the line below. When
-# the cursor reaches the last line of the command, pressing the DOWN
-# arrow key again will cause this script to perform another search.
-#
-#-----------------------------------------------------------------------------
-# Configuration
-#-----------------------------------------------------------------------------
-#
-# This script defines the following global variables. You may override their
-# default values only after having loaded this script into your ZSH session.
-#
-# * HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND is a global variable that defines
-# how the query should be highlighted inside a matching command. Its default
-# value causes this script to highlight using bold, white text on a magenta
-# background. See the "Character Highlighting" section in the zshzle(1) man
-# page to learn about the kinds of values you may assign to this variable.
-#
-# * HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND is a global variable that
-# defines how the query should be highlighted when no commands in the
-# history match it. Its default value causes this script to highlight using
-# bold, white text on a red background. See the "Character Highlighting"
-# section in the zshzle(1) man page to learn about the kinds of values you
-# may assign to this variable.
-#
-# * HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS is a global variable that defines
-# how the command history will be searched for your query. Its default value
-# causes this script to perform a case-insensitive search. See the "Globbing
-# Flags" section in the zshexpn(1) man page to learn about the kinds of
-# values you may assign to this variable.
-#
-#-----------------------------------------------------------------------------
-# History
-#-----------------------------------------------------------------------------
-#
-# This script was originally written by Peter Stephenson[2], who published it
-# to the ZSH users mailing list (thereby making it public domain) in September
-# 2009. It was later revised by Guido van Steen and released under the BSD
-# license (see below) as part of the fizsh[3] project in January 2011.
-#
-# It was later extracted from fizsh[3] release 1.0.1, refactored heavily, and
-# repackaged as both an oh-my-zsh plugin[4] and as an independently loadable
-# ZSH script[5] by Suraj N. Kurapati in 2011.
-#
-# It was further developed[4] by Guido van Steen, Suraj N. Kurapati, Sorin
-# Ionescu, and Vincent Guerci in 2011.
-#
-# [1]: http://fishshell.com
-# [2]: http://www.zsh.org/mla/users/2009/msg00818.html
-# [3]: http://sourceforge.net/projects/fizsh/
-# [4]: https://github.com/robbyrussell/oh-my-zsh/pull/215
-# [5]: https://github.com/sunaku/zsh-history-substring-search
-# [6]: https://github.com/nicoulaj/zsh-syntax-highlighting
-#
##############################################################################
#
# Copyright (c) 2009 Peter Stephenson
@@ -140,7 +49,7 @@ HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS='i'
# the main ZLE widgets
#-----------------------------------------------------------------------------
-function history-substring-search-up() {
+history-substring-search-up() {
_history-substring-search-begin
_history-substring-search-up-history ||
@@ -150,7 +59,7 @@ function history-substring-search-up() {
_history-substring-search-end
}
-function history-substring-search-down() {
+history-substring-search-down() {
_history-substring-search-begin
_history-substring-search-down-history ||
@@ -163,14 +72,6 @@ function history-substring-search-down() {
zle -N history-substring-search-up
zle -N history-substring-search-down
-zmodload zsh/terminfo
-if [[ -n "$terminfo[kcuu1]" ]]; then
- bindkey "$terminfo[kcuu1]" history-substring-search-up
-fi
-if [[ -n "$terminfo[kcud1]" ]]; then
- bindkey "$terminfo[kcud1]" history-substring-search-down
-fi
-
#-----------------------------------------------------------------------------
# implementation details
#-----------------------------------------------------------------------------
@@ -185,32 +86,20 @@ zmodload -F zsh/parameter
#
if [[ $+functions[_zsh_highlight] -eq 0 ]]; then
#
- # Dummy implementation of _zsh_highlight()
- # that simply removes existing highlights
- #
- function _zsh_highlight() {
- region_highlight=()
- }
-
- #
- # Remove existing highlights when the user
- # inserts printable characters into $BUFFER
+ # Dummy implementation of _zsh_highlight() that
+ # simply removes any existing highlights when the
+ # user inserts printable characters into $BUFFER.
#
- function ordinary-key-press() {
+ _zsh_highlight() {
if [[ $KEYS == [[:print:]] ]]; then
region_highlight=()
fi
- zle .self-insert
}
- zle -N self-insert ordinary-key-press
#
- # Override ZLE widgets to invoke _zsh_highlight()
+ # The following snippet was taken from the zsh-syntax-highlighting project:
#
- # https://github.com/nicoulaj/zsh-syntax-highlighting/blob/
- # bb7fcb79fad797a40077bebaf6f4e4a93c9d8163/zsh-syntax-highlighting.zsh#L121
- #
- #--------------8<-------------------8<-------------------8<-----------------
+ # https://github.com/zsh-users/zsh-syntax-highlighting/blob/56b134f5d62ae3d4e66c7f52bd0cc2595f9b305b/zsh-syntax-highlighting.zsh#L126-161
#
# Copyright (c) 2010-2011 zsh-syntax-highlighting contributors
# All rights reserved.
@@ -241,50 +130,53 @@ if [[ $+functions[_zsh_highlight] -eq 0 ]]; then
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- # Load ZSH module zsh/zleparameter, needed to override user defined widgets.
- zmodload zsh/zleparameter 2>/dev/null || {
- echo 'zsh-syntax-highlighting: failed loading zsh/zleparameter, exiting.' >&2
- return -1
- }
-
- # Override ZLE widgets to make them invoke _zsh_highlight.
- for event in ${${(f)"$(zle -la)"}:#(_*|orig-*|.run-help|.which-command)}; do
- if [[ "$widgets[$event]" == completion:* ]]; then
- eval "zle -C orig-$event ${${${widgets[$event]}#*:}/:/ } ; $event() { builtin zle orig-$event && _zsh_highlight } ; zle -N $event"
- else
- case $event in
- accept-and-menu-complete)
- eval "$event() { builtin zle .$event && _zsh_highlight } ; zle -N $event"
- ;;
-
- # The following widgets should NOT remove any previously
- # applied highlighting. Therefore we do not remap them.
- .forward-char|.backward-char|.up-line-or-history|.down-line-or-history)
- ;;
-
- .*)
- clean_event=$event[2,${#event}] # Remove the leading dot in the event name
- case ${widgets[$clean_event]-} in
- (completion|user):*)
- ;;
- *)
- eval "$clean_event() { builtin zle $event && _zsh_highlight } ; zle -N $clean_event"
- ;;
- esac
- ;;
- *)
- ;;
+ #
+ #--------------8<-------------------8<-------------------8<-----------------
+ # Rebind all ZLE widgets to make them invoke _zsh_highlights.
+ _zsh_highlight_bind_widgets()
+ {
+ # Load ZSH module zsh/zleparameter, needed to override user defined widgets.
+ zmodload zsh/zleparameter 2>/dev/null || {
+ echo 'zsh-syntax-highlighting: failed loading zsh/zleparameter.' >&2
+ return 1
+ }
+
+ # Override ZLE widgets to make them invoke _zsh_highlight.
+ local cur_widget
+ for cur_widget in ${${(f)"$(builtin zle -la)"}:#(.*|_*|orig-*|run-help|which-command|beep|yank*)}; do
+ case $widgets[$cur_widget] in
+
+ # Already rebound event: do nothing.
+ user:$cur_widget|user:_zsh_highlight_widget_*);;
+
+ # User defined widget: override and rebind old one with prefix "orig-".
+ user:*) eval "zle -N orig-$cur_widget ${widgets[$cur_widget]#*:}; \
+ _zsh_highlight_widget_$cur_widget() { builtin zle orig-$cur_widget -- \"\$@\" && _zsh_highlight }; \
+ zle -N $cur_widget _zsh_highlight_widget_$cur_widget";;
+
+ # Completion widget: override and rebind old one with prefix "orig-".
+ completion:*) eval "zle -C orig-$cur_widget ${${widgets[$cur_widget]#*:}/:/ }; \
+ _zsh_highlight_widget_$cur_widget() { builtin zle orig-$cur_widget -- \"\$@\" && _zsh_highlight }; \
+ zle -N $cur_widget _zsh_highlight_widget_$cur_widget";;
+
+ # Builtin widget: override and make it call the builtin ".widget".
+ builtin) eval "_zsh_highlight_widget_$cur_widget() { builtin zle .$cur_widget -- \"\$@\" && _zsh_highlight }; \
+ zle -N $cur_widget _zsh_highlight_widget_$cur_widget";;
+
+ # Default: unhandled case.
+ *) echo "zsh-syntax-highlighting: unhandled ZLE widget '$cur_widget'" >&2 ;;
esac
- fi
- done
- unset event clean_event
+ done
+ }
#-------------->8------------------->8------------------->8-----------------
+
+ _zsh_highlight_bind_widgets
fi
-function _history-substring-search-begin() {
+_history-substring-search-begin() {
setopt localoptions extendedglob
- _history_substring_search_move_cursor_eol=false
+
+ _history_substring_search_refresh_display=
_history_substring_search_query_highlight=
#
@@ -308,12 +200,10 @@ function _history-substring-search-begin() {
#
# Find all occurrences of the search query in the history file.
#
- # (k) turns it an array of line numbers.
- #
- # (on) seems to remove duplicates, which are default
- # options. They can be turned off by (ON).
+ # (k) returns the "keys" (history index numbers) instead of the values
+ # (Oa) reverses the order, because (R) returns results reversed.
#
- _history_substring_search_matches=(${(kon)history[(R)(#$HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS)*${_history_substring_search_query_escaped}*]})
+ _history_substring_search_matches=(${(kOa)history[(R)(#$HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS)*${_history_substring_search_query_escaped}*]})
#
# Define the range of values that $_history_substring_search_match_index
@@ -349,12 +239,15 @@ function _history-substring-search-begin() {
fi
}
-function _history-substring-search-end() {
+_history-substring-search-end() {
setopt localoptions extendedglob
+
_history_substring_search_result=$BUFFER
- # move the cursor to the end of the command line
- if [[ $_history_substring_search_move_cursor_eol == true ]]; then
+ # the search was succesful so display the result properly by clearing away
+ # existing highlights and moving the cursor to the end of the result buffer
+ if [[ $_history_substring_search_refresh_display -eq 1 ]]; then
+ region_highlight=()
CURSOR=${#BUFFER}
fi
@@ -379,10 +272,10 @@ function _history-substring-search-end() {
# read -k -t 200 && zle -U $REPLY
# Exit successfully from the history-substring-search-* widgets.
- true
+ return 0
}
-function _history-substring-search-up-buffer() {
+_history-substring-search-up-buffer() {
#
# Check if the UP arrow was pressed to move the cursor within a multi-line
# buffer. This amounts to three tests:
@@ -405,13 +298,13 @@ function _history-substring-search-up-buffer() {
if [[ $#buflines -gt 1 && $CURSOR -ne $#BUFFER && $#xlbuflines -ne 1 ]]; then
zle up-line-or-history
- return true
+ return 0
fi
- false
+ return 1
}
-function _history-substring-search-down-buffer() {
+_history-substring-search-down-buffer() {
#
# Check if the DOWN arrow was pressed to move the cursor within a multi-line
# buffer. This amounts to three tests:
@@ -434,13 +327,13 @@ function _history-substring-search-down-buffer() {
if [[ $#buflines -gt 1 && $CURSOR -ne $#BUFFER && $#xrbuflines -ne 1 ]]; then
zle down-line-or-history
- return true
+ return 0
fi
- false
+ return 1
}
-function _history-substring-search-up-history() {
+_history-substring-search-up-history() {
#
# Behave like up in ZSH, except clear the $BUFFER
# when beginning of history is reached like in Fish.
@@ -453,16 +346,16 @@ function _history-substring-search-up-history() {
# going up from somewhere below the top of history
else
- zle up-history
+ zle up-line-or-history
fi
- return true
+ return 0
fi
- false
+ return 1
}
-function _history-substring-search-down-history() {
+_history-substring-search-down-history() {
#
# Behave like down-history in ZSH, except clear the
# $BUFFER when end of history is reached like in Fish.
@@ -472,21 +365,31 @@ function _history-substring-search-down-history() {
# going down from the absolute top of history
if [[ $HISTNO -eq 1 && -z $BUFFER ]]; then
BUFFER=${history[1]}
- _history_substring_search_move_cursor_eol=true
+ _history_substring_search_refresh_display=1
# going down from somewhere above the bottom of history
else
- zle down-history
+ zle down-line-or-history
fi
- return true
+ return 0
fi
- false
+ return 1
+}
+
+_history-substring-search-not-found() {
+ #
+ # Nothing matched the search query, so put it back into the $BUFFER while
+ # highlighting it accordingly so the user can revise it and search again.
+ #
+ _history_substring_search_old_buffer=$BUFFER
+ BUFFER=$_history_substring_search_query
+ _history_substring_search_query_highlight=$HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND
}
-function _history-substring-search-up-search() {
- _history_substring_search_move_cursor_eol=true
+_history-substring-search-up-search() {
+ _history_substring_search_refresh_display=1
#
# Highlight matches during history-substring-up-search:
@@ -542,9 +445,7 @@ function _history-substring-search-up-search() {
# to highlight the current buffer.
#
(( _history_substring_search_match_index-- ))
- _history_substring_search_old_buffer=$BUFFER
- BUFFER=$_history_substring_search_query
- _history_substring_search_query_highlight=$HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND
+ _history-substring-search-not-found
elif [[ $_history_substring_search_match_index -eq $_history_substring_search_matches_count_plus ]]; then
#
@@ -561,11 +462,30 @@ function _history-substring-search-up-search() {
(( _history_substring_search_match_index-- ))
BUFFER=$_history_substring_search_old_buffer
_history_substring_search_query_highlight=$HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND
+
+ else
+ #
+ # We are at the beginning of history and there are no further matches.
+ #
+ _history-substring-search-not-found
+ return
+ fi
+
+ #
+ # When HIST_FIND_NO_DUPS is set, meaning that only unique command lines from
+ # history should be matched, make sure the new and old results are different.
+ # But when HIST_IGNORE_ALL_DUPS is set, ZSH already ensures a unique history.
+ #
+ if [[ ! -o HIST_IGNORE_ALL_DUPS && -o HIST_FIND_NO_DUPS && $BUFFER == $_history_substring_search_result ]]; then
+ #
+ # Repeat the current search so that a different (unique) match is found.
+ #
+ _history-substring-search-up-search
fi
}
-function _history-substring-search-down-search() {
- _history_substring_search_move_cursor_eol=true
+_history-substring-search-down-search() {
+ _history_substring_search_refresh_display=1
#
# Highlight matches during history-substring-up-search:
@@ -622,9 +542,7 @@ function _history-substring-search-down-search() {
# to highlight the current buffer.
#
(( _history_substring_search_match_index++ ))
- _history_substring_search_old_buffer=$BUFFER
- BUFFER=$_history_substring_search_query
- _history_substring_search_query_highlight=$HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND
+ _history-substring-search-not-found
elif [[ $_history_substring_search_match_index -eq 0 ]]; then
#
@@ -641,6 +559,25 @@ function _history-substring-search-down-search() {
(( _history_substring_search_match_index++ ))
BUFFER=$_history_substring_search_old_buffer
_history_substring_search_query_highlight=$HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND
+
+ else
+ #
+ # We are at the end of history and there are no further matches.
+ #
+ _history-substring-search-not-found
+ return
+ fi
+
+ #
+ # When HIST_FIND_NO_DUPS is set, meaning that only unique command lines from
+ # history should be matched, make sure the new and old results are different.
+ # But when HIST_IGNORE_ALL_DUPS is set, ZSH already ensures a unique history.
+ #
+ if [[ ! -o HIST_IGNORE_ALL_DUPS && -o HIST_FIND_NO_DUPS && $BUFFER == $_history_substring_search_result ]]; then
+ #
+ # Repeat the current search so that a different (unique) match is found.
+ #
+ _history-substring-search-down-search
fi
}
diff --git a/plugins/history-substring-search/update-from-upstream.zsh b/plugins/history-substring-search/update-from-upstream.zsh
new file mode 100755
index 000000000..6e6cca5d5
--- /dev/null
+++ b/plugins/history-substring-search/update-from-upstream.zsh
@@ -0,0 +1,127 @@
+#!/usr/bin/env zsh
+#
+# update-from-upstream.zsh
+#
+# This script updates the Oh My Zsh version of the zsh-history-substring-search
+# plugin from the independent upstream repo. This is to be run by OMZ developers
+# when they want to pull in new changes from upstream to OMZ. It is not run
+# during normal use of the plugin.
+#
+# The official upstream repo is zsh-users/zsh-history-substring-search
+# https://github.com/zsh-users/zsh-history-substring-search
+#
+# This is a zsh script, not a function. Call it with `zsh update-from-upstream.zsh`
+# from the command line, running it from within the plugin directory.
+#
+# You can set the environment variable REPO_PATH to point it at an upstream
+# repo you have already prepared. Otherwise, it will do a clean checkout of
+# upstream's HEAD to a temporary local repo and use that.
+
+
+# Just bail on any error so we don't have to do extra checking.
+# This is a developer-use script, so terse output like that should
+# be fine.
+set -e
+
+
+upstream_basename=zsh-history-substring-search
+plugin_basename=history-substring-search
+UPSTREAM_REPO=zsh-users/$upstream_basename
+need_repo_cleanup=false
+upstream_github_url="https://github.com/$UPSTREAM_REPO"
+
+if [[ -z "$UPSTREAM_REPO_PATH" ]]; then
+ # Do a clean checkout
+ my_tempdir=$(mktemp -d -t omz-update-histsubstrsrch)
+ UPSTREAM_REPO_PATH="$my_tempdir/$upstream_basename"
+ git clone "$upstream_github_url" "$UPSTREAM_REPO_PATH"
+ need_repo_cleanup=true
+ print "Checked out upstream repo to $UPSTREAM_REPO_PATH"
+else
+ print "Using existing $upstream_basename repo at $UPSTREAM_REPO_PATH"
+fi
+
+upstream="$UPSTREAM_REPO_PATH"
+
+# Figure out what we're pulling in
+upstream_sha=$(cd $upstream && git rev-parse HEAD)
+upstream_commit_date=$(cd $upstream && git log -1 --pretty=format:%ci)
+upstream_just_date=${${=upstream_commit_date}[1]}
+print "upstream SHA: $upstream_sha"
+print "upstream commit time: $upstream_commit_date"
+print "upstream commit date: $upstream_just_date"
+print
+
+# Copy the files over, using the OMZ plugin's names where needed
+cp -v "$upstream"/* .
+mv -v zsh-history-substring-search.zsh $plugin_basename.zsh
+mv -v zsh-history-substring-search.plugin.zsh $plugin_basename.plugin.zsh
+
+if [[ $need_repo_cleanup == true ]]; then
+ print "Removing temporary repo at $my_tempdir"
+ rm -rf "$my_tempdir"
+fi
+
+# Do OMZ-specific edits
+
+print
+print "Updating files with OMZ-specific stuff"
+print
+
+# OMZ binds the keys as part of the plugin loading
+
+cat >> $plugin_basename.plugin.zsh <<EOF
+
+
+# Bind terminal-specific up and down keys
+
+if [[ -n "\$terminfo[kcuu1]" ]]; then
+ bindkey "\$terminfo[kcuu1]" history-substring-search-up
+fi
+if [[ -n "\$terminfo[kcud1]" ]]; then
+ bindkey "\$terminfo[kcud1]" history-substring-search-down
+fi
+
+EOF
+
+# Tack OMZ-specific notes on to readme
+
+thin_line="------------------------------------------------------------------------------"
+cat >> README.md <<EOF
+
+$thin_line
+Oh My Zsh Distribution Notes
+$thin_line
+
+What you are looking at now is Oh My Zsh's repackaging of zsh-history-substring-search
+as an OMZ module inside the Oh My Zsh distribution.
+
+The upstream repo, $UPSTREAM_REPO, can be found on GitHub at
+$upstream_github_url.
+
+This downstream copy was last updated from the following upstream commit:
+
+ SHA: $upstream_sha
+ Commit date: $upstream_commit_date
+
+Everything above this section is a copy of the original upstream's README, so things
+may differ slightly when you're using this inside OMZ. In particular, you do not
+need to set up key bindings for the up and down arrows yourself in \`~/.zshrc\`; the OMZ
+plugin does that for you. You may still want to set up additional emacs- or vi-specific
+bindings as mentioned above.
+
+EOF
+
+# Announce success and generate git commit messages
+
+cat <<EOF
+Done OK
+
+Now you can check the results and commit like this:
+
+ git add *
+ git commit -m "history-substring-search: update to upstream version $upstream_just_date" \\
+ -m "Updates OMZ's copy to commit $upstream_sha from $UPSTREAM_REPO"
+
+EOF
+
diff --git a/plugins/mercurial/README.md b/plugins/mercurial/README.md
index 89e1c1743..f42212d68 100644
--- a/plugins/mercurial/README.md
+++ b/plugins/mercurial/README.md
@@ -2,23 +2,20 @@
### Usage
Update .zshrc:
-1. Add name to the list of plugins, e.g. `plugins = (..., mercurial, ...)`
+1. Add name to the list of plugins, e.g. `plugins=(... mercurial ...)`
(that is pretty obvious).
-2. Change PROMPT variable of current theme to contain current folder mercurial repo info:
+2. Switch to a theme which uses `hg_prompt_info`.
- robbyrussel theme is used by default, so you need to modify PROMPT var
- from [this file](https://github.com/robbyrussell/oh-my-zsh/blob/master/themes/robbyrussell.zsh-theme)
- by adding `$(hg_prompt_info)` after `$(git_prompt_info)`, so currently it
- looks next:
+ Or, customize the `$PROMPT` variable of your current theme to contain current folder mercurial repo info. This can be done by putting a custom version of the theme in `$ZSH_CUSTOM` or by changing `$PROMPT` in `.zshrc` after loading the theme.
- ```diff
- - PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'
- + PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)$(hg_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'
+ The `robbyrussell` theme is used by default, so you need to modify `$PROMPT` var by adding `$(hg_prompt_info)` after `$(git_prompt_info)`, so it looks like this:
+
+ ```zsh
+ PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)$(hg_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'
```
-
- and put modified var at the end of **.zshrc**.
+
3. Initialize additional vars used in plugin. So in short put next in **.zshrc**:
-
+
```
ZSH_THEME_HG_PROMPT_PREFIX="%{$fg_bold[magenta]%}hg:(%{$fg[red]%}"
ZSH_THEME_HG_PROMPT_SUFFIX="%{$reset_color%}"
@@ -55,8 +52,7 @@ Update .zshrc:
#### Displays repo branch and directory status in prompt
This is the same as git plugin does.
-**Note**: additional changes to **.zshrc** are required in order for this to
-work.
+**Note**: Additional changes to **.zshrc**, or using a theme designed to use `hg_prompt_info`, are required in order for this to work.
### Mantainers
[ptrv](https://github.com/ptrv) - original creator
diff --git a/plugins/wd/wd.sh b/plugins/wd/wd.sh
index 3b9548168..cf54713bd 100755
--- a/plugins/wd/wd.sh
+++ b/plugins/wd/wd.sh
@@ -8,7 +8,7 @@
# @github.com/mfaerevaag/wd
# version
-readonly WD_VERSION=0.4
+readonly WD_VERSION=0.4.2
# colors
readonly WD_BLUE="\033[96m"
@@ -143,7 +143,7 @@ wd_warp()
fi
elif [[ ${points[$point]} != "" ]]
then
- cd ${points[$point]}
+ cd ${points[$point]/#\~/$HOME}
else
wd_exit_fail "Unknown warp point '${point}'"
fi
@@ -169,7 +169,7 @@ wd_add()
elif [[ ${points[$2]} == "" ]] || $force
then
wd_remove $point > /dev/null
- printf "%q:%s\n" "${point}" "${PWD}" >> $WD_CONFIG
+ printf "%q:%s\n" "${point}" "${PWD/#$HOME/~}" >> $WD_CONFIG
wd_print_msg $WD_GREEN "Warp point added"
@@ -203,6 +203,21 @@ wd_list_all()
{
wd_print_msg $WD_BLUE "All warp points:"
+ entries=$(sed "s:${HOME}:~:g" $WD_CONFIG)
+
+ max_warp_point_length=0
+ while IFS= read -r line
+ do
+ arr=(${(s,:,)line})
+ key=${arr[1]}
+
+ length=${#key}
+ if [[ length -gt max_warp_point_length ]]
+ then
+ max_warp_point_length=$length
+ fi
+ done <<< $entries
+
while IFS= read -r line
do
if [[ $line != "" ]]
@@ -213,16 +228,16 @@ wd_list_all()
if [[ -z $wd_quiet_mode ]]
then
- printf "%20s -> %s\n" $key $val
+ printf "%${max_warp_point_length}s -> %s\n" $key $val
fi
fi
- done <<< $(sed "s:${HOME}:~:g" $WD_CONFIG)
+ done <<< $entries
}
wd_ls()
{
wd_getdir $1
- ls $dir
+ ls ${dir/#\~/$HOME}
}
wd_path()
@@ -248,6 +263,7 @@ wd_show()
local wd_matches
wd_matches=()
# do a reverse lookup to check whether PWD is in $points
+ PWD="${PWD/$HOME/~}"
if [[ ${points[(r)$PWD]} == $PWD ]]
then
for name in ${(k)points}
diff --git a/plugins/wp-cli/README.md b/plugins/wp-cli/README.md
index 6dda07d17..1a79d60fc 100644
--- a/plugins/wp-cli/README.md
+++ b/plugins/wp-cli/README.md
@@ -43,7 +43,7 @@ WP-CLI is a set of command-line tools for managing WordPress installations. You
- wpps='search'
- wppst='status'
- wppt='toggle'
-- wppu='uninstall'
+- wppun='uninstall'
- wppu='update'
### Post
@@ -55,7 +55,7 @@ WP-CLI is a set of command-line tools for managing WordPress installations. You
- wppol='wp post list'
- wppom='wp post meta'
- wppou='wp post update'
-- wppou='wp post url'
+- wppourl='wp post url'
### Sidebar
- wpsbl='wp sidebar list'
diff --git a/plugins/wp-cli/wp-cli.plugin.zsh b/plugins/wp-cli/wp-cli.plugin.zsh
index 6c70a7a09..7b41c3257 100644
--- a/plugins/wp-cli/wp-cli.plugin.zsh
+++ b/plugins/wp-cli/wp-cli.plugin.zsh
@@ -63,7 +63,7 @@ alias wppp='wp plugin path'
alias wpps='wp plugin search'
alias wppst='wp plugin status'
alias wppt='wp plugin toggle'
-alias wppu='wp plugin uninstall'
+alias wppun='wp plugin uninstall'
alias wppu='wp plugin update'
# Post
@@ -75,7 +75,7 @@ alias wppog='wp post get'
alias wppol='wp post list'
alias wppom='wp post meta'
alias wppou='wp post update'
-alias wppou='wp post url'
+alias wppourl='wp post url'
# Rewrite