
#ZSH AUTOJUMP PLUGIN CODE#
By having Zsh-z only use Zsh ( rupa/z uses a hybrid shell code that works on bash as well), I have been able to implement a zsh/system-based file-locking mechanism similar to the one once proposed for rupa/z. Race conditions have always been a problem with rupa/z, and users of that utility will occasionally lose their. There is a noteworthy stability increase as well. I have found that, in those environments, switching directories using Zsh-z can be over 100% faster than it is using rupa/z. The performance increase is impressive, particularly on systems where forking is slow, such as Cygwin, MSYS2, and WSL. I decided to translate it, awk parts and all, into pure Zsh script, to see if by eliminating calls to external tools ( awk, sort, date, sed, mv, rm, and chown) and reducing forking through subshells I could make it faster. It was quite possibly my most used command line tool for a couple of years. Zsh-z is a native Zsh port of rupa/z, a tool written for bash and Zsh that uses embedded awk scripts to do the heavy lifting. After using Zsh-z for a little while, you will get to where you want to be by typing considerably less than you would need if you were using cd. z zsh might also get you there, and z c/z might prove to be even more specific - it all depends on your habits and how much time you have been using Zsh-z to build up a database. It is then in the position to guess where you want to go when you type a partial string, e.g., z src might take you to ~/src/zsh. It works by keeping track of when you go to directories and how much time you spend in them. And you can also have a random theme loaded from a defined list.Zsh-z is a command line tool that allows you to jump quickly to directories that you have visited frequently in the past, or recently - but most often a combination of the two (a concept known as "frecency"). And if you think variety is the spice of life you can have a random theme loaded each time Oh My Zsh is loaded. There are around 140 other themes to try. Plugins=(git cp brew kubectl history web-search encode64) ThemesĪnother strong point of Oh My Zsh is the huge number of themes. You add your desired plugins to your plugin list with spaces between them. Web Search – adds aliases for searching with Google, Wiki, Bing, YouTube and other popular services.Ubuntu – adds completions and aliases for Ubuntu.Python – adds aliases for useful Python commands.

kubectl – adds completion for the Kubernetes cluster manager, as well as some aliases for common kubectl commands.history – useful aliases for using the history command.git – provides many aliases and other useful functions (there are other git plugins we love too).encode64 – alias for encoding/decoding using the base64 command.emacs – uses the Emacs daemon capability, allowing the user to quickly open frames, whether they are opened in a terminal via a ssh connection, or X frames opened on the same host.docker – adds auto-completion and aliases for Docker.

copypath – copies the path of given directory or file to the system clipboard.copybuffer – adds the ctrl-o keyboard shortcut to copy the current text in the command line to the system clipboard.colorize – syntax-highlight file contents of over 300 supported languages and other text formats.catimg – displays images on the terminal using the catimg.sh script.brew – adds several aliases for common brew commands.autojump – loads the autojump navigation tool.alias – list the shortcuts that are currently available based on the plugins you have enabled.
