浏览代码

Merge branch 'master' of github.com:robbyrussell/oh-my-zsh

Robby Russell 12 年之前
父节点
当前提交
63deae380c

+ 25 - 9
plugins/jira/jira.plugin.zsh

@@ -1,20 +1,36 @@
 # To use: add a .jira-url file in the base of your project
 # To use: add a .jira-url file in the base of your project
+#         You can also set JIRA_URL in your .zshrc or put .jira-url in your home directory
+#         .jira-url in the current directory takes precedence
+#
+# If you use Rapid Board, set:
+#JIRA_RAPID_BOARD="yes"
+# in you .zshrc
+#
 # Setup: cd to/my/project
 # Setup: cd to/my/project
 #        echo "https://name.jira.com" >> .jira-url
 #        echo "https://name.jira.com" >> .jira-url
 # Usage: jira           # opens a new issue
 # Usage: jira           # opens a new issue
 #        jira ABC-123   # Opens an existing issue
 #        jira ABC-123   # Opens an existing issue
 open_jira_issue () {
 open_jira_issue () {
-  if [ ! -f .jira-url ]; then
-    echo "There is no .jira-url file in the current directory..."
-    return 0;
+  if [ -f .jira-url ]; then
+    jira_url=$(cat .jira-url)
+  elif [ -f ~/.jira-url ]; then
+    jira_url=$(cat ~/.jira-url)
+  elif [[ "x$JIRA_URL" != "x" ]]; then
+    jira_url=$JIRA_URL
   else
   else
-    jira_url=$(cat .jira-url);
-    if [ -z "$1" ]; then
-      echo "Opening new issue";
-      `open $jira_url/secure/CreateIssue!default.jspa`;
+    echo "JIRA url is not specified anywhere."
+    return 0
+  fi
+
+  if [ -z "$1" ]; then
+    echo "Opening new issue"
+    `open $jira_url/secure/CreateIssue!default.jspa`
+  else
+    echo "Opening issue #$1"
+    if [[ "x$JIRA_RAPID_BOARD" = "yes" ]]; then
+      `open $jira_url/issues/$1`
     else
     else
-      echo "Opening issue #$1";
-      `open $jira_url/browse/$1`;
+      `open $jira_url/browse/$1`
     fi
     fi
   fi
   fi
 }
 }

+ 1 - 0
plugins/last-working-dir/last-working-dir.plugin.zsh

@@ -4,6 +4,7 @@
 
 
 # Flag indicating if we've previously jumped to last directory.
 # Flag indicating if we've previously jumped to last directory.
 typeset -g ZSH_LAST_WORKING_DIRECTORY
 typeset -g ZSH_LAST_WORKING_DIRECTORY
+mkdir -p "$ZSH/cache"
 local cache_file="$ZSH/cache/last-working-dir"
 local cache_file="$ZSH/cache/last-working-dir"
 
 
 # Updates the last directory once directory is changed.
 # Updates the last directory once directory is changed.

+ 3 - 2
plugins/sublime/sublime.plugin.zsh

@@ -5,10 +5,11 @@ local _sublime_darwin_subl=/Applications/Sublime\ Text\ 2.app/Contents/SharedSup
 
 
 if [[ $('uname') == 'Linux' ]]; then
 if [[ $('uname') == 'Linux' ]]; then
 	if [ -f '/usr/bin/sublime_text' ]; then
 	if [ -f '/usr/bin/sublime_text' ]; then
-		alias st='/usr/bin/sublime_text&'
+		st_run() { nohup /usr/bin/sublime_text $@ > /dev/null & }
 	else
 	else
-		alias st='/usr/bin/sublime-text&'
+		st_run() { nohup /usr/bin/sublime-text $@ > /dev/null & }
 	fi
 	fi
+alias st=st_run
 elif  [[ $('uname') == 'Darwin' ]]; then
 elif  [[ $('uname') == 'Darwin' ]]; then
 	# Check if Sublime is installed in user's home application directory
 	# Check if Sublime is installed in user's home application directory
 	if [[ -a $HOME/${_sublime_darwin_subl} ]]; then
 	if [[ -a $HOME/${_sublime_darwin_subl} ]]; then

+ 29 - 2
plugins/urltools/urltools.plugin.zsh

@@ -4,6 +4,33 @@
 # Taken from:
 # Taken from:
 # http://ruslanspivak.com/2010/06/02/urlencode-and-urldecode-from-a-command-line/
 # http://ruslanspivak.com/2010/06/02/urlencode-and-urldecode-from-a-command-line/
 
 
