diff options
Diffstat (limited to 'plugins')
| -rw-r--r-- | plugins/bundler/bundler.plugin.zsh | 1 | ||||
| -rw-r--r-- | plugins/capistrano/_capistrano | 6 | ||||
| -rw-r--r-- | plugins/capistrano/capistrano.plugin.zsh | 2 | ||||
| -rw-r--r-- | plugins/dircycle/dircycle.plugin.zsh | 16 | ||||
| -rw-r--r-- | plugins/github/README.md | 46 | ||||
| -rw-r--r-- | plugins/github/_github | 40 | ||||
| -rw-r--r-- | plugins/github/github.plugin.zsh | 101 | ||||
| -rw-r--r-- | plugins/gradle/gradle.plugin.zsh | 40 | ||||
| -rw-r--r-- | plugins/history-substring-search/README.markdown | 7 | ||||
| -rw-r--r-- | plugins/history-substring-search/README.md | 149 | ||||
| -rw-r--r-- | plugins/history-substring-search/history-substring-search.plugin.zsh | 15 | ||||
| -rw-r--r-- | plugins/history-substring-search/history-substring-search.zsh | 321 | ||||
| -rwxr-xr-x | plugins/history-substring-search/update-from-upstream.zsh | 127 | ||||
| -rw-r--r-- | plugins/mercurial/README.md | 24 | ||||
| -rwxr-xr-x | plugins/wd/wd.sh | 28 | ||||
| -rw-r--r-- | plugins/wp-cli/README.md | 4 | ||||
| -rw-r--r-- | plugins/wp-cli/wp-cli.plugin.zsh | 4 | 
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  | 
