Fix zsh config inclusion
This commit is contained in:
		
							
								
								
									
										4
									
								
								zsh/.oh-my-zsh_old/plugins/z/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								zsh/.oh-my-zsh_old/plugins/z/Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| readme: | ||||
| 	@groff -man -Tascii z.1 | col -bx | ||||
|  | ||||
| .PHONY: readme | ||||
							
								
								
									
										144
									
								
								zsh/.oh-my-zsh_old/plugins/z/README
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										144
									
								
								zsh/.oh-my-zsh_old/plugins/z/README
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,144 @@ | ||||
| Z(1)                             User Commands                            Z(1) | ||||
|  | ||||
|  | ||||
|  | ||||
| NAME | ||||
|        z - jump around | ||||
|  | ||||
| SYNOPSIS | ||||
|        z [-chlrtx] [regex1 regex2 ... regexn] | ||||
|  | ||||
| AVAILABILITY | ||||
|        bash, zsh | ||||
|  | ||||
| DESCRIPTION | ||||
|        Tracks your most used directories, based on 'frecency'. | ||||
|  | ||||
|        After  a  short  learning  phase, z will take you to the most 'frecent' | ||||
|        directory that matches ALL of the regexes given on the command line, in | ||||
|        order. | ||||
|  | ||||
|        For example, z foo bar would match /foo/bar but not /bar/foo. | ||||
|  | ||||
| OPTIONS | ||||
|        -c     restrict matches to subdirectories of the current directory | ||||
|  | ||||
|        -h     show a brief help message | ||||
|  | ||||
|        -l     list only | ||||
|  | ||||
|        -r     match by rank only | ||||
|  | ||||
|        -t     match by recent access only | ||||
|  | ||||
|        -x     remove the current directory from the datafile | ||||
|  | ||||
| EXAMPLES | ||||
|        z foo         cd to most frecent dir matching foo | ||||
|  | ||||
|        z foo bar     cd to most frecent dir matching foo, then bar | ||||
|  | ||||
|        z -r foo      cd to highest ranked dir matching foo | ||||
|  | ||||
|        z -t foo      cd to most recently accessed dir matching foo | ||||
|  | ||||
|        z -l foo      list all dirs matching foo (by frecency) | ||||
|  | ||||
| NOTES | ||||
|    Installation: | ||||
|        Put something like this in your $HOME/.bashrc or $HOME/.zshrc: | ||||
|  | ||||
|               . /path/to/z.sh | ||||
|  | ||||
|        cd around for a while to build up the db. | ||||
|  | ||||
|        PROFIT!! | ||||
|  | ||||
|        Optionally: | ||||
|               Set $_Z_CMD to change the command name (default z). | ||||
|               Set $_Z_DATA to change the datafile (default $HOME/.z). | ||||
|               Set $_Z_NO_RESOLVE_SYMLINKS to prevent symlink resolution. | ||||
|               Set $_Z_NO_PROMPT_COMMAND to handle PROMPT_COMMAND/precmd  your- | ||||
|               self. | ||||
|               Set $_Z_EXCLUDE_DIRS to an array of directory trees to  exclude. | ||||
|               Set $_Z_OWNER to allow usage when in 'sudo -s' mode. | ||||
|               (These  settings  should  go  in  .bashrc/.zshrc before the line | ||||
|               added above.) | ||||
|               Install   the   provided   man   page   z.1    somewhere    like | ||||
|               /usr/local/man/man1. | ||||
|  | ||||
|    Aging: | ||||
|        The rank of directories maintained by z undergoes aging based on a sim- | ||||
|        ple formula. The rank of each entry is incremented  every  time  it  is | ||||
|        accessed.  When the sum of ranks is over 9000, all ranks are multiplied | ||||
|        by 0.99. Entries with a rank lower than 1 are forgotten. | ||||
|  | ||||
|    Frecency: | ||||
|        Frecency is a portmanteau of 'recent' and 'frequency'. It is a weighted | ||||
|        rank  that depends on how often and how recently something occurred. As | ||||
|        far as I know, Mozilla came up with the term. | ||||
|  | ||||
|        To z, a directory that has low ranking but has been  accessed  recently | ||||
|        will  quickly  have  higher rank than a directory accessed frequently a | ||||
|        long time ago. | ||||
|  | ||||
|        Frecency is determined at runtime. | ||||
|  | ||||
|    Common: | ||||
|        When multiple directories match all queries, and they all have a common | ||||
|        prefix, z will cd to the shortest matching directory, without regard to | ||||
|        priority.  This has been in effect, if  undocumented,  for  quite  some | ||||
|        time, but should probably be configurable or reconsidered. | ||||
|  | ||||
|    Tab Completion: | ||||
|        z  supports tab completion. After any number of arguments, press TAB to | ||||
|        complete on directories that match each argument. Due to limitations of | ||||
|        the  completion  implementations,  only  the last argument will be com- | ||||
|        pleted in the shell. | ||||
|  | ||||
|        Internally, z decides you've requested a completion if the  last  argu- | ||||
|        ment  passed  is  an  absolute  path to an existing directory. This may | ||||
|        cause unexpected behavior if the last argument to z begins with /. | ||||
|  | ||||
| ENVIRONMENT | ||||
|        A function _z() is defined. | ||||
|  | ||||
|        The contents of the variable $_Z_CMD is aliased to _z 2>&1. If not set, | ||||
|        $_Z_CMD defaults to z. | ||||
|  | ||||
|        The  environment  variable $_Z_DATA can be used to control the datafile | ||||
|        location. If it is not defined, the location defaults to $HOME/.z. | ||||
|  | ||||
|        The environment variable $_Z_NO_RESOLVE_SYMLINKS can be set to  prevent | ||||
|        resolving  of  symlinks.  If  it  is  not  set,  symbolic links will be | ||||
|        resolved when added to the datafile. | ||||
|  | ||||
|        In bash, z appends a command to the PROMPT_COMMAND environment variable | ||||
|        to maintain its database. In zsh, z appends a function _z_precmd to the | ||||
|        precmd_functions array. | ||||
|  | ||||
|        The environment variable $_Z_NO_PROMPT_COMMAND can be set if  you  want | ||||
|        to handle PROMPT_COMMAND or precmd yourself. | ||||
|  | ||||
|        The  environment  variable  $_Z_EXCLUDE_DIRS  can be set to an array of | ||||
|        directory trees to exclude from tracking.  $HOME  is  always  excluded. | ||||
|        Directories must be full paths without trailing slashes. | ||||
|  | ||||
|        The  environment  variable  $_Z_OWNER  can  be set to your username, to | ||||
|        allow usage of z when your sudo environment keeps $HOME set. | ||||
|  | ||||
| FILES | ||||
|        Data is stored in $HOME/.z. This  can  be  overridden  by  setting  the | ||||
|        $_Z_DATA  environment variable. When initialized, z will raise an error | ||||
|        if this path is a directory, and not function correctly. | ||||
|  | ||||
|        A man page (z.1) is provided. | ||||
|  | ||||
| SEE ALSO | ||||
|        regex(7), pushd, popd, autojump, cdargs | ||||
|  | ||||
|        Please file bugs at https://github.com/rupa/z/ | ||||
|  | ||||
|  | ||||
|  | ||||
| z                                January 2013                             Z(1) | ||||
							
								
								
									
										170
									
								
								zsh/.oh-my-zsh_old/plugins/z/z.1
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										170
									
								
								zsh/.oh-my-zsh_old/plugins/z/z.1
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,170 @@ | ||||
| .TH "Z" "1" "January 2013" "z" "User Commands" | ||||
| .SH | ||||
| NAME | ||||
| z \- jump around | ||||
| .SH | ||||
| SYNOPSIS | ||||
| z [\-chlrtx] [regex1 regex2 ... regexn] | ||||
| .SH | ||||
| AVAILABILITY | ||||
| bash, zsh | ||||
| .SH | ||||
| DESCRIPTION | ||||
| Tracks your most used directories, based on 'frecency'. | ||||
| .P | ||||
| After a short learning phase, \fBz\fR will take you to the most 'frecent' | ||||
| directory that matches ALL of the regexes given on the command line, in order. | ||||
|  | ||||
| For example, \fBz foo bar\fR would match \fB/foo/bar\fR but not \fB/bar/foo\fR. | ||||
| .SH | ||||
| OPTIONS | ||||
| .TP | ||||
| \fB\-c\fR | ||||
| restrict matches to subdirectories of the current directory | ||||
| .TP | ||||
| \fB\-e\fR | ||||
| echo the best match, don't cd | ||||
| .TP | ||||
| \fB\-h\fR | ||||
| show a brief help message | ||||
| .TP | ||||
| \fB\-l\fR | ||||
| list only | ||||
| .TP | ||||
| \fB\-r\fR | ||||
| match by rank only | ||||
| .TP | ||||
| \fB\-t\fR | ||||
| match by recent access only | ||||
| .TP | ||||
| \fB\-x\fR | ||||
| remove the current directory from the datafile | ||||
| .SH EXAMPLES | ||||
| .TP 14 | ||||
| \fBz foo\fR | ||||
| cd to most frecent dir matching foo | ||||
| .TP 14 | ||||
| \fBz foo bar\fR | ||||
| cd to most frecent dir matching foo, then bar | ||||
| .TP 14 | ||||
| \fBz -r foo\fR | ||||
| cd to highest ranked dir matching foo | ||||
| .TP 14 | ||||
| \fBz -t foo\fR | ||||
| cd to most recently accessed dir matching foo | ||||
| .TP 14 | ||||
| \fBz -l foo\fR | ||||
| list all dirs matching foo (by frecency) | ||||
| .SH | ||||
| NOTES | ||||
| .SS | ||||
| Installation: | ||||
| .P | ||||
| Put something like this in your \fB$HOME/.bashrc\fR or \fB$HOME/.zshrc\fR: | ||||
| .RS | ||||
| .P | ||||
| \fB. /path/to/z.sh\fR | ||||
| .RE | ||||
| .P | ||||
| \fBcd\fR around for a while to build up the db. | ||||
| .P | ||||
| PROFIT!! | ||||
| .P | ||||
| Optionally: | ||||
| .RS | ||||
| Set \fB$_Z_CMD\fR to change the command name (default \fBz\fR). | ||||
| .RE | ||||
| .RS | ||||
| Set \fB$_Z_DATA\fR to change the datafile (default \fB$HOME/.z\fR). | ||||
| .RE | ||||
| .RS | ||||
| Set \fB$_Z_NO_RESOLVE_SYMLINKS\fR to prevent symlink resolution. | ||||
| .RE | ||||
| .RS | ||||
| Set \fB$_Z_NO_PROMPT_COMMAND\fR to handle \fBPROMPT_COMMAND/precmd\fR yourself. | ||||
| .RE | ||||
| .RS | ||||
| Set \fB$_Z_EXCLUDE_DIRS\fR to an array of directory trees to exclude. | ||||
| .RE | ||||
| .RS | ||||
| Set \fB$_Z_OWNER\fR to allow usage when in 'sudo -s' mode. | ||||
| .RE | ||||
| .RS | ||||
| (These settings should go in .bashrc/.zshrc before the line added above.) | ||||
| .RE | ||||
| .RS | ||||
| Install the provided man page \fBz.1\fR somewhere in your \f$MANPATH, like | ||||
| \fB/usr/local/man/man1\fR. | ||||
| .RE | ||||
| .SS | ||||
| Aging: | ||||
| The rank of directories maintained by \fBz\fR undergoes aging based on a simple | ||||
| formula. The rank of each entry is incremented every time it is accessed. When | ||||
| the sum of ranks is over 9000, all ranks are multiplied by 0.99. Entries with a | ||||
| rank lower than 1 are forgotten. | ||||
| .SS | ||||
| Frecency: | ||||
| Frecency is a portmanteau of 'recent' and 'frequency'. It is a weighted rank | ||||
| that depends on how often and how recently something occurred. As far as I | ||||
| know, Mozilla came up with the term. | ||||
| .P | ||||
| To \fBz\fR, a directory that has low ranking but has been accessed recently | ||||
| will quickly have higher rank than a directory accessed frequently a long time | ||||
| ago. | ||||
| .P | ||||
| Frecency is determined at runtime. | ||||
| .SS | ||||
| Common: | ||||
| When multiple directories match all queries, and they all have a common prefix, | ||||
| \fBz\fR will cd to the shortest matching directory, without regard to priority. | ||||
| This has been in effect, if undocumented, for quite some time, but should | ||||
| probably be configurable or reconsidered. | ||||
| .SS | ||||
| Tab Completion: | ||||
| \fBz\fR supports tab completion. After any number of arguments, press TAB to | ||||
| complete on directories that match each argument. Due to limitations of the | ||||
| completion implementations, only the last argument will be completed in the | ||||
| shell. | ||||
| .P | ||||
| Internally, \fBz\fR decides you've requested a completion if the last argument | ||||
| passed is an absolute path to an existing directory. This may cause unexpected | ||||
| behavior if the last argument to \fBz\fR begins with \fB/\fR. | ||||
| .SH | ||||
| ENVIRONMENT | ||||
| A function \fB_z()\fR is defined. | ||||
| .P | ||||
| The contents of the variable \fB$_Z_CMD\fR is aliased to \fB_z 2>&1\fR. If not | ||||
| set, \fB$_Z_CMD\fR defaults to \fBz\fR. | ||||
| .P | ||||
| The environment variable \fB$_Z_DATA\fR can be used to control the datafile | ||||
| location. If it is not defined, the location defaults to \fB$HOME/.z\fR. | ||||
| .P | ||||
| The environment variable \fB$_Z_NO_RESOLVE_SYMLINKS\fR can be set to prevent | ||||
| resolving of symlinks. If it is not set, symbolic links will be resolved when | ||||
| added to the datafile. | ||||
| .P | ||||
| In bash, \fBz\fR appends a command to the \fBPROMPT_COMMAND\fR environment | ||||
| variable to maintain its database. In zsh, \fBz\fR appends a function | ||||
| \fB_z_precmd\fR to the \fBprecmd_functions\fR array. | ||||
| .P | ||||
| The environment variable \fB$_Z_NO_PROMPT_COMMAND\fR can be set if you want to | ||||
| handle \fBPROMPT_COMMAND\fR or \fBprecmd\fR yourself. | ||||
| .P | ||||
| The environment variable \fB$_Z_EXCLUDE_DIRS\fR can be set to an array of | ||||
| directory trees to exclude from tracking. \fB$HOME\fR is always excluded. | ||||
| Directories must be full paths without trailing slashes. | ||||
| .P | ||||
| The environment variable \fB$_Z_OWNER\fR can be set to your username, to | ||||
| allow usage of \fBz\fR when your sudo environment keeps \fB$HOME\fR set. | ||||
| .SH | ||||
| FILES | ||||
| Data is stored in \fB$HOME/.z\fR. This can be overridden by setting the | ||||
| \fB$_Z_DATA\fR environment variable. When initialized, \fBz\fR will raise an | ||||
| error if this path is a directory, and not function correctly. | ||||
| .P | ||||
| A man page (\fBz.1\fR) is provided. | ||||
| .SH | ||||
| SEE ALSO | ||||
| regex(7), pushd, popd, autojump, cdargs | ||||
| .P | ||||
| Please file bugs at https://github.com/rupa/z/ | ||||
							
								
								
									
										1
									
								
								zsh/.oh-my-zsh_old/plugins/z/z.plugin.zsh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								zsh/.oh-my-zsh_old/plugins/z/z.plugin.zsh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| source "${0:h}/z.sh" | ||||
							
								
								
									
										259
									
								
								zsh/.oh-my-zsh_old/plugins/z/z.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										259
									
								
								zsh/.oh-my-zsh_old/plugins/z/z.sh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,259 @@ | ||||