-alias urlencode='node -e "console.log(encodeURIComponent(process.argv[1]))"'
+if [[ $(whence $URLTOOLS_METHOD) = "" ]]; then
+    URLTOOLS_METHOD=""
+fi
 
 
-alias urldecode='node -e "console.log(decodeURIComponent(process.argv[1]))"'
+if [[ $(whence node) != "" && ( "x$URLTOOLS_METHOD" = "x"  || "x$URLTOOLS_METHOD" = "xnode" ) ]]; then
+    alias urlencode='node -e "console.log(encodeURIComponent(process.argv[1]))"'
+    alias urldecode='node -e "console.log(decodeURIComponent(process.argv[1]))"'
+elif [[ $(whence python) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xpython" ) ]]; then
+    alias urlencode='python -c "import sys, urllib as ul; print ul.quote_plus(sys.argv[1])"'
+    alias urldecode='python -c "import sys, urllib as ul; print ul.unquote_plus(sys.argv[1])"'
+elif [[ $(whence ruby) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xruby" ) ]]; then
+    alias urlencode='ruby -r cgi -e "puts CGI.escape(ARGV[0])"'
+    alias urldecode='ruby -r cgi -e "puts CGI.unescape(ARGV[0])"'
+elif [[ $(whence php) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xphp" ) ]]; then
+    alias urlencode='php -r "echo rawurlencode(\$argv[1]); echo \"\n\";"'
+    alias urldecode='php -r "echo rawurldecode(\$argv[1]); echo \"\\n\";"'
+elif [[ $(whence perl) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xperl" ) ]]; then
+    if perl -MURI::Encode -e 1&> /dev/null; then
+        alias urlencode='perl -MURI::Encode -ep "uri_encode($ARGV[0]);"'
+        alias urldecode='perl -MURI::Encode -ep "uri_decode($ARGV[0]);"'
+    elif perl -MURI::Escape -e 1 &> /dev/null; then
+        alias urlencode='perl -MURI::Escape -ep "uri_escape($ARGV[0]);"'
+        alias urldecode='perl -MURI::Escape -ep "uri_unescape($ARGV[0]);"'
+    else
+        alias urlencode="perl -e '\$new=\$ARGV[0]; \$new =~ s/([^A-Za-z0-9])/sprintf(\"%%%02X\", ord(\$1))/seg; print \"\$new\n\";'"
+        alias urldecode="perl -e '\$new=\$ARGV[0]; \$new =~ s/\%([A-Fa-f0-9]{2})/pack(\"C\", hex(\$1))/seg; print \"\$new\n\";'"
+    fi
+fi
+
+unset URLTOOLS_METHOD

+ 19 - 1
plugins/vi-mode/vi-mode.plugin.zsh

@@ -1,8 +1,26 @@
-function zle-line-init zle-keymap-select {
+# Ensures that $terminfo values are valid and updates editor information when
+# the keymap changes.
+function zle-keymap-select zle-line-init zle-line-finish {
+  # The terminal must be in application mode when ZLE is active for $terminfo
+  # values to be valid.
+  if (( $+terminfo[smkx] && $+terminfo[rmkx] )); then
+    case "$0" in
+      (zle-line-init)
+        # Enable terminal application mode.
+        echoti smkx
+      ;;
+      (zle-line-finish)
+        # Disable terminal application mode.
+        echoti rmkx
+      ;;
+    esac
+  fi
   zle reset-prompt
   zle reset-prompt
+  zle -R
 }
 }
 
 
 zle -N zle-line-init
 zle -N zle-line-init
+zle -N zle-line-finish
 zle -N zle-keymap-select
 zle -N zle-keymap-select
 
 
 bindkey -v
 bindkey -v

+ 2 - 2
plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh

@@ -1,4 +1,4 @@
-wrapsource=`which virtualenvwrapper.sh`
+wrapsource=`which virtualenvwrapper_lazy.sh`
 
 
 if [[ -f "$wrapsource" ]]; then
 if [[ -f "$wrapsource" ]]; then
   source $wrapsource
   source $wrapsource
@@ -36,5 +36,5 @@ if [[ -f "$wrapsource" ]]; then
     }
     }
   fi
   fi
 else
 else
-  print "zsh virtualenvwrapper plugin: Cannot find virtualenvwrapper.sh. Please install with \`pip install virtualenvwrapper\`."
+  print "zsh virtualenvwrapper plugin: Cannot find virtualenvwrapper_lazy.sh. Please install with \`pip install virtualenvwrapper\`."
 fi
 fi

+ 2 - 1
themes/mortalscumbag.zsh-theme

@@ -46,7 +46,8 @@ function ssh_connection() {
   fi
   fi
 }
 }
 
 
-PROMPT=$'\n$(ssh_connection)%{$fg_bold[green]%}%n@%m%{$reset_color%}$(my_git_prompt) : %~\n%# '
+local ret_status="%(?:%{$fg_bold[green]%}:%{$fg_bold[red]%})%?%{$reset_color%}"
+PROMPT=$'\n$(ssh_connection)%{$fg_bold[green]%}%n@%m%{$reset_color%}$(my_git_prompt) : %~\n[${ret_status}] %# '
 
 
 ZSH_THEME_PROMPT_RETURNCODE_PREFIX="%{$fg_bold[red]%}"
 ZSH_THEME_PROMPT_RETURNCODE_PREFIX="%{$fg_bold[red]%}"
 ZSH_THEME_GIT_PROMPT_PREFIX=" $fg[white]‹ %{$fg_bold[yellow]%}"
 ZSH_THEME_GIT_PROMPT_PREFIX=" $fg[white]‹ %{$fg_bold[yellow]%}"