| # Copyright (c) 2009 rupa deadwyler. Licensed under the WTFPL license, Version 2 | ||||
|  | ||||
| # maintains a jump-list of the directories you actually use | ||||
| # | ||||
| # INSTALL: | ||||
| #     * put something like this in your .bashrc/.zshrc: | ||||
| #         . /path/to/z.sh | ||||
| #     * cd around for a while to build up the db | ||||
| #     * PROFIT!! | ||||
| #     * optionally: | ||||
| #         set $_Z_CMD in .bashrc/.zshrc to change the command (default z). | ||||
| #         set $_Z_DATA in .bashrc/.zshrc to change the datafile (default ~/.z). | ||||
| #         set $_Z_NO_RESOLVE_SYMLINKS to prevent symlink resolution. | ||||
| #         set $_Z_NO_PROMPT_COMMAND if you're handling PROMPT_COMMAND yourself. | ||||
| #         set $_Z_EXCLUDE_DIRS to an array of directories to exclude. | ||||
| #         set $_Z_OWNER to your username if you want use z while sudo with $HOME kept | ||||
| # | ||||
| # USE: | ||||
| #     * z foo     # cd to most frecent dir matching foo | ||||
| #     * z foo bar # cd to most frecent dir matching foo and bar | ||||
| #     * z -r foo  # cd to highest ranked dir matching foo | ||||
| #     * z -t foo  # cd to most recently accessed dir matching foo | ||||
| #     * z -l foo  # list matches instead of cd | ||||
| #     * z -e foo  # echo the best match, don't cd | ||||
| #     * z -c foo  # restrict matches to subdirs of $PWD | ||||
|  | ||||
| [ -d "${_Z_DATA:-$HOME/.z}" ] && { | ||||
|     echo "ERROR: z.sh's datafile (${_Z_DATA:-$HOME/.z}) is a directory." | ||||
| } | ||||
|  | ||||
| _z() { | ||||
|  | ||||
|     local datafile="${_Z_DATA:-$HOME/.z}" | ||||
|  | ||||
|     # if symlink, dereference | ||||
|     [ -h "$datafile" ] && datafile=$(readlink "$datafile") | ||||
|  | ||||
|     # bail if we don't own ~/.z and $_Z_OWNER not set | ||||
|     [ -z "$_Z_OWNER" -a -f "$datafile" -a ! -O "$datafile" ] && return | ||||
|  | ||||
|     _z_dirs () { | ||||
|         local line | ||||
|         while read line; do | ||||
|             # only count directories | ||||
|             [ -d "${line%%\|*}" ] && echo "$line" | ||||
|         done < "$datafile" | ||||
|         return 0 | ||||
|     } | ||||
|  | ||||
|     # add entries | ||||
|     if [ "$1" = "--add" ]; then | ||||
|         shift | ||||
|  | ||||
|         # $HOME isn't worth matching | ||||
|         [ "$*" = "$HOME" ] && return | ||||
|  | ||||
|         # don't track excluded directory trees | ||||
|         local exclude | ||||
|         for exclude in "${_Z_EXCLUDE_DIRS[@]}"; do | ||||
|             case "$*" in "$exclude*") return;; esac | ||||
|         done | ||||
|  | ||||
|         # maintain the data file | ||||
|         local tempfile="$datafile.$RANDOM" | ||||
|         _z_dirs | awk -v path="$*" -v now="$(date +%s)" -F"|" ' | ||||
|             BEGIN { | ||||
|                 rank[path] = 1 | ||||
|                 time[path] = now | ||||
|             } | ||||
|             $2 >= 1 { | ||||
|                 # drop ranks below 1 | ||||
|                 if( $1 == path ) { | ||||
|                     rank[$1] = $2 + 1 | ||||
|                     time[$1] = now | ||||
|                 } else { | ||||
|                     rank[$1] = $2 | ||||
|                     time[$1] = $3 | ||||
|                 } | ||||
|                 count += $2 | ||||
|             } | ||||
|             END { | ||||
|                 if( count > 9000 ) { | ||||
|                     # aging | ||||
|                     for( x in rank ) print x "|" 0.99*rank[x] "|" time[x] | ||||
|                 } else for( x in rank ) print x "|" rank[x] "|" time[x] | ||||
|             } | ||||
|         ' 2>/dev/null >| "$tempfile" | ||||
|         # do our best to avoid clobbering the datafile in a race condition. | ||||
|         if [ $? -ne 0 -a -f "$datafile" ]; then | ||||
|             env rm -f "$tempfile" | ||||
|         else | ||||
|             [ "$_Z_OWNER" ] && chown $_Z_OWNER:"$(id -ng $_Z_OWNER)" "$tempfile" | ||||
|             env mv -f "$tempfile" "$datafile" || env rm -f "$tempfile" | ||||
|         fi | ||||
|  | ||||
|     # tab completion | ||||
|     elif [ "$1" = "--complete" -a -s "$datafile" ]; then | ||||
|         _z_dirs | awk -v q="$2" -F"|" ' | ||||
|             BEGIN { | ||||
|                 q = substr(q, 3) | ||||
|                 if( q == tolower(q) ) imatch = 1 | ||||
|                 gsub(/ /, ".*", q) | ||||
|             } | ||||
|             { | ||||
|                 if( imatch ) { | ||||
|                     if( tolower($1) ~ q ) print $1 | ||||
|                 } else if( $1 ~ q ) print $1 | ||||
|             } | ||||
|         ' 2>/dev/null | ||||
|  | ||||
|     else | ||||
|         # list/go | ||||
|         local echo fnd last list opt typ | ||||
|         while [ "$1" ]; do case "$1" in | ||||
|             --) while [ "$1" ]; do shift; fnd="$fnd${fnd:+ }$1";done;; | ||||
|             -*) opt=${1:1}; while [ "$opt" ]; do case ${opt:0:1} in | ||||
|                     c) fnd="^$PWD $fnd";; | ||||
|                     e) echo=1;; | ||||
|                     h) echo "${_Z_CMD:-z} [-cehlrtx] args" >&2; return;; | ||||
|                     l) list=1;; | ||||
|                     r) typ="rank";; | ||||
|                     t) typ="recent";; | ||||
|                     x) sed -i -e "\:^${PWD}|.*:d" "$datafile";; | ||||
|                 esac; opt=${opt:1}; done;; | ||||
|              *) fnd="$fnd${fnd:+ }$1";; | ||||
|         esac; last=$1; [ "$#" -gt 0 ] && shift; done | ||||
|         [ "$fnd" -a "$fnd" != "^$PWD " ] || list=1 | ||||
|  | ||||
|         # if we hit enter on a completion just go there | ||||
|         case "$last" in | ||||
|             # completions will always start with / | ||||
|             /*) [ -z "$list" -a -d "$last" ] && builtin cd "$last" && return;; | ||||
|         esac | ||||
|  | ||||
|         # no file yet | ||||
|         [ -f "$datafile" ] || return | ||||
|  | ||||
|         local cd | ||||
|         cd="$( < <( _z_dirs ) awk -v t="$(date +%s)" -v list="$list" -v typ="$typ" -v q="$fnd" -F"|" ' | ||||
|             function frecent(rank, time) { | ||||
|                 # relate frequency and time | ||||
|                 dx = t - time | ||||
|                 if( dx < 3600 ) return rank * 4 | ||||
|                 if( dx < 86400 ) return rank * 2 | ||||
|                 if( dx < 604800 ) return rank / 2 | ||||
|                 return rank / 4 | ||||
|             } | ||||
|             function output(matches, best_match, common) { | ||||
|                 # list or return the desired directory | ||||
|                 if( list ) { | ||||
|                     cmd = "sort -g >&2" | ||||
|                     for( x in matches ) { | ||||
|                         if( matches[x] ) { | ||||
|                             printf "%-10s %s\n", matches[x], x | cmd | ||||
|                         } | ||||
|                     } | ||||
|                     if( common ) { | ||||
|                         printf "%-10s %s\n", "common:", common > "/dev/stderr" | ||||
|                     } | ||||
|                 } else { | ||||
|                     if( common ) best_match = common | ||||
|                     print best_match | ||||
|                 } | ||||
|             } | ||||
|             function common(matches) { | ||||
|                 # find the common root of a list of matches, if it exists | ||||
|                 for( x in matches ) { | ||||
|                     if( matches[x] && (!short || length(x) < length(short)) ) { | ||||
|                         short = x | ||||
|                     } | ||||
|                 } | ||||
|                 if( short == "/" ) return | ||||
|                 for( x in matches ) if( matches[x] && index(x, short) != 1 ) { | ||||
|                     return | ||||
|                 } | ||||
|                 return short | ||||
|             } | ||||
|             BEGIN { | ||||
|                 gsub(" ", ".*", q) | ||||
|                 hi_rank = ihi_rank = -9999999999 | ||||
|             } | ||||
|             { | ||||
|                 if( typ == "rank" ) { | ||||
|                     rank = $2 | ||||
|                 } else if( typ == "recent" ) { | ||||
|                     rank = $3 - t | ||||
|                 } else rank = frecent($2, $3) | ||||
|                 if( $1 ~ q ) { | ||||
|                     matches[$1] = rank | ||||
|                 } else if( tolower($1) ~ tolower(q) ) imatches[$1] = rank | ||||
|                 if( matches[$1] && matches[$1] > hi_rank ) { | ||||
|                     best_match = $1 | ||||
|                     hi_rank = matches[$1] | ||||
|                 } else if( imatches[$1] && imatches[$1] > ihi_rank ) { | ||||
|                     ibest_match = $1 | ||||
|                     ihi_rank = imatches[$1] | ||||
|                 } | ||||
|             } | ||||
|             END { | ||||
|                 # prefer case sensitive | ||||
|                 if( best_match ) { | ||||
|                     output(matches, best_match, common(matches)) | ||||
|                 } else if( ibest_match ) { | ||||
|                     output(imatches, ibest_match, common(imatches)) | ||||
|                 } | ||||
|             } | ||||
|         ')" | ||||
|  | ||||
|         [ $? -eq 0 ] && [ "$cd" ] && { | ||||
|           if [ "$echo" ]; then echo "$cd"; else builtin cd "$cd"; fi | ||||
|         } | ||||
|     fi | ||||
| } | ||||
|  | ||||
| alias ${_Z_CMD:-z}='_z 2>&1' | ||||
|  | ||||
| [ "$_Z_NO_RESOLVE_SYMLINKS" ] || _Z_RESOLVE_SYMLINKS="-P" | ||||
|  | ||||
| if type compctl >/dev/null 2>&1; then | ||||
|     # zsh | ||||
|     [ "$_Z_NO_PROMPT_COMMAND" ] || { | ||||
|         # populate directory list, avoid clobbering any other precmds. | ||||
|         if [ "$_Z_NO_RESOLVE_SYMLINKS" ]; then | ||||
|             _z_precmd() { | ||||
|                 (_z --add "${PWD:a}" &) | ||||
|                 # Reference $RANDOM to refresh its value inside the subshell | ||||
|                 # Otherwise, multiple runs get the same value | ||||
|                 : $RANDOM | ||||
|             } | ||||
|         else | ||||
|             _z_precmd() { | ||||
|                 (_z --add "${PWD:A}" &) | ||||
|                 # Reference $RANDOM to refresh its value inside the subshell | ||||
|                 # Otherwise, multiple runs get the same value | ||||
|                 : $RANDOM | ||||
|             } | ||||
|         fi | ||||
|         [[ -n "${precmd_functions[(r)_z_precmd]}" ]] || { | ||||
|             precmd_functions[$(($#precmd_functions+1))]=_z_precmd | ||||
|         } | ||||
|     } | ||||
|     _z_zsh_tab_completion() { | ||||
|         # tab completion | ||||
|         local compl | ||||
|         read -l compl | ||||
|         reply=(${(f)"$(_z --complete "$compl")"}) | ||||
|     } | ||||
|     compctl -U -K _z_zsh_tab_completion _z | ||||
| elif type complete >/dev/null 2>&1; then | ||||
|     # bash | ||||
|     # tab completion | ||||
|     complete -o filenames -C '_z --complete "$COMP_LINE"' ${_Z_CMD:-z} | ||||
|     [ "$_Z_NO_PROMPT_COMMAND" ] || { | ||||
|         # populate directory list. avoid clobbering other PROMPT_COMMANDs. | ||||
|         grep "_z --add" <<< "$PROMPT_COMMAND" >/dev/null || { | ||||
|             PROMPT_COMMAND="$PROMPT_COMMAND"$'\n''(_z --add "$(command pwd '$_Z_RESOLVE_SYMLINKS' 2>/dev/null)" 2>/dev/null &);' | ||||
|         } | ||||
|     } | ||||
| fi | ||||
		Reference in New Issue
	
	Block a user