{"id":13910983,"url":"https://github.com/MenkeTechnologies/zpwr","last_synced_at":"2025-07-18T10:32:02.414Z","repository":{"id":37248342,"uuid":"323112269","full_name":"MenkeTechnologies/zpwr","owner":"MenkeTechnologies","description":"ZPWR =\u003e World's Most Advanced UNIX Terminal Environment","archived":false,"fork":false,"pushed_at":"2025-04-15T15:45:51.000Z","size":15439,"stargazers_count":197,"open_issues_count":1,"forks_count":11,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-15T16:49:56.772Z","etag":null,"topics":["bat","emacs","exa","fd","neovim","powerlevel10k","tmux","vim","zinit","zsh"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MenkeTechnologies.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"license.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-12-20T16:12:45.000Z","updated_at":"2025-04-15T15:44:45.000Z","dependencies_parsed_at":"2023-02-10T18:01:20.586Z","dependency_job_id":"6d87e475-f82c-4eb9-922c-083a7a286705","html_url":"https://github.com/MenkeTechnologies/zpwr","commit_stats":null,"previous_names":[],"tags_count":559,"template":false,"template_full_name":null,"purl":"pkg:github/MenkeTechnologies/zpwr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MenkeTechnologies%2Fzpwr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MenkeTechnologies%2Fzpwr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MenkeTechnologies%2Fzpwr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MenkeTechnologies%2Fzpwr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MenkeTechnologies","download_url":"https://codeload.github.com/MenkeTechnologies/zpwr/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MenkeTechnologies%2Fzpwr/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265742312,"owners_count":23820826,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bat","emacs","exa","fd","neovim","powerlevel10k","tmux","vim","zinit","zsh"],"created_at":"2024-08-07T00:01:53.012Z","updated_at":"2025-07-18T10:32:02.391Z","avatar_url":"https://github.com/MenkeTechnologies.png","language":"Shell","funding_links":[],"categories":["Setups","Shell"],"sub_categories":["zinit"],"readme":"# ![zpwr](https://menketechnologies.github.io/img/zpwr.png?raw=true): World's Most Advanced UNIX Terminal Environment \n\n![tmux final](https://menketechnologies.github.io/img/tmuxfinal1.png?raw=true)\n\n#### Master [![Build Status](https://travis-ci.com/MenkeTechnologies/zpwr.svg?branch=master)](https://travis-ci.com/MenkeTechnologies/zpwr) Dev [![Build Status](https://travis-ci.com/MenkeTechnologies/zpwr.svg?branch=dev)](https://travis-ci.com/MenkeTechnologies/zpwr) Version [![GitHub tag](https://img.shields.io/github/tag/MenkeTechnologies/zpwr.svg)](https://GitHub.com/MenkeTechnologies/zpwr/tags/) Commits [![GitHub commits](https://img.shields.io/github/commits-since/MenkeTechnologies/zpwr/v1.0.svg)](https://GitHub.com/MenkeTechnologies/zpwr/commit/) Contributors [![All Contributors](https://img.shields.io/badge/all_contributors-1-orange.svg?style=flat-square)](#contributors)\n\n\nThis project started out as my own version of Hashrocket's [Dotmatrix](https://github.com/hashrocket/dotmatrix) repo and it then grew.\n\nIt is an extremely powerful custom terminal environment built on top of [zinit](https://github.com/zdharma-continuum/zinit).\n\nThere is a significant amount of custom zsh, bash, vimL and perl code that I wrote to support very advanced functionality that I desired.\n\n## Contents\n\n- [Full Install](#full-installation-instructions-to-zpwr)\n- [Install Options](#installation-options)\n- [Features](#zpwr-features)\n- [Dependencies](#zpwr-dependencies)\n- [Supported Operating Systems](#supported-operating-systems)\n- [ZPWR Extras Not Installed](#zpwr-extras-not-installed)\n- [Limited Install](#limited-install)\n- [Uninstall](#uninstall)\n- [Setup Step: Font](#font)\n- [Updating](#updating)\n- [Tmux Prefix Detail](#tmux-prefix) - How To\n- [Vim Autosave](#autosaving-vim-plugins) - Feature\n- [Auto Display Completion Choices](#auto-list-completions) - Feature\n- [Bypass Space Expansion](#bypassing-expansion-on-space) - How To\n- [Turning Off Ponies And Colors Globally](#turning-off-ponies-and-colors-globally) - How To\n- [Vim Language Support For Tmux Right Pane](#running-script-from-vim-in-tmux-right-pane-is-supported-for-these-languages)\n- [Main Window](#tmux-main-window) - Feature\n- [Personal Config File Information](#personal-config) - Detail\n- [ZPWR verb menu completion](#zpwr-verbs) - Feature\n- [ZPWR auto menu completion](#zpwr-start-auto) - Feature\n- [Github Account Environment Variable](#zpwr_github_account-variable) - Setup Step\n- [Adding A New Zsh Plugin](#adding-more-zinit-plugins) - How To\n- [Configurable Environment Variables](#environment-variables) - Feature\n- [Test Suite](#tests)\n- [Super Fast Shell Startup Speed](#shell-startup-speed) - Feature\n- [Contributing](#contributing) - documentation, marketing, video tutorials, GIFs/screenshots in README and expanding the tests\n- [Warning](#warnings) - The only user modifiable files are the user token files\n- [MacbookPro Screenshots](#running-on-a-macbookpro)\n- [RasberryPi Screenshots](#running-on-the-raspberry-pi-3)\n- [Rock64 Screenshots](#running-on-the-rock64)\n- [KeyBindings](#keybindings-generated-with-source-keybindingstoreadmezsh--readmemd)\n- [Tmux Keybindings](#tmux-keybindings-tmux-lsk)\n- [Zsh Vim Insert Mode Keybindings](#zsh-vim-insert-mode-keybindings-bindkey--m-viins--l)\n- [Zsh Vim Normal Mode Keybindings](#zsh-vim-normal-mode-keybindings-bindkey--m-vicmd--l)\n- [Zsh Vim MenuSelect Mode Keybindings](#zsh-menuselect-mode-keybindings-bindkey--m-menuselect--l)\n- [Zsh Vim Visual Mode Keybindings](#zsh-vim-visual-mode-keybindings-bindkey--m-visual--l)\n- [Zsh Vim ListScroll Mode Keybindings](#zsh-listscroll-mode-keybindings-bindkey--m-listscroll--l)\n- [Zsh Vim Operator Mode Keybindings](#zsh-vim-operator-mode-keybindings-bindkey--m-viopp--l)\n- [Vim Insert Mode Keybindings](#vim-keybindings-insert-mode)\n- [Vim Normal Mode Keybindings](#vim-keybindings-normal-mode)\n- [Vim Keybindings Visual Mode](#vim-keybindings-visual-mode)\n- [Vim Keybindings Command Colon Mode](#vim-keybindings-command-colon-mode)\n\n# Full Installation Instructions to `~/.zpwr`\n\n```sh\nsh -c \"$(curl -fsSL raw.githubusercontent.com/MenkeTechnologies/zpwr/master/install/s)\"\n```\nOR\n```sh\ngit clone --depth 1 -- https://github.com/MenkeTechnologies/zpwr.git ~/.zpwr \u0026\u0026 cd ~/.zpwr/install \u0026\u0026 ./zpwrInstall.sh\n```\n\nThe installer will confirm what will be installed and overwritten before executing.\n\nZinit will install plugins on first zsh after install.\n\n## Full Installation Instructions to `$ZPWR`\nTo install to a custom directory, clone the project to custom directory and start the installer.  ZPWR will pick up its location and export ZPWR to that directory.\nThis also means you can move ZPWR after install after updating the sym links that are in `$HOME`.  First `export ZPWR_INSTALL=\u003cmydirectory\u003e/install` in current shell.  Replace `\u003cmydirectory\u003e` with your new install dir and keep `/install` in the export.\nThen run `zpwr regenconfiglinks` in same shell to create new sym links pointing to your new directory `\u003cmydirectory\u003e`.  Then exec a new zsh with `exec zsh` and all environment variables will be set accordingly.\n\n## Installation Options to `~/.zpwr/install/zpwrInstall.sh`\n```sh\n    Options:\n        -a  Install all dependencies\n        -c  Copy just configs\n        -n  Do not start tmux at end of installer\n        -s  Skip main section\n        -h  Display this message\n        -V  Display script version\n```\n\n\n## ZPWR Features\n- 410+ zpwr subcommands covering most of ZPWR functionality with colorized zsh menucompletion `zpwr \u003ctab\u003e`\n- 175+ centralized environment variables in ZPWR namespace to control functionality\n- 775+ centralized ZPWR files in `~/.zpwr` allowing easy uninstall\n- 14k.1+ zsh tab completions including [zsh-more-completions](https://github.com/MenkeTechnologies/zsh-more-completions)\n- 175+ bash, perl, zsh and python scripts in `~/.zpwr/scripts` or `$ZPWR_SCRIPTS` git tracked\n- 2000+ aliases\n- 360+ git aliases from OMZ git plugin and [zsh-git-acp](https://github.com/MenkeTechnologies/zsh-git-acp)\n- user specific ZPWR files in `~/.zpwr/local` git ignored\n- installer specific ZPWR files in `~/.zpwr/install` git tracked\n- ZPWR installer ouput in `~/.zpwr/local/installer` git ignored\n- central on/off control of zpwr colorful output with `ZPWR_COLORS`\n- zsh completion with descriptions for parameters, regular, suffix and global aliases\n- spelling correction, abbreviation expansion and automatic capitalization on the command line [zsh-expand](https://github.com/MenkeTechnologies/zsh-expand)\n- snippets with tabstops that expand with spacebar and advance to next stop with C-o [zsh-expand](https://github.com/MenkeTechnologies/zsh-expand)\n- expanding regular aliases and global aliases from zsh menu selection and in vim insert mode [zsh-expand](https://github.com/MenkeTechnologies/zsh-expand)\n- optional preexec expansion of regular aliases and global aliases or only history expansion of aliases\n- color-coded groups of zsh menu completion for commands, aliases, reswords, functions, builtins, parameters, files, command history, correction\n- color-coded groups of zsh menu completion for man pages\n- color-coded groups of zsh menu completion for git subcommands\n- color-coded groups of zsh menu completion for git objects\n- heavily colorized man pages [zsh-very-colorful-manuals](https://github.com/MenkeTechnologies/zsh-very-colorful-manuals)\n- insert matching quotes, brackets and parentheses like most IDEs [zsh-autopair](https://github.com/hlissner/zsh-autopair)\n- custom keybinding to open files most recently edited based on viminfo and emacs recentf and placed into fzf for fuzzy searching `zpwr vimrecent`\n- vim keybindings (insert, normal and visual modes) to run current code file open in vim in tmux pane to right\n- vim keybindings (insert, normal and visual modes) to run current vim selection in tmux pane to right as standalone script\n- vim keybindings (insert, normal and visual modes) to run current vim selection in tmux pane to right in REPL\n- fzf preview pane show contents of JAR, WAR, deb, rpm, zip, tgz and gzip files controlled by central FZF.*OPTS env vars\n- ergonomic, repeating tmux keybindings for next and previous windows\n- zsh keybindings to fzf search file names and syntax highlighted, numbered file preview from bat or pygmentize `zpwr vimfilesearch`\n- zsh keybindings to fzf search file contents and syntax highlighted, numbered file preview from bat or pygmentize `zpwr vimwordsearch`\n- zsh keybindings to fzf search of network processes with lsof return PIDs `zpwr lsof`\n- zsh function to cache all git directories `zpwr regengitrepocache`\n- zsh function for fzf searching of all git directories `zpwr gitrepos`\n- zsh function for fzf searching of all dirty git directories `zpwr gitreposdirty`\n- zsh function to exec cmd in all git directories `zpwr gitreposexec`\n- integration of [z](https://github.com/MenkeTechnologies/zsh-z) frecency database into _files completion\n- integration of [fasd](https://github.com/MenkeTechnologies/fasd-simple) frecency database into _files completion\n- zsh menucompletion for [z](https://github.com/MenkeTechnologies/zsh-z) command based on frecency [z](https://github.com/MenkeTechnologies/zsh-z) and [fasd](https://github.com/MenkeTechnologies/fasd-simple) databases\n- keybindings to save to mysql learning table [zsh-learn](https://github.com/MenkeTechnologies/zsh-learn)\n- functions `zpwr searchl` to search from mysql learning table [zsh-learn](https://github.com/MenkeTechnologies/zsh-learn)\n- `zpwr redo \u003cnumber/regex...\u003e` prints to prompt SQL update statements for learning items [zsh-learn](https://github.com/MenkeTechnologies/zsh-learn)\n- `zpwr redosql \u003cnumber/regex...\u003e` prints to vim SQL update statements for learning items that run once vim is quit [zsh-learn](https://github.com/MenkeTechnologies/zsh-learn)\n- zle keybinding formats newlines and spaces before saving to mysql learning database [zsh-learn](https://github.com/MenkeTechnologies/zsh-learn)\n- zsh plugins loading based on OS\n- zsh functions autoloading based on OS\n- tmux keybindings and scripts based on OS\n- custom ZPWR banner with latest commit and tag when `zpwr update`, `zpwr banner` or `zpwr about` and `$ZPWR_INSTALL/zpwrInstall.sh` run\n- custom banners when new shell is launched `ZPWR_BANNER_COMMAND`\n- zle sed sub widget to replace globally on current command line [zsh-sed-sub](https://github.com/MenkeTechnologies/zsh-sed-sub)\n- expanded vim text objects on command line\n- vim extract method from visual selection for shell, perl and python scripts (`gv` to select extracted)\n- vim extract variable under cursor for shell, perl and python scripts (`gv` to select extracted)\n- vim extract variable from visual selection for shell, perl and python scripts (`gv` to select extracted)\n- vim autohighlight word under cursor after delay like JetBrains IDEs\n- software updater script, `source ~/.zpwr/scripts/autoUpdater.sh`,  on 24 hour loop\n- colorized side diffs on zsh keybinding before git push [zsh-git-acp](https://github.com/MenkeTechnologies/zsh-git-acp)\n- zsh keybindings to git add, commit and push with commit message from current command line [zsh-git-acp](https://github.com/MenkeTechnologies/zsh-git-acp)\n- git commit blacklisted directories [zsh-git-acp](https://github.com/MenkeTechnologies/zsh-git-acp)\n- zle quote swapper widget\n- zsh, tmux and vim keybindings to copy/paste to system clipboard\n- shell function to pull down latest code changes from this repo with `zpwr update`\n- shell function that is wrapper around bat that works with text, jars, tgz, rpm, deb and zips with `zpwr cat` or `c`\n- shell function uses same shell code to generate output that default FZF preview pane does with `zpwr cat` or `c`\n- shell function automatically runs sudo when file is not readable with `zpwr cat` or `c`\n- shell function that cds to any of parent directories with zsh completion with `zpwr cdup` or `r`\n- zpwrClearList function that run clear and ls and show stats for commands, files, aliases, functions etc\n- color-coded, grouped zpwrClearList zsh completion\n- search google from tmux mouse drag selection (tmux's copy-mode-vi)\n- open URLs and files from tmux mouse drag selection (tmux's copy-mode-vi)\n- zpwr subcommands count with `zpwr verbscount`\n- zpwr subcommands into fzf then execed with `zpwr verbs`\n- zpwr subcommands into fzf with `zpwr verbsedit` then onto command line\n- zpwr environment counts with `zpwr envcounts`\n- centralized FZF preview pane customization with environment variables\n- environment variables in ZPWR namespace in vim YCM completion from ctags generated `~/tags`\n- systemd functions for starting/enabling, stopping/disabling service with zsh completion\n- systemd service, poll.service, that polls github and download latest zpwr code\n- systemd service, learn.service, that runs learning collection API\n- restart function that launches poll.service and learn by enabling and starting in systemd\n- 2.8k+ line README\n- 50k+ LOC\n\n\n## ZPWR Dependencies\n- zsh\n- tmux\n- neovim with 79 plugins and python3/node support\n- perl\n- bash (4.0+, 3.2 not supported)\n- zinit with 95+ plugins of which 30+ are custom\n- forked powerlevel10k zsh prompt with ~dirs\n- youcompleteme\n- ultisnips\n- supertab\n- pathogen\n- vundle\n- iftop-color\n- htop\n- ccze\n- rust/cargo\n- rustup\n- exa\n- bat\n- fd-find\n- thumbs\n- ripgrep\n- cargo-update\n- go\n- fzf\n- gotop\n- lolcat\n- python3\n- powerline-status for tmux\n- vim-airline status bar\n- grc\n- mycli\n- pgcli\n- ponysay\n- pygments\n\n# Supported Operating Systems:\n- macOS\n- raspbian\n- debian\n- mx linux\n- garuda\n- popos!\n- freebsd\n- kali\n- fedora\n- oraclelinux\n- centos\n- debian\n- alpine\n- arch\n- artix\n- manjaro\n- arcolinux\n- endeavouros\n- mint\n- zorin\n- parrot OS\n- WSL ubuntu/kali/suse/leap/fedora\n- SUSE\n- AMI\n\n## ZPWR Extras Not Installed\n- JetBrains .ideamvimrc\n- JetBrains plugin list\n- JetBrains settings zip\n- JetBrains JVM Options idea.vmoptions\n- Spacemacs Config with 490+ packages in .spacemacs\n- Emacs Yasnippets\n- Alacritty Main Config\n- Alacritty Color Theme\n- macOS Terminal Color Theme\n- gtags from zpwr and .globalrc\n- .gitconfig and .gitignore_global\n\n## Limited Install\n```sh\ngit clone --depth 1 -- https://github.com/MenkeTechnologies/zpwr.git ~/.zpwr \u0026\u0026 cd ~/.zpwr/install \u0026\u0026 ./zpwrInstall.sh -c\n```\nThis will install just config files not dependencies.\n\nYou can then run each install shell script in `~/.zpwr/install` manually to install just vim plugins or cargo packages etc.\n\n## Install Destination\n\nAll zpwr custom configs will be installed to `~/.zpwr` by default.  This is the `ZPWR` environment variable.  `~/.zshrc`, `~/.vimrc`, `~/.tmux.conf` and other config files are sym linked into home dir to be read by the respective program.\nYour old configs for these files will be found in a directory name approximately `~/.zpwr/local/username.rc.bak.date` after install.  Exact directory name is generated as shown.\n```sh\nbackupdir=\"$ZPWR_HIDDEN_DIR/$USER.rc.bak.$(date +'%m.%d.%Y')\"\n```\nInstaller artifacts such as log files and cloned repos go into `~/.zpwr/local/installer`.\n\n## Uninstall\n\nRun `zpwr uninstall`.  This will ask for confirmation before moving backups dirs to `$HOME`, unlinking all configs from `$HOME` and deleting all config dirs.\n\nOR\n\n1. Run `zpwr rmconfiglinks` (`zpwrUnlinkConf`) to unlink all zpwr config symlinks.\n2. Copy all configs from backup dir mentioned above to home directory most importantly the `.zshrc`, `.vimrc` and `.tmux.conf`.\n3. Remove the zpwr dir as shown.\n```sh\nrm -rf ~/.zpwr\n```\nThis will not uninstall packages installed by system package manager, pip modules, gems, vim plugins, tmux plugins and zsh plugins.\nYou must remove these manually if desired.\nIf desired you can also uninstall zinit with ```rm -rf ~/.zinit```.  Make sure `~/.zshrc` and other config files in `$HOME` are original versions.\n\n## Font\nYou need to change the Terminal font to display the Powerline triangles and other special characters in the Powerlevel10k `$PROMPT`.\n\nThe installer installs Hack Nerd Font on the Mac with Homebrew and Powerline Symbols on Linux.  Consult your terminal emulator\ndocumentation for details on how to change the font.\n\n## Updating\n`zpwr updateall` (`zua`) links all zpwr config files, updates zpwr and zsh plugins, regens all caches and updates all dependencies. \n\n### zpwr update and zpwrLinkConf functions\nThere is a shell function called `zpwr update` that will update ZPWR by pulling the latest changes from this repository into `~/.zpwr`, links all zpwr config files and updates all zsh plugins.\nIt invokes `zpwr regenconfiglinks` (`zpwrLinkConf`) which sym links `~/.zshrc`, `~/.vimrc` and `~/.tmux.conf` and some other miscellaneous configuration files into `$HOME`.\n\n## Tmux prefix\nThe default tmux prefix key is C-a (control-a) on macOS so one can control inner tmux sessions (inside tmux session login to another computer and attach to its tmux session) on Linux/UNIX (prefix is C-b) separately.\nTo invoke C-a in the shell press C-a twice or to invoke C-b press C-b twice.\nThe left most segment of the tmux powerline status bar will be highlighted when the prefix is pressed and dehighlight when prefix is deactivated.\nYou change the prefixes in `~/.zpwr/local/.tokens.sh` with these environment variables.\n```sh\n# the tmux prefix on mac\nexport ZPWR_TMUX_PREFIX_MAC='C-a'\n# the tmux prefix on linux\nexport ZPWR_TMUX_PREFIX_LINUX='C-b'\n```\n\n## Autosaving Vim Plugins\nOne of the vim plugin is vim-autosave which autosaves all edits thus making `:w` unnecessary.\n`:u 0` in vim command(colon) mode will reset all changes in buffer which will then be autosaved.\n\n## Auto List Completions\n`zpwr startauto [delay]` will start automatically listing completion choices.  `zpwr stopauto` will disable this.  ZPWR_AUTO_COMPLETE will turn this on permanently with ZPWR_AUTO_COMPLETE_DELAY as delay time.\n```sh\n# list completion choices automatically\nexport ZPWR_AUTO_COMPLETE=false\n# delay before listing completion choices automatically\nexport ZPWR_AUTO_COMPLETE_DELAY=3.0\n```\n\n## Bypassing expansion on space\nC-Space (Control-Space or actually the ^@ terminal escape code) will bypass all expansion of globbing, aliases and words.\nExpansion can be disabled entirely by adding `zinit unload MenkeTechnologies/zsh-expand \u0026\u003e/dev/null` to `~/.zpwr/local/.tokens-post.sh` or removing [zsh-expand](https://github.com/MenkeTechnologies/zsh-expand) from ZPWR_GH_PLUGINS array in `~/.zpwr/local/.tokens.sh`.\n\n\u003e ~/.zpwr/local/.tokens-post.sh\n```sh\nzinit unload MenkeTechnologies/zsh-expand \u0026\u003e/dev/null\n```\n\nOR\n\n\u003e ~/.zpwr/local/.tokens.sh\n```sh\nZPWR_GH_PLUGINS[$ZPWR_GH_PLUGINS[(i)MenkeTechnologies/zsh-expand]]=()\n\n```\n\nAlternatively, change these env vars to false in `~/.zpwr/local/.tokens.sh`.  The first turn off expansion in any position.\nThe second variable turns off expansion in second position.  For example with sudo/zpwr/env in the first position and the alias to expand in the second position on the command line.  The third turn offs glob/history/param etc expansion in any position.  The fourth turns off spelling correction in any position.\n\u003e ~/.zpwr/local/.tokens.sh\n```sh\n# disable all expansion\nexport ZPWR_EXPAND=false\n# aliases expand in second position after sudo\nexport ZPWR_EXPAND_SECOND_POSITION=false\n# expand globs, history etc with zle expand-word\nexport ZPWR_EXPAND_NATIVE=false\n# spelling correction in zsh-expand plugin\nexport ZPWR_CORRECT=false\n# expand inside \"\nexport ZPWR_EXPAND_QUOTE_DOUBLE=true\n# expand inside '\nexport ZPWR_EXPAND_QUOTE_SINGLE=false\n```\n\n## Turning off ponies (default is off) and colors globally\nTo turn off all ponysay ponies, colored groups and colored group descriptions, add to tokens file.\n\u003e ~/.zpwr/local/.tokens.sh\n```sh\n# ponysay banner when shell startup finishes\nexport ZPWR_BANNER_TYPE=noponies\n# output is more colorful\nexport ZPWR_COLORS=false\n# colored section headers\nexport ZPWR_COLORS_SECTIONS=false\n```\n\n## Running script from vim in tmux right pane is supported for these languages\n\u003e ~/.vimrc\n```vim\n    let supportedTypes=['sh','zsh', 'cr','py','rb','pl', 'clj', 'tcl', 'vim', 'lisp', 'hs', 'ml', 'coffee', 'swift', 'lua', 'java', 'f90']\n```\n\nFile ending of currently edited file in vim determines the interpreter used by the bash script `$ZPWR_SCRIPTS/runner.sh` which defaults to `~/.zpwr/scripts/runner.sh`\n\n## Tmux Main Window\nThe main window show in the screenshots is started by prefix-D (tmux prefix definition mentioned above) in an empty tmux window.  This sources a tmux script `~/.zpwr/tmux/control-window.conf`.\nAlternatively you could invoke the script by prefix-: `source-file ~/.zpwr/tmux/control-window.conf` or in the terminal with `tmux source-file ~/.zpwr/tmux/control-window.conf` in an empty tmux pane.\n\n## Personal Config\nStartup shell files will source `~/.zpwr/local/.tokens.sh` before zsh config and zinit startup so you can put your additional code there.  This file will not be overridden with the `zpwr update` shell function.  You can override installer variables in this file before install.  Because this file is sourced by bash installer and zsh startup you should check if the shell is zsh before any zsh only features like `zpwrIsZsh \u0026\u0026 myZshConfig`.  Startup shell files will source `~/.zpwr/local/.tokens-post.sh` after all zsh config and zinit startup.\n\nTo use a different .vimrc and/or tmux.conf, set these environment variables to absolute path of custom configs and then `zpwr regenconfiglinks`.\n\n\u003e ~/.zpwr/local/.tokens.sh\n```sh\n# user tmux.conf file\nexport ZPWR_TMUXRC=\"$HOME/.tmux.conf\"\n# user vimrc file\nexport ZPWR_VIMRC=\"$HOME/.vimrc\"\n```\n\nRunning `zpwr regen` will regenerate all cache files in `~/.zpwr/local` and create a ctags file named `~/tags` in your home directory.\nYCM (vim code completion engine) will source this file (`autocmd filetype * set tags+=~/tags` includes `~/tags`), while providing completion so ZPWR env vars vim code completion in `~/.zpwr/local/.tokens.sh` should work.  Inside vim `\u003cSpace\u003e]` will jump to definition of the tag in the preview window.\n\n## zpwr verbs\nTyping `zpwr \u003ctab\u003e` will invoked zsh menucompletion for zpwr verbs/subcommands.  These subcommands invoke other shell functions passing all args.  `zpwr verbs` will list them all in fzf and then execute selected verbs (fzf multiselection is enabled).  `zpwr verbsedit` puts selected verbs onto command line for editing.\n\n## ZPWR_GITHUB_ACCOUNT variable\nChange in `~/.zpwr/local/.tokens.sh`\n```sh\nexport ZPWR_GITHUB_ACCOUNT='MenkeTechnologies'\n```\nto match your GitHub account name to enable various functionality with your account like `zpwr github`, `zpwr githubcreate` and `zpwr githubdelete` shell functions for opening your GitHub home page, creating and deleting GitHub repos from the command line respectively.\n\n## Adding more Zinit plugins\nAdd in `~/.zpwr/local/.tokens-post.sh` your extra plugins like such\n```sh\nzinit ice lucid nocompile wait'0a'\nzinit load \\\nhlissner/zsh-autopair\n```\n\n## Environment Variables\nThese are environment variables set in `~/.zpwr/env/.zpwr_env.sh` and `~/.zpwr/env/.zpwr_re_env.sh` which you can override in your `~/.zpwr/local/.tokens.sh` to customize the behavior of the terminal setup.  The file `~/.zpwr/env/.zpwr_re_env.sh` is reread after user tokens file to update environment variables that depend on previous variables that could change in user token file.\n```sh\n# Global Environment Variables for ZPWR by MenkeTechnologies\n# More Environment Variables in ~/.zpwr/env/.shell_aliases_functions.sh near top of file\n# override in ~/.zpwr/local/.tokens.sh, ~/.zpwr/local is git ignored\n# see README.md\n# linux OS SSH auto attach to tmux sessions\nexport ZPWR_AUTO_ATTACH=true\n# list completion choices automatically\nexport ZPWR_AUTO_COMPLETE=false\n# delay before listing completion choices automatically\nexport ZPWR_AUTO_COMPLETE_DELAY=3.0\n# run ls after rm and other modifying commands such as touch automatically\nexport ZPWR_AUTO_LS_RM=true\n# run ls after cd automatically\nexport ZPWR_AUTO_LS_CD=true\n# auto select first item of menuselect\nexport ZPWR_AUTO_SELECT=true\n# clear and ls before and after banner\nexport ZPWR_BANNER_CLEARLIST=true\n# cd to Desktop after banner Darwin\nexport ZPWR_BANNER_DESKTOP_DARWIN=false\n# cd to Desktop after banner Linux\nexport ZPWR_BANNER_DESKTOP_LINUX=true\n# ponysay banner when shell startup finishes\nexport ZPWR_BANNER_TYPE=ponies\n# bat (syntax highlighting) theme\nexport ZPWR_BAT_THEME='GitHub'\n# this the description separator in compsys option completions (ls -\u003ctab\u003e)\n# and the separator for function se() between row number and learning\nexport ZPWR_CHAR_LOGO='\u003c\u003c)(\u003e\u003e'\n# group description leading chars\nexport ZPWR_DESC_PRE='-\u003c\u003c'\n# group description trailing chars\nexport ZPWR_DESC_POST='\u003e\u003e-'\n# group description text color ANSI codes\nexport ZPWR_DESC_TEXT_COLOR='34'\n# group description leading chars color ANSI codes\nexport ZPWR_DESC_PRE_COLOR='1;31'\n# group description trailing chars color ANSI codes\nexport ZPWR_DESC_POST_COLOR='1;31'\n# output is more colorful\nexport ZPWR_COLORS=true\n# colored section headers\nexport ZPWR_COLORS_SECTIONS=true\n# zpwr \u003ctab\u003e is more colorful\nexport ZPWR_COLORS_VERBS=true\n# common colors ANSI codes\nexport ZPWR_COLOR_BLUE=\"\\x1b[37;44m\"\nexport ZPWR_COLOR_RED=\"\\x1b[31m\"\nexport ZPWR_COLOR_RESET=\"\\x1b[0m\"\n# ANSI styling codes for git commits\nexport ZPWR_COMMIT_STYLE='1;37;45'\n# named compsys colors zsh pattern and ANSI codes\nexport ZPWR_NAMED_COLORS='=(#b)(*)=1;37;46'\n# file prefix compsys colors\nexport ZPWR_COMMON_ZSTYLE_OPTS='reply=(\"${PREFIX:+=(#bi)($PREFIX:t)(?)(*)==37;45=37;43=34}:${(s.:.)LS_COLORS}\")'\n# sudo prefix to add when you get permission denied\nexport ZPWR_SUDO_CMD='sudo -E'\n# sudo for aliases and expansion\nexport ZPWR_FULL_SUDO='\"builtin\" \"command\" \"sudo\" -E \"env\" PATH=\"$PATH\"'\n# the repo name for more zsh compsys completions\nexport ZPWR_COMPLETION_DIR='zsh-more-completions'\n# spelling correction in zsh-expand plugin\nexport ZPWR_CORRECT=true\n# aliases expand after spelling correction\nexport ZPWR_CORRECT_EXPAND=true\n# turns on debugging logs using zpwrLogDebug function\nexport ZPWR_DEBUG=false\n# default OMZ theme if Powerlevel 10k not used\nexport ZPWR_DEFAULT_OMZ_THEME=simonoff\n# for alternating pretty printer\nexport ZPWR_DELIMITER_CHAR='%'\n# the default vim command, override in tokens file\nexport ZPWR_VIM='nvim'\n# set EDITOR to $ZPWR_VIM command\nexport ZPWR_EDITOR_TO_VIM='true'\n# the emacs command\nexport ZPWR_EMACS='command emacs -nw'\n# the emacs client command\nexport ZPWR_EMACS_CLIENT='emacsclient -c -nw -a \"\"'\n# exa command invoked from zpwrClearList shows extended attributes\nexport ZPWR_EXA_EXTENDED=true\n# enable all expansion\nexport ZPWR_EXPAND=true\n# aliases expand in second position after sudo\nexport ZPWR_EXPAND_SECOND_POSITION=true\n# expand globs, history etc with zle expand-word\nexport ZPWR_EXPAND_NATIVE=true\n# aliases expand before command line is accepted\nexport ZPWR_EXPAND_PRE_EXEC=true\n# globs etc expand before command line is accepted\nexport ZPWR_EXPAND_PRE_EXEC_NATIVE=false\n# second pos expand before command line is accepted\nexport ZPWR_EXPAND_PRE_EXEC_SECOND_POSITION=true\n# expand inside \"\nexport ZPWR_EXPAND_QUOTE_DOUBLE=true\n# expand inside '\nexport ZPWR_EXPAND_QUOTE_SINGLE=false\n# command for fd\nexport ZPWR_FD='command fd --follow --type file --threads 8'\n# command for all fzf\nexport ZPWR_FZF='fzf --ansi'\n# prompt for all fzf\nexport ZPWR_FZF_LOGO='\u003c\u003c)ZPWR(\u003e\u003e'\n# GH username\nexport ZPWR_GITHUB_ACCOUNT='MenkeTechnologies'\n# the char that prefixes global aliases like je\u003cspace\u003e\nexport ZPWR_GLOBAL_ALIAS_PREFIX=j\n# whether to search interactively in menuselect\nexport ZPWR_INTERACTIVE_MENU_SELECT=true\n# timeout for keybindings\nexport ZPWR_KEYTIMEOUT=10\n# whether to include all the zpwr learning functions\nexport ZPWR_LEARN=true\n# zpwrLogColor function underscore color ANSI codes\nexport ZPWR_LOG_UNDER_COLOR='\\x1b[0;34m'\n# zpwrLogColor function quote color\nexport ZPWR_LOG_QUOTE_COLOR='\\x1b[0;35m'\n# zpwrLogColor function timestamp color\nexport ZPWR_LOG_DATE_COLOR='\\x1b[0;32;44m'\n# zpwrLogColor function message color\nexport ZPWR_LOG_MSG_COLOR='\\x1b[0;37;45m'\n# when true vim normal mode C-V mapped to exec current file in right tmux pane\nexport ZPWR_MAP_C_V_VIM_NORMAL=false\n# the marker found color in bat output into fzf from ag search ANSI codes\nexport ZPWR_MARKER_COLOR='0;1;4;37;44m'\n# default value for pygmentize theme\nexport ZPWR_PYGMENTIZE_COLOR=\"emacs\"\n# zpwr colorizer = bat or pygmentize\nexport ZPWR_COLORIZER=bat\n# zsh options set in precmd fn before prompt\nexport ZPWR_OPTS=\n# the OS of the host\nexport ZPWR_OS_TYPE=\"$(uname -s | tr A-Z a-z)\"\n# plugin framework\nexport ZPWR_PLUGIN_MANAGER=zinit\n# uses the zprof function to profile startup\nexport ZPWR_PROFILING=false\n# set to POWERLEVEL to use the powerlevel10k prompt\nexport ZPWR_PROMPT=powerlevel10k\n# pssh timeout\nexport ZPWR_PSSH_TIMEOUT=0\n# git colored output cmd prefix\nexport ZPWR_GIT_COLOR_PREFIX=\"git -c color.status=always -c color.ui=always --no-pager\"\n# char to separate log messages\nexport ZPWR_QUOTE_START_CHAR='\u003c\u003c('\n# char to separate log messages\nexport ZPWR_QUOTE_END_CHAR=')\u003e\u003e'\n# maybe z4ze\nexport ZPWR_REPO_NAME='zpwr'\n# when true sends every char to synced panes\n# when false does not send enter and Control to synced panes\nexport ZPWR_SEND_KEYS_FULL=false\n# how long to sleep after display of counts in zpwr display of all\nexport ZPWR_LOOK_TIME=5\n# set to comma separated list of pane numbers\n# to activate sending to numbered tmux panes\nexport ZPWR_SEND_KEYS_PANE=-1\n# typing leading quote, paren, bracket inserts trailing after caret\nexport ZPWR_SURROUND=true\n# the string that marks a tabstop when expanding aliases\nexport ZPWR_TABSTOP=__________\n# include tabstop aliases\nexport ZPWR_TABSTOP_ALIASES=true\n# the tmux prefix on mac\nexport ZPWR_TMUX_PREFIX_MAC='C-a'\n# the tmux prefix on linux\nexport ZPWR_TMUX_PREFIX_LINUX='C-b'\n# the tmux copy mode history limit\nexport ZPWR_TMUX_HISTORY_LIMIT=30000\n# turns on set -x in critical regions\nexport ZPWR_TRACE=false\n# add header template to certain filetypes in vim\nexport ZPWR_VIM_TEMPLATES=true\n# use bindkey -v\nexport ZPWR_BINDKEY_VI=true\n# delay between shell start and compinit\nexport ZPWR_ZINIT_COMPINIT_DELAY=0\n# username for zdharma\nexport ZPWR_ZDHARMA=\"zdharma-continuum\"\n# regex for tmux thumbs\nexport ZPWR_THUMBS_REGEX='^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$\n((?:[a-z0-9]+(?:-[a-z0-9]+)*\\.)+[a-z]{2,})(?::.*)?'\n# store tty for faster prompt\nexport ZPWR_TTY=$(tty)\n```\n\n```sh\nif [[ $ZPWR_PLUGIN_MANAGER == zinit ]]; then\n    zpwrEvalIfNeeded ZPWR_PLUGIN_MANAGER_HOME \"$ZPWR_PLUGIN_MANAGER_HOME\" \"$HOME/.zinit\" \"$HOME\"\n    export ZSH=\"$ZPWR_PLUGIN_MANAGER_HOME\"\n    zpwrEvalIfNeeded ZSH_CUSTOM \"$ZSH_CUSTOM\" \"$ZSH\" \"$ZSH\"\nelif [[ $ZPWR_PLUGIN_MANAGER == oh-my-zsh ]]; then\n    zpwrEvalIfNeeded ZPWR_PLUGIN_MANAGER_HOME \"$ZPWR_PLUGIN_MANAGER_HOME\" \"$HOME/.oh-my-zsh\" \"$HOME\"\n    export ZSH=\"$ZPWR_PLUGIN_MANAGER_HOME\"\n    zpwrEvalIfNeeded ZSH_CUSTOM \"$ZSH_CUSTOM\" \"$ZSH/custom\" \"$ZSH\"\nfi\n\n# fzf dir\nzpwrEvalIfNeeded ZPWR_FZF_DIR \"$ZPWR_FZF_DIR\" \"$ZSH_CUSTOM/plugins/fzf\" \"$ZSH\"\n# local file ignored by git\nzpwrEvalIfNeeded ZPWR_LOCAL \"$ZPWR_LOCAL\" \"$ZPWR/local\" \"$ZPWR\"\n# plugin misc cache files\nzpwrEvalIfNeeded ZSH_CACHE_DIR \"$ZSH_CACHE_DIR\" \"$ZPWR_LOCAL/.cache\" \"$ZPWR_LOCAL\"\n# alias and function file bash compatible\nzpwrEvalIfNeeded ZPWR_ALIAS_FILE \"$ZPWR_ALIAS_FILE\" \"$ZPWR_ENV/.shell_aliases_functions.sh\" \"$ZPWR_ENV\"\n# autoloaded non completion functions\nzpwrEvalIfNeeded ZPWR_AUTOLOAD \"$ZPWR_AUTOLOAD\" \"$ZPWR/autoload\" \"$ZPWR\"\n# autoloaded common non completion functions\nzpwrEvalIfNeeded ZPWR_AUTOLOAD_COMMON \"$ZPWR_AUTOLOAD_COMMON\" \"$ZPWR_AUTOLOAD/common\" \"$ZPWR_AUTOLOAD\"\n# autoloaded common completion but completion helper functions\nzpwrEvalIfNeeded ZPWR_AUTOLOAD_COMPS \"$ZPWR_AUTOLOAD_COMPS \" \"$ZPWR_AUTOLOAD/comps\" \"$ZPWR_AUTOLOAD\"\n# autoloaded common non completion but completion helper functions\nzpwrEvalIfNeeded ZPWR_AUTOLOAD_COMP_UTILS \"$ZPWR_AUTOLOAD_COMP_UTILS \" \"$ZPWR_AUTOLOAD/comp_utils\" \"$ZPWR_AUTOLOAD\"\n# autoloaded darwin non completion functions\nzpwrEvalIfNeeded ZPWR_AUTOLOAD_DARWIN \"$ZPWR_AUTOLOAD_DARWIN\" \"$ZPWR_AUTOLOAD/darwin\" \"$ZPWR_AUTOLOAD\"\n# autoloaded fzf helper functions\nzpwrEvalIfNeeded ZPWR_AUTOLOAD_FZF \"$ZPWR_AUTOLOAD_FZF\" \"$ZPWR_AUTOLOAD/fzf\" \"$ZPWR_AUTOLOAD\"\n# autoloaded linux non completion functions\nzpwrEvalIfNeeded ZPWR_AUTOLOAD_LINUX \"$ZPWR_AUTOLOAD_LINUX\" \"$ZPWR_AUTOLOAD/linux\" \"$ZPWR_AUTOLOAD\"\n# autoloaded systemctl non completion functions\nzpwrEvalIfNeeded ZPWR_AUTOLOAD_SYSTEMCTL \"$ZPWR_AUTOLOAD_SYSTEMTCTL\" \"$ZPWR_AUTOLOAD/systemctl\" \"$ZPWR_AUTOLOAD\"\n# autoloaded completion functions\nzpwrEvalIfNeeded ZPWR_COMPS \"$ZPWR_COMPS\" \"$ZPWR/autoload/comps\" \"$ZPWR\"\n# cross OS comand file\nzpwrEvalIfNeeded ZPWR_CROSS_OS_CMD \"$ZPWR_CROSS_OS\" \"$ZPWR_SCRIPTS/crossOSCommands.sh\" \"$ZPWR_SCRIPTS\"\n# cross OS fn file\nzpwrEvalIfNeeded ZPWR_CROSS_OS_EXE \"$ZPWR_CROSS_OS\" \"$ZPWR_SCRIPTS/crossOSExecute.sh\" \"$ZPWR_SCRIPTS\"\n# the location of macOS only associated interpreted scripts\n# custom plugin dir\nzpwrEvalIfNeeded ZPWR_PLUGIN_DIR \"$ZPWR_PLUGIN_DIR\" \"$ZSH_CUSTOM/plugins\" \"$ZSH_CUSTOM\"\n# fzf custom plugin dir\nzpwrEvalIfNeeded ZPWR_ZINIT_FZF \"$ZPWR_ZINIT_FZF\" \"$ZPWR_PLUGIN_DIR/MenkeTechnologies---fzf\" \"$ZPWR_PLUGIN_DIR\"\n# same as zpwr local\nzpwrEvalIfNeeded ZPWR_HIDDEN_DIR \"$ZPWR_HIDDEN_DIR\" \"$ZPWR/local\" \"$ZPWR\"\n# private tokens file sourced before\nzpwrEvalIfNeeded ZPWR_TOKEN_PRE \"$ZPWR_TOKEN_PRE\" \"$ZPWR_LOCAL/.tokens.sh\" \"$ZPWR_LOCAL\"\n# private tokens file sourced after\nzpwrEvalIfNeeded ZPWR_TOKEN_POST \"$ZPWR_TOKEN_POST\" \"$ZPWR_LOCAL/.tokens-post.sh\" \"$ZPWR_LOCAL\"\nzpwrEvalIfNeeded ZPWR_TEST \"$ZPWR_TEST\" \"$ZPWR/tests\" \"$ZPWR\"\n# zpwr install files\nzpwrEvalIfNeeded ZPWR_INSTALL \"$ZPWR_INSTALL\" \"$ZPWR/install\" \"$ZPWR\"\n# user tmux.conf file\nzpwrEvalIfNeeded ZPWR_TMUXRC \"$ZPWR_TMUXRC\" \"$ZPWR_INSTALL/.tmux.conf\" \"$ZPWR_INSTALL\"\n# user vimrc file\nzpwrEvalIfNeeded ZPWR_VIMRC \"$ZPWR_VIMRC\" \"$ZPWR_INSTALL/.vimrc\" \"$ZPWR_INSTALL\"\n# user ideavimrc file\nzpwrEvalIfNeeded ZPWR_IDEAVIMRC \"$ZPWR_IDEAVIMRC\" \"$ZPWR_INSTALL/.ideavimrc\" \"$ZPWR_INSTALL\"\n# zpwr tmux config files\nzpwrEvalIfNeeded ZPWR_TMUX \"$ZPWR_TMUX\" \"$ZPWR/tmux\" \"$ZPWR\"\n# zpwr tmux git ignored files\nzpwrEvalIfNeeded ZPWR_TMUX_LOCAL \"$ZPWR_TMUX_LOCAL\" \"$ZPWR_TMUX/local\" \"$ZPWR_TMUX\"\n# the base path for zsh temp\nzpwrEvalIfNeeded TMPPREFIX \"$TMPPREFIX\" \"$ZPWR_LOCAL/.temp/zsh\" \"$ZPWR_LOCAL\"\n# the base dir for zpwr temp\nzpwrEvalIfNeeded ZPWR_LOCAL_TEMP \"$ZPWR_LOCAL_TEMP\" \"$ZPWR_LOCAL/.temp\" \"$ZPWR_LOCAL\"\n# the path to a lock file (semaphore) for zpwr\nzpwrEvalIfNeeded ZPWR_LOCK_FILE \"$ZPWR_LOCK_FILE\" \"$ZPWR_LOCAL/.lock\" \"$ZPWR_LOCAL\"\n# cache file for all zpwr env lookups\nzpwrEvalIfNeeded ZPWR_LOCAL_ENV \"$ZPWR_LOCAL_ENV\" \"$ZPWR_LOCAL/zpwrEnv\" \"$ZPWR_LOCAL\"\n# forked powerlevel10k config file for PROMPT\nzpwrEvalIfNeeded ZPWR_PROMPT_FILE \"$ZPWR_PROMPT_FILE\" \"$ZPWR_ENV/.p10k.zsh\" \"$ZPWR_ENV\"\n# the location of associated interpreted scripts\nzpwrEvalIfNeeded ZPWR_SCRIPTS \"$ZPWR_SCRIPTS\" \"$ZPWR/scripts\" \"$ZPWR\"\n# the location of macOS only associated interpreted scripts\nzpwrEvalIfNeeded ZPWR_SCRIPTS_MAC \"$ZPWR_SCRIPTS_MAC\" \"$ZPWR_SCRIPTS/macOnly\" \"$ZPWR_SCRIPTS\"\n# the location of zpwr verbs setup script\nzpwrEvalIfNeeded ZPWR_VERBS_FILE \"$ZPWR_VERBS_FILE\" \"$ZPWR_SCRIPTS/zpwr.zsh\" \"$ZPWR_SCRIPTS\"\n# the location of zpwr lib file\nzpwrEvalIfNeeded ZPWR_LIB \"$ZPWR_LIB\" \"$ZPWR_SCRIPTS/lib.sh\" \"$ZPWR_SCRIPTS\"\n# the location of zpwr init file\nzpwrEvalIfNeeded ZPWR_LIB_INIT \"$ZPWR_LIB_INIT\" \"$ZPWR_SCRIPTS/init.sh\" \"$ZPWR_SCRIPTS\"\n# command for all fzf clearlist in preview pane\nzpwrEvalIfNeeded ZPWR_FZF_CLEARLIST \"$ZPWR_FZF_CLEARLIST\" \"zsh $ZPWR_SCRIPTS/zpwrClearList.zsh -- \\\\\\$file | fold -s -w 80\" \"$ZPWR_SCRIPTS\"\n# the file used to find most recent files opened in neovim\nzpwrEvalIfNeeded ZPWR_NVIMINFO \"$ZPWR_NVIMINFO\" \"$ZPWR_LOCAL/.nviminfo\" \"$ZPWR_LOCAL\"\n# emacs recent files\nzpwrEvalIfNeeded ZPWR_RECENTF \"$ZPWR_RECENTF\" \"$HOME/.emacs.d/.cache/recentf\" \"$HOME\"\n# alternate banner to ponysay\nzpwrEvalIfNeeded ZPWR_BANNER_COMMAND \"$ZPWR_BANNER_COMMAND\" \"bash $ZPWR_SCRIPTS_MAC/figletRandomFontOnce.sh $(hostname)\" \"$ZPWR_SCRIPTS_MAC\"\n# zpwr banner file location\nzpwrEvalIfNeeded ZPWR_BANNER_SCRIPT \"$ZPWR_BANNER_SCRIPT\" \"$ZPWR_SCRIPTS/about.sh\" \"$ZPWR_SCRIPTS\"\n# cache of git dirs\nzpwrEvalIfNeeded ZPWR_ALL_GIT_DIRS \"$ZPWR_ALL_GIT_DIRS\" \"$ZPWR_LOCAL/zpwrGitDirs.txt\" \"$ZPWR_LOCAL\"\n# cache of clean git dirs\nzpwrEvalIfNeeded ZPWR_ALL_GIT_DIRS_CLEAN \"$ZPWR_ALL_GIT_DIRS_CLEAN\" \"$ZPWR_LOCAL/zpwrGitDirsClean.txt\" \"$ZPWR_LOCAL\"\n# cache of dirty git dirs\nzpwrEvalIfNeeded ZPWR_ALL_GIT_DIRS_DIRTY \"$ZPWR_ALL_GIT_DIRS_DIRTY\" \"$ZPWR_LOCAL/zpwrGitDirsDirty.txt\" \"$ZPWR_LOCAL\"\n# log file\nzpwrEvalIfNeeded ZPWR_LOGFILE \"$ZPWR_LOGFILE\" \"$ZPWR_LOCAL/zpwrLog.txt\" \"$ZPWR_LOCAL\"\n# cache of env keys\nzpwrEvalIfNeeded ZPWR_ENV_KEY_FILE \"$ZPWR_ENV_KEY_FILE\" \"${ZPWR_LOCAL_ENV}Key.txt\" \"$ZPWR_LOCAL_ENV\"\n# cache of env values\nzpwrEvalIfNeeded ZPWR_ENV_VALUE_FILE \"$ZPWR_ENV_VALUE_FILE\" \"${ZPWR_LOCAL_ENV}Value.txt\" \"$ZPWR_LOCAL_ENV\"\n# temp files\nzpwrEvalIfNeeded ZPWR_TEMPFILE \"$ZPWR_TEMPFILE\" \"$ZPWR_LOCAL_TEMP/.temp$$-$USER\" \"$ZPWR_LOCAL_TEMP\" \"$USER\"\nzpwrEvalIfNeeded ZPWR_TEMPFILE1 \"$ZPWR_TEMPFILE1\" \"$ZPWR_LOCAL_TEMP/.temp$$-1$USER\" \"$ZPWR_LOCAL_TEMP\" \"$USER\"\nzpwrEvalIfNeeded ZPWR_TEMPFILE2 \"$ZPWR_TEMPFILE2\" \"$ZPWR_LOCAL_TEMP/.temp$$-2$USER\" \"$ZPWR_LOCAL_TEMP\" \"$USER\"\nzpwrEvalIfNeeded ZPWR_TEMPFILE3 \"$ZPWR_TEMPFILE3\" \"$ZPWR_LOCAL_TEMP/.temp$$-3$USER\" \"$ZPWR_LOCAL_TEMP\" \"$USER\"\nzpwrEvalIfNeeded ZPWR_TEMPFILE4 \"$ZPWR_TEMPFILE4\" \"$ZPWR_LOCAL_TEMP/.temp$$-4$USER\" \"$ZPWR_LOCAL_TEMP\" \"$USER\"\nzpwrEvalIfNeeded ZPWR_TEMPFILE_PROCESSED \"$ZPWR_TEMPFILE_PROCESSED\" \"$ZPWR_LOCAL_TEMP/.temp$$-processed$USER\" \"$ZPWR_LOCAL_TEMP\" \"$USER\"\n# SQL temp files for use with learning collection\nzpwrEvalIfNeeded ZPWR_TEMPFILE_SQL \"$ZPWR_TEMPFILE_SQL\" \"$ZPWR_LOCAL_TEMP/.temp$$-2$USER.sql\" \"$ZPWR_LOCAL_TEMP\" \"$USER\"\n# last tmux window text capture\nzpwrEvalIfNeeded ZPWR_TMUX_CAPTURE \"$ZPWR_TMUX_CAPTURE\" \"$ZPWR_TMUX_LOCAL/tmux-capture-$$-$USER\" \"$ZPWR_TMUX_LOCAL\" \"$USER\"\n# socket for IPC\nzpwrEvalIfNeeded ZPWR_SOCKET \"$ZPWR_SOCKET\" \"$ZPWR_LOCAL_TEMP/.temp-$USER-socket\" \"$ZPWR_LOCAL_TEMP\" \"$USER\"\n# fifo for IPC\nzpwrEvalIfNeeded ZPWR_FIFO \"$ZPWR_FIFO\" \"$ZPWR_LOCAL_TEMP/.temp-$USER-fifo\" \"$ZPWR_LOCAL_TEMP\" \"$USER\"\n# zsh compsys completion system dir for cached completions\nzpwrEvalIfNeeded ZPWR_COMPSYS_CACHE \"$ZPWR_COMPSYS_CACHE\" \"$ZPWR_LOCAL/zcompcache\" \"$ZPWR_LOCAL\"\n# compsys cache file\nzpwrEvalIfNeeded ZSH_COMPDUMP \"$ZSH_COMPDUMP\" \"$ZPWR_LOCAL/.zcompdump-$ZPWR_REPO_NAME-$ZPWR_GITHUB_ACCOUNT\" \"$ZPWR_LOCAL\" \"$ZPWR_REPO_NAME\" \"$ZPWR_GITHUB_ACCOUNT\"\n# forked repos dir\nzpwrEvalIfNeeded ZPWR_FORKED_DIR \"$ZPWR_FORKED_DIR\" \"$HOME/forkedRepos\" \"$HOME\"\n# common dirs\nzpwrEvalIfNeeded ZPWR_D \"$ZPWR_D\" \"$HOME/Desktop\" \"$HOME\"\nzpwrEvalIfNeeded ZPWR_DOC \"$ZPWR_DOC\" \"$HOME/Documents\" \"$HOME\"\nzpwrEvalIfNeeded ZPWR_DL \"$ZPWR_DL\" \"$HOME/Downloads\" \"$HOME\"\n# history file\nzpwrEvalIfNeeded HISTFILE \"$HISTFILE\" \"$ZPWR_LOCAL/.$ZPWR_REPO_NAME-$ZPWR_GITHUB_ACCOUNT-history\" \"$ZPWR_LOCAL\" \"$ZPWR_REPO_NAME\" \"$ZPWR_GITHUB_ACCOUNT\"\n# the path for vim keybindings cache\nzpwrEvalIfNeeded ZPWR_VIM_KEYBINDINGS \"$ZPWR_VIM_KEYBINDINGS\" \"$ZPWR_LOCAL/zpwrVimKeybindings.txt\" \"$ZPWR_LOCAL\"\n# the path for all keybindings cache\nzpwrEvalIfNeeded ZPWR_ALL_KEYBINDINGS \"$ZPWR_ALL_KEYBINDINGS\" \"$ZPWR_LOCAL/zpwrAllKeybindings.txt\" \"$ZPWR_LOCAL\"\n# build GitHub URL\nzpwrEvalIfNeeded ZPWR_GITHUB_URL \"$ZPWR_GITHUB_URL\" \"https://github.com/$ZPWR_GITHUB_ACCOUNT\" \"$ZPWR_GITHUB_ACCOUNT\"\n```\n\n## Tests\nYou can run zpwr unit tests via `zpwr test` and include plugin tests wth `zpwr testall`.\n\nThere is also the alias `tru` (tests run) to run the tests.\n```sh\nzpwrExists zunit \u0026\u0026 {\n    alias tru=\"( builtin cd $ZPWR \u0026\u0026 zunit --verbose )\"\n}\n```\n\n## Shell Startup speed\nRunning `zpwr recompile` will zrecompile all zpwr configs and all autoloaded functions and compsys completions in fpath. `zpwr refreshzwc` will remove old .zwc files before zrecompile.  This will maximize startup and running speed.  `~/.zpwr/autoload` contains ZPWR autoloaded functions and `~/.zpwr/autoload/comps` contains autoloaded compsys functions.\n\nWith Zinit Turbo mode, despite the number of plugins and completions, startup usually takes \u003c 1 second on faster machines (.15 to .2 seconds on M1 Max) but up to 2-10 seconds on slow machines such as WSL.  Zinit runs compinit in the background after startup and you will experience a brief lockup (unnoticeable if `zpwr regenzsh` and `zpwr recompile` have run to create .zcompdump.zwc).  This variable controls the delay between prompt and compinit.\n```sh\nexport ZPWR_ZINIT_COMPINIT_DELAY=0\n```\n## Contributing\nI am looking for contributors mostly for documentation, marketing, video tutorials, GIFs/screenshots in README and expanding the tests.\n\n## Warnings\nMoving scripts from `$ZPWR_SCRIPTS` which defaults to `~/.zpwr/scripts` and `$ZPWR_TMUX` which defaults to `~/.zpwr/tmux` will break a lot of functionality because vim and tmux configurations depend on these scipts for advanced features.  The only user modifiable files are the user token files.\n\n# Running on a MacbookPro\n![Alt text](https://menketechnologies.github.io/img/tmuxfinal22.png?raw=true)\n![Alt text](https://menketechnologies.github.io/img/tmux-scripts.png)\n# Running on the Raspberry Pi 3\n![Alt text](https://menketechnologies.github.io/img/tmuxfinal3.png?raw=true)\n![Alt text](https://menketechnologies.github.io/img/tmuxfinal4.png?raw=true)\n# Running on the Rock64\n![Final 5](https://menketechnologies.github.io/img/tmuxfinal5.jpg?raw=true)\n\n## Keybindings generated with `source keybindingsToREADME.zsh \u003e\u003e README.md`\n\n# Tmux keybindings (tmux lsk)\n- ``` bind-key    -T copy-mode    C-Space              send-keys -X begin-selection ```\n- ``` bind-key    -T copy-mode    C-a                  send-keys -X start-of-line ```\n- ``` bind-key    -T copy-mode    C-b                  send-keys -X cursor-left ```\n- ``` bind-key    -T copy-mode    C-c                  send-keys -X cancel ```\n- ``` bind-key    -T copy-mode    C-e                  send-keys -X end-of-line ```\n- ``` bind-key    -T copy-mode    C-f                  send-keys -X cursor-right ```\n- ``` bind-key    -T copy-mode    C-g                  send-keys -X clear-selection ```\n- ``` bind-key    -T copy-mode    C-k                  send-keys -X copy-end-of-line ```\n- ``` bind-key    -T copy-mode    C-n                  send-keys -X cursor-down ```\n- ``` bind-key    -T copy-mode    C-p                  send-keys -X cursor-up ```\n- ``` bind-key    -T copy-mode    C-r                  command-prompt -i -I \"#{pane_search_string}\" -p \"(search up)\" \"send -X search-backward-incremental \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode    C-s                  command-prompt -i -I \"#{pane_search_string}\" -p \"(search down)\" \"send -X search-forward-incremental \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode    C-v                  send-keys -X page-down ```\n- ``` bind-key    -T copy-mode    C-w                  send-keys -X copy-pipe-and-cancel ```\n- ``` bind-key    -T copy-mode    Escape               send-keys -X cancel ```\n- ``` bind-key    -T copy-mode    Space                send-keys -X page-down ```\n- ``` bind-key    -T copy-mode    ,                    send-keys -X jump-reverse ```\n- ``` bind-key    -T copy-mode    \\;                   send-keys -X jump-again ```\n- ``` bind-key    -T copy-mode    F                    command-prompt -1 -p \"(jump backward)\" \"send -X jump-backward \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode    N                    send-keys -X search-reverse ```\n- ``` bind-key    -T copy-mode    R                    send-keys -X rectangle-toggle ```\n- ``` bind-key    -T copy-mode    T                    command-prompt -1 -p \"(jump to backward)\" \"send -X jump-to-backward \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode    X                    send-keys -X set-mark ```\n- ``` bind-key    -T copy-mode    f                    command-prompt -1 -p \"(jump forward)\" \"send -X jump-forward \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode    g                    command-prompt -p \"(goto line)\" \"send -X goto-line \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode    n                    send-keys -X search-again ```\n- ``` bind-key    -T copy-mode    q                    send-keys -X cancel ```\n- ``` bind-key    -T copy-mode    r                    send-keys -X refresh-from-pane ```\n- ``` bind-key    -T copy-mode    t                    command-prompt -1 -p \"(jump to forward)\" \"send -X jump-to-forward \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode    MouseDown1Pane       select-pane ```\n- ``` bind-key    -T copy-mode    MouseDrag1Pane       select-pane \\; send-keys -X begin-selection ```\n- ``` bind-key    -T copy-mode    MouseDragEnd1Pane    send-keys -X copy-pipe-and-cancel ```\n- ``` bind-key    -T copy-mode    WheelUpPane          select-pane \\; send-keys -X -N 5 scroll-up ```\n- ``` bind-key    -T copy-mode    WheelDownPane        select-pane \\; send-keys -X -N 5 scroll-down ```\n- ``` bind-key    -T copy-mode    DoubleClick1Pane     select-pane \\; send-keys -X select-word \\; run-shell -d 0.3 \\; send-keys -X copy-pipe-and-cancel ```\n- ``` bind-key    -T copy-mode    TripleClick1Pane     select-pane \\; send-keys -X select-line \\; run-shell -d 0.3 \\; send-keys -X copy-pipe-and-cancel ```\n- ``` bind-key    -T copy-mode    Home                 send-keys -X start-of-line ```\n- ``` bind-key    -T copy-mode    End                  send-keys -X end-of-line ```\n- ``` bind-key    -T copy-mode    NPage                send-keys -X page-down ```\n- ``` bind-key    -T copy-mode    PPage                send-keys -X page-up ```\n- ``` bind-key    -T copy-mode    Up                   send-keys -X cursor-up ```\n- ``` bind-key    -T copy-mode    Down                 send-keys -X cursor-down ```\n- ``` bind-key    -T copy-mode    Left                 send-keys -X cursor-left ```\n- ``` bind-key    -T copy-mode    Right                send-keys -X cursor-right ```\n- ``` bind-key    -T copy-mode    M-C-b                send-keys -X previous-matching-bracket ```\n- ``` bind-key    -T copy-mode    M-C-f                send-keys -X next-matching-bracket ```\n- ``` bind-key    -T copy-mode    M-1                  command-prompt -N -I 1 -p (repeat) \"send -N \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode    M-2                  command-prompt -N -I 2 -p (repeat) \"send -N \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode    M-3                  command-prompt -N -I 3 -p (repeat) \"send -N \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode    M-4                  command-prompt -N -I 4 -p (repeat) \"send -N \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode    M-5                  command-prompt -N -I 5 -p (repeat) \"send -N \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode    M-6                  command-prompt -N -I 6 -p (repeat) \"send -N \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode    M-7                  command-prompt -N -I 7 -p (repeat) \"send -N \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode    M-8                  command-prompt -N -I 8 -p (repeat) \"send -N \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode    M-9                  command-prompt -N -I 9 -p (repeat) \"send -N \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode    M-\u003c                  send-keys -X history-top ```\n- ``` bind-key    -T copy-mode    M-\u003e                  send-keys -X history-bottom ```\n- ``` bind-key    -T copy-mode    M-R                  send-keys -X top-line ```\n- ``` bind-key    -T copy-mode    M-b                  send-keys -X previous-word ```\n- ``` bind-key    -T copy-mode    M-f                  send-keys -X next-word-end ```\n- ``` bind-key    -T copy-mode    M-m                  send-keys -X back-to-indentation ```\n- ``` bind-key    -T copy-mode    M-r                  send-keys -X middle-line ```\n- ``` bind-key    -T copy-mode    M-v                  send-keys -X page-up ```\n- ``` bind-key    -T copy-mode    M-w                  send-keys -X copy-pipe-and-cancel ```\n- ``` bind-key    -T copy-mode    M-x                  send-keys -X jump-to-mark ```\n- ``` bind-key    -T copy-mode    \"M-{\"                send-keys -X previous-paragraph ```\n- ``` bind-key    -T copy-mode    \"M-}\"                send-keys -X next-paragraph ```\n- ``` bind-key    -T copy-mode    M-Up                 send-keys -X halfpage-up ```\n- ``` bind-key    -T copy-mode    M-Down               send-keys -X halfpage-down ```\n- ``` bind-key    -T copy-mode    C-Up                 send-keys -X scroll-up ```\n- ``` bind-key    -T copy-mode    C-Down               send-keys -X scroll-down ```\n- ``` bind-key    -T copy-mode-vi C-b                  send-keys -X page-up ```\n- ``` bind-key    -T copy-mode-vi C-c                  send-keys -X cancel ```\n- ``` bind-key    -T copy-mode-vi C-d                  send-keys -X halfpage-down ```\n- ``` bind-key    -T copy-mode-vi C-e                  send-keys -X scroll-down ```\n- ``` bind-key    -T copy-mode-vi C-f                  send-keys -X page-down ```\n- ``` bind-key    -T copy-mode-vi C-h                  send-keys -X -N 4 cursor-left ```\n- ``` bind-key    -T copy-mode-vi C-j                  send-keys -X -N 4 cursor-down ```\n- ``` bind-key    -T copy-mode-vi C-k                  send-keys -X -N 4 cursor-up ```\n- ``` bind-key    -T copy-mode-vi C-l                  send-keys -X -N 4 cursor-right ```\n- ``` bind-key    -T copy-mode-vi Enter                send-keys -X copy-pipe-and-cancel \"reattach-to-user-namespace pbcopy\" ```\n- ``` bind-key    -T copy-mode-vi C-n                  send-keys -X page-down ```\n- ``` bind-key    -T copy-mode-vi C-p                  send-keys -X page-up ```\n- ``` bind-key    -T copy-mode-vi C-u                  send-keys -X halfpage-up ```\n- ``` bind-key    -T copy-mode-vi C-v                  send-keys -X rectangle-toggle ```\n- ``` bind-key    -T copy-mode-vi C-y                  send-keys -X scroll-up ```\n- ``` bind-key    -T copy-mode-vi Escape               send-keys -X clear-selection ```\n- ``` bind-key    -T copy-mode-vi Space                send-keys -X begin-selection ```\n- ``` bind-key    -T copy-mode-vi \\#                   send-keys -FX search-backward \"#{copy_cursor_word}\" ```\n- ``` bind-key    -T copy-mode-vi \\$                   send-keys -X end-of-line ```\n- ``` bind-key    -T copy-mode-vi %                    send-keys -X next-matching-bracket ```\n- ``` bind-key    -T copy-mode-vi *                    send-keys -FX search-forward \"#{copy_cursor_word}\" ```\n- ``` bind-key    -T copy-mode-vi ,                    send-keys -X jump-reverse ```\n- ``` bind-key    -T copy-mode-vi /                    command-prompt -i -p \"(search down)\" \"send -X search-forward-incremental \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode-vi 0                    send-keys -X start-of-line ```\n- ``` bind-key    -T copy-mode-vi 1                    command-prompt -N -I 1 -p (repeat) \"send -N \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode-vi 2                    command-prompt -N -I 2 -p (repeat) \"send -N \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode-vi 3                    command-prompt -N -I 3 -p (repeat) \"send -N \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode-vi 4                    command-prompt -N -I 4 -p (repeat) \"send -N \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode-vi 5                    command-prompt -N -I 5 -p (repeat) \"send -N \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode-vi 6                    command-prompt -N -I 6 -p (repeat) \"send -N \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode-vi 7                    command-prompt -N -I 7 -p (repeat) \"send -N \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode-vi 8                    command-prompt -N -I 8 -p (repeat) \"send -N \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode-vi 9                    command-prompt -N -I 9 -p (repeat) \"send -N \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode-vi :                    command-prompt -p \"(goto line)\" \"send -X goto-line \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode-vi \\;                   send-keys -X jump-again ```\n- ``` bind-key    -T copy-mode-vi ?                    command-prompt -i -p \"(search up)\" \"send -X search-backward-incremental \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode-vi A                    send-keys -X append-selection-and-cancel ```\n- ``` bind-key    -T copy-mode-vi B                    send-keys -X previous-space ```\n- ``` bind-key    -T copy-mode-vi D                    send-keys -X copy-end-of-line ```\n- ``` bind-key    -T copy-mode-vi E                    send-keys -X next-space-end ```\n- ``` bind-key    -T copy-mode-vi F                    command-prompt -1 -p \"(jump backward)\" \"send -X jump-backward \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode-vi G                    send-keys -X history-bottom ```\n- ``` bind-key    -T copy-mode-vi H                    send-keys -X top-line ```\n- ``` bind-key    -T copy-mode-vi J                    send-keys -X scroll-down ```\n- ``` bind-key    -T copy-mode-vi K                    send-keys -X scroll-up ```\n- ``` bind-key    -T copy-mode-vi L                    send-keys -X bottom-line ```\n- ``` bind-key    -T copy-mode-vi M                    send-keys -X middle-line ```\n- ``` bind-key    -T copy-mode-vi N                    send-keys -X search-reverse ```\n- ``` bind-key    -T copy-mode-vi T                    command-prompt -1 -p \"(jump to backward)\" \"send -X jump-to-backward \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode-vi V                    send-keys -X select-line ```\n- ``` bind-key    -T copy-mode-vi W                    send-keys -X next-space ```\n- ``` bind-key    -T copy-mode-vi X                    send-keys -X set-mark ```\n- ``` bind-key    -T copy-mode-vi ^                    send-keys -X back-to-indentation ```\n- ``` bind-key    -T copy-mode-vi b                    send-keys -X previous-word ```\n- ``` bind-key    -T copy-mode-vi e                    send-keys -X next-word-end ```\n- ``` bind-key    -T copy-mode-vi f                    command-prompt -1 -p \"(jump forward)\" \"send -X jump-forward \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode-vi g                    send-keys -X history-top ```\n- ``` bind-key    -T copy-mode-vi h                    send-keys -X cursor-left ```\n- ``` bind-key    -T copy-mode-vi j                    send-keys -X cursor-down ```\n- ``` bind-key    -T copy-mode-vi k                    send-keys -X cursor-up ```\n- ``` bind-key    -T copy-mode-vi l                    send-keys -X cursor-right ```\n- ``` bind-key    -T copy-mode-vi n                    send-keys -X search-again ```\n- ``` bind-key    -T copy-mode-vi o                    send-keys -X other-end ```\n- ``` bind-key    -T copy-mode-vi q                    send-keys -X cancel ```\n- ``` bind-key    -T copy-mode-vi r                    send-keys -X refresh-from-pane ```\n- ``` bind-key    -T copy-mode-vi s                    send-keys -X copy-pipe-no-clear \"reattach-to-user-namespace pbcopy\" \\; run-shell \"reattach-to-user-namespace bash ~/.zpwr/tmux/google.sh google\" ```\n- ``` bind-key    -T copy-mode-vi t                    command-prompt -1 -p \"(jump to forward)\" \"send -X jump-to-forward \\\"%%%\\\"\" ```\n- ``` bind-key    -T copy-mode-vi v                    send-keys -X begin-selection ```\n- ``` bind-key    -T copy-mode-vi w                    send-keys -X next-word ```\n- ``` bind-key    -T copy-mode-vi x                    send-keys -X copy-pipe-no-clear \"reattach-to-user-namespace pbcopy\" \\; display-message -F \"current pane directory #{pane_current_path}\" \\; run-shell \"tmux display-message -p -F \\\"#{pane_current_path}\\\" \u003e \\$ZPWR_TMUX_LOCAL/pane_pwd\" \\; run-shell \"reattach-to-user-namespace bash ~/.zpwr/tmux/google.sh open\" ```\n- ``` bind-key    -T copy-mode-vi y                    send-keys -X copy-pipe-no-clear \"reattach-to-user-namespace pbcopy\" ```\n- ``` bind-key    -T copy-mode-vi z                    send-keys -X copy-pipe-no-clear \"reattach-to-user-namespace pbcopy\" \\; run-shell \"reattach-to-user-namespace bash ~/.zpwr/tmux/google.sh google\" ```\n- ``` bind-key    -T copy-mode-vi \\{                   send-keys -X previous-paragraph ```\n- ``` bind-key    -T copy-mode-vi \\}                   send-keys -X next-paragraph ```\n- ``` bind-key    -T copy-mode-vi MouseDown1Pane       select-pane ```\n- ``` bind-key    -T copy-mode-vi MouseDown3Pane       send-keys -X copy-pipe-no-clear \"reattach-to-user-namespace pbcopy\" \\; run-shell \"reattach-to-user-namespace bash ~/.zpwr/tmux/google.sh google\" ```\n- ``` bind-key    -T copy-mode-vi MouseDrag1Pane       select-pane \\; send-keys -X begin-selection ```\n- ``` bind-key    -T copy-mode-vi MouseDragEnd1Pane    send-keys -X copy-pipe-and-cancel ```\n- ``` bind-key    -T copy-mode-vi WheelUpPane          select-pane \\; send-keys -X -N 5 scroll-up ```\n- ``` bind-key    -T copy-mode-vi WheelDownPane        select-pane \\; send-keys -X -N 5 scroll-down ```\n- ``` bind-key    -T copy-mode-vi DoubleClick1Pane     select-pane \\; send-keys -X select-word \\; run-shell -d 0.3 \\; send-keys -X copy-pipe-and-cancel ```\n- ``` bind-key    -T copy-mode-vi TripleClick1Pane     select-pane \\; send-keys -X select-line \\; run-shell -d 0.3 \\; send-keys -X copy-pipe-and-cancel ```\n- ``` bind-key    -T copy-mode-vi BSpace               send-keys -X cursor-left ```\n- ``` bind-key    -T copy-mode-vi NPage                send-keys -X page-down ```\n- ``` bind-key    -T copy-mode-vi PPage                send-keys -X page-up ```\n- ``` bind-key    -T copy-mode-vi Up                   send-keys -X cursor-up ```\n- ``` bind-key    -T copy-mode-vi Down                 send-keys -X cursor-down ```\n- ``` bind-key    -T copy-mode-vi Left                 send-keys -X cursor-left ```\n- ``` bind-key    -T copy-mode-vi Right                send-keys -X cursor-right ```\n- ``` bind-key    -T copy-mode-vi M-x                  send-keys -X jump-to-mark ```\n- ``` bind-key    -T copy-mode-vi C-Up                 send-keys -X scroll-up ```\n- ``` bind-key    -T copy-mode-vi C-Down               send-keys -X scroll-down ```\n- ``` bind-key    -T prefix       C-a                  send-prefix ```\n- ``` bind-key    -T prefix       C-n                  next-window ```\n- ``` bind-key    -T prefix       C-o                  rotate-window ```\n- ``` bind-key    -T prefix       C-p                  previous-window ```\n- ``` bind-key    -T prefix       C-r                  run-shell ~/.tmux/plugins/tmux-resurrect/scripts/restore.sh ```\n- ``` bind-key    -T prefix       C-s                  run-shell ~/.tmux/plugins/tmux-resurrect/scripts/save.sh ```\n- ``` bind-key    -T prefix       C-v                  run-shell \"tmux set buffer \\\"$(reattach-to-user-namespace pbpaste)\\\"; tmux paste-buffer\" ```\n- ``` bind-key    -T prefix       C-z                  suspend-client ```\n- ``` bind-key    -T prefix       C-]                  send-keys ^] ```\n- ``` bind-key    -T prefix       Space                run-shell -b \"~/.zpwr/scripts/allPanes.zsh single\" ```\n- ``` bind-key    -T prefix       !                    break-pane ```\n- ``` bind-key    -T prefix       \\\"                   split-window ```\n- ``` bind-key    -T prefix       \\#                   list-buffers ```\n- ``` bind-key    -T prefix       \\$                   command-prompt -I \"#S\" \"rename-session -- '%%'\" ```\n- ``` bind-key    -T prefix       %                    split-window -h ```\n- ``` bind-key    -T prefix       \u0026                    confirm-before -p \"kill-window #W? (y/n)\" kill-window ```\n- ``` bind-key    -T prefix       \\'                   command-prompt -W -p index \"select-window -t ':%%'\" ```\n- ``` bind-key -r -T prefix       (                    switch-client -p ```\n- ``` bind-key -r -T prefix       )                    switch-client -n ```\n- ``` bind-key    -T prefix       +                    split-window -v -c \"#{pane_current_path}\" \\; select-pane -l \\; kill-pane ```\n- ``` bind-key    -T prefix       ,                    command-prompt -I \"#W\" \"rename-window -- '%%'\" ```\n- ``` bind-key    -T prefix       -                    split-window -v -c \"#{pane_current_path}\" ```\n- ``` bind-key    -T prefix       .                    command-prompt -T \"move-window -t '%%'\" ```\n- ``` bind-key    -T prefix       /                    command-prompt -k -p key \"list-keys -1N \\\"%%%\\\"\" ```\n- ``` bind-key    -T prefix       0                    select-window -t :=0 ```\n- ``` bind-key    -T prefix       1                    select-window -t :=1 ```\n- ``` bind-key    -T prefix       2                    select-window -t :=2 ```\n- ``` bind-key    -T prefix       3                    select-window -t :=3 ```\n- ``` bind-key    -T prefix       4                    select-window -t :=4 ```\n- ``` bind-key    -T prefix       5                    select-window -t :=5 ```\n- ``` bind-key    -T prefix       6                    select-window -t :=6 ```\n- ``` bind-key    -T prefix       7                    select-window -t :=7 ```\n- ``` bind-key    -T prefix       8                    select-window -t :=8 ```\n- ``` bind-key    -T prefix       9                    select-window -t :=9 ```\n- ``` bind-key    -T prefix       :                    command-prompt ```\n- ``` bind-key    -T prefix       \\;                   last-pane ```\n- ``` bind-key    -T prefix       \u003c                    display-menu -T \"#[align=centre]#{window_index}:#{window_name}\" -x W -y W \"#{?#{\u003e:#{session_windows},1},,-}Swap Left\" l \"swap-window -t:-1\" \"#{?#{\u003e:#{session_windows},1},,-}Swap Right\" r \"swap-window -t:+1\" \"#{?pane_marked_set,,-}Swap Marked\" s swap-window '' Kill X kill-window Respawn R \"respawn-window -k\" \"#{?pane_marked,Unmark,Mark}\" m \"select-pane -m\" Rename n \"command-prompt -I \\\"#W\\\" \\\"rename-window -- '%%'\\\"\" '' \"New After\" w \"new-window -a\" \"New At End\" W new-window ```\n- ``` bind-key    -T prefix       =                    choose-buffer -Z ```\n- ``` bind-key    -T prefix       \u003e                    display-menu -T \"#[align=centre]#{pane_index} (#{pane_id})\" -x P -y P \"#{?#{m/r:(copy|view)-mode,#{pane_mode}},Go To Top,}\" \u003c \"send -X history-top\" \"#{?#{m/r:(copy|view)-mode,#{pane_mode}},Go To Bottom,}\" \u003e \"send -X history-bottom\" '' \"#{?mouse_word,Search For #[underscore]#{=/9/...:mouse_word},}\" C-r \"if -F \\\"#{?#{m/r:(copy|view)-mode,#{pane_mode}},0,1}\\\" \\\"copy-mode -t=\\\" ; send -Xt= search-backward \\\"#{q:mouse_word}\\\"\" \"#{?mouse_word,Type #[underscore]#{=/9/...:mouse_word},}\" C-y \"copy-mode -q ; send-keys -l -- \\\"#{q:mouse_word}\\\"\" \"#{?mouse_word,Copy #[underscore]#{=/9/...:mouse_word},}\" c \"copy-mode -q ; set-buffer -- \\\"#{q:mouse_word}\\\"\" \"#{?mouse_line,Copy Line,}\" l \"copy-mode -q ; set-buffer -- \\\"#{q:mouse_line}\\\"\" '' \"Horizontal Split\" h \"split-window -h\" \"Vertical Split\" v \"split-window -v\" '' \"#{?#{\u003e:#{window_panes},1},,-}Swap Up\" u \"swap-pane -U\" \"#{?#{\u003e:#{window_panes},1},,-}Swap Down\" d \"swap-pane -D\" \"#{?pane_marked_set,,-}Swap Marked\" s swap-pane '' Kill X kill-pane Respawn R \"respawn-pane -k\" \"#{?pane_marked,Unmark,Mark}\" m \"select-pane -m\" \"#{?#{\u003e:#{window_panes},1},,-}#{?window_zoomed_flag,Unzoom,Zoom}\" z \"resize-pane -Z\" ```\n- ``` bind-key    -T prefix       ?                    list-keys -N ```\n- ``` bind-key    -T prefix       C                    customize-mode -Z ```\n- ``` bind-key    -T prefix       D                    source-file ~/.zpwr/tmux/control-window.conf ```\n- ``` bind-key    -T prefix       E                    source-file ~/.zpwr/tmux/fourVertical.conf ```\n- ``` bind-key    -T prefix       F                    source-file ~/.zpwr/tmux/four-panes.conf ```\n- ``` bind-key    -T prefix       G                    source-file ~/.zpwr/tmux/eight-panes.conf ```\n- ``` bind-key -r -T prefix       H                    resize-pane -L 5 ```\n- ``` bind-key    -T prefix       I                    run-shell ~/.tmux/plugins/tpm/bindings/install_plugins ```\n- ``` bind-key -r -T prefix       J                    resize-pane -D 5 ```\n- ``` bind-key -r -T prefix       K                    resize-pane -U 5 ```\n- ``` bind-key -r -T prefix       L                    resize-pane -R 5 ```\n- ``` bind-key    -T prefix       M                    source-file ~/.zpwr/tmux/learn.conf ```\n- ``` bind-key    -T prefix       O                    source-file ~/.zpwr/tmux/sixteen-panes.conf ```\n- ``` bind-key    -T prefix       P                    paste-buffer ```\n- ``` bind-key    -T prefix       R                    source-file ~/.zpwr/tmux/thirtytwo-panes-repl.conf ```\n- ``` bind-key    -T prefix       S                    set-window-option synchronize-panes ```\n- ``` bind-key    -T prefix       T                    source-file ~/.zpwr/tmux/config-files.conf ```\n- ``` bind-key    -T prefix       U                    run-shell ~/.tmux/plugins/tpm/bindings/update_plugins ```\n- ``` bind-key    -T prefix       Y                    split-window -v -c \"#{pane_current_path}\" \\; select-pane -l \\; kill-pane ```\n- ``` bind-key    -T prefix       [                    copy-mode ```\n- ``` bind-key    -T prefix       \\\\                   split-window -h -c \"#{pane_current_path}\" ```\n- ``` bind-key    -T prefix       ]                    paste-buffer -p ```\n- ``` bind-key    -T prefix       _                    split-window -v ```\n- ``` bind-key    -T prefix       a                    last-window ```\n- ``` bind-key    -T prefix       b                    run-shell -b \"~/.zpwr/scripts/allPanes.zsh single open\" ```\n- ``` bind-key    -T prefix       c                    new-window ```\n- ``` bind-key    -T prefix       d                    detach-client ```\n- ``` bind-key    -T prefix       e                    run-shell -b \"~/.tmux/plugins/tmux-fzf-url/fzf-url.sh 30000 open\" ```\n- ``` bind-key    -T prefix       f                    command-prompt \"find-window -Z -- '%%'\" ```\n- ``` bind-key    -T prefix       g                    run-shell -b \"~/.zpwr/scripts/allPanes.zsh single google\" ```\n- ``` bind-key -r -T prefix       h                    select-pane -L ```\n- ``` bind-key    -T prefix       i                    display-message ```\n- ``` bind-key -r -T prefix       j                    select-pane -D ```\n- ``` bind-key -r -T prefix       k                    select-pane -U ```\n- ``` bind-key -r -T prefix       l                    select-pane -R ```\n- ``` bind-key    -T prefix       m                    select-pane -m ```\n- ``` bind-key -r -T prefix       n                    next-window ```\n- ``` bind-key    -T prefix       o                    select-pane -t :.+ ```\n- ``` bind-key -r -T prefix       p                    previous-window ```\n- ``` bind-key    -T prefix       q                    display-panes -d 5000 ```\n- ``` bind-key    -T prefix       r                    source-file ~/.zpwr/tmux/init.conf \\; display-message \"Tmux Reloaded!\" \\; copy-mode -q ```\n- ``` bind-key    -T prefix       s                    choose-tree -Zs ```\n- ``` bind-key    -T prefix       t                    clock-mode ```\n- ``` bind-key    -T prefix       u                    run-shell -b \"~/.tmux/plugins/tmux-fzf-url/fzf-url.sh 30000 search\" ```\n- ``` bind-key    -T prefix       v                    run-shell -b \"~/.zpwr/scripts/allPanes.zsh multi\" ```\n- ``` bind-key    -T prefix       w                    choose-tree -Zw ```\n- ``` bind-key    -T prefix       x                    kill-pane ```\n- ``` bind-key    -T prefix       z                    resize-pane -Z ```\n- ``` bind-key -r -T prefix       \\{                   rotate-window ```\n- ``` bind-key    -T prefix       |                    split-window -h ```\n- ``` bind-key    -T prefix       \\}                   swap-pane -D ```\n- ``` bind-key    -T prefix       \\~                   show-messages ```\n- ``` bind-key -r -T prefix       DC                   refresh-client -c ```\n- ``` bind-key    -T prefix       PPage                copy-mode -u ```\n- ``` bind-key -r -T prefix       Up                   select-pane -U ```\n- ``` bind-key -r -T prefix       Down                 select-pane -D ```\n- ``` bind-key -r -T prefix       Left                 select-pane -L ```\n- ``` bind-key -r -T prefix       Right                select-pane -R ```\n- ``` bind-key    -T prefix       M-1                  select-layout even-horizontal ```\n- ``` bind-key    -T prefix       M-2                  select-layout even-vertical ```\n- ``` bind-key    -T prefix       M-3                  select-layout main-horizontal ```\n- ``` bind-key    -T prefix       M-4                  select-layout main-vertical ```\n- ``` bind-key    -T prefix       M-5                  select-layout tiled ```\n- ``` bind-key    -T prefix       M-n                  next-window -a ```\n- ``` bind-key    -T prefix       M-o                  rotate-window -D ```\n- ``` bind-key    -T prefix       M-p                  previous-window -a ```\n- ``` bind-key    -T prefix       M-u                  run-shell ~/.tmux/plugins/tpm/bindings/clean_plugins ```\n- ``` bind-key -r -T prefix       M-Up                 resize-pane -U 5 ```\n- ``` bind-key -r -T prefix       M-Down               resize-pane -D 5 ```\n- ``` bind-key -r -T prefix       M-Left               resize-pane -L 5 ```\n- ``` bind-key -r -T prefix       M-Right              resize-pane -R 5 ```\n- ``` bind-key -r -T prefix       C-Up                 resize-pane -U ```\n- ``` bind-key -r -T prefix       C-Down               resize-pane -D ```\n- ``` bind-key -r -T prefix       C-Left               resize-pane -L ```\n- ``` bind-key -r -T prefix       C-Right              resize-pane -R ```\n- ``` bind-key -r -T prefix       S-Up                 refresh-client -U 10 ```\n- ``` bind-key -r -T prefix       S-Down               refresh-client -D 10 ```\n- ``` bind-key -r -T prefix       S-Left               refresh-client -L 10 ```\n- ``` bind-key -r -T prefix       S-Right              refresh-client -R 10 ```\n- ``` bind-key    -T root         C-\\\\                 switch-client -n ```\n- ``` bind-key    -T root         C-]                  switch-client -p ```\n- ``` bind-key    -T root         MouseDown1Pane       select-pane -t = \\; send-keys -M ```\n- ``` bind-key    -T root         MouseDown1Status     select-window -t = ```\n- ``` bind-key    -T root         MouseDown2Pane       select-pane -t = \\; if-shell -F \"#{||:#{pane_in_mode},#{mouse_any_flag}}\" \"send -M\" \"paste -p\" ```\n- ``` bind-key    -T root         MouseDown3Pane       if-shell -F -t = \"#{mouse_any_flag}\" \"select-pane -t=; send-keys -M\" \"select-pane -t=\" ```\n- ``` bind-key    -T root         MouseDown3Status     display-menu -T \"#[align=centre]#{window_index}:#{window_name}\" -t = -x W -y W \"#{?#{\u003e:#{session_windows},1},,-}Swap Left\" l \"swap-window -t:-1\" \"#{?#{\u003e:#{session_windows},1},,-}Swap Right\" r \"swap-window -t:+1\" \"#{?pane_marked_set,,-}Swap Marked\" s swap-window '' Kill X kill-window Respawn R \"respawn-window -k\" \"#{?pane_marked,Unmark,Mark}\" m \"select-pane -m\" Rename n \"command-prompt -I \\\"#W\\\" \\\"rename-window -- '%%'\\\"\" '' \"New After\" w \"new-window -a\" \"New At End\" W new-window ```\n- ``` bind-key    -T root         MouseDown3StatusLeft display-menu -T \"#[align=centre]#{session_name}\" -t = -x M -y W Next n \"switch-client -n\" Previous p \"switch-client -p\" '' Renumber N \"move-window -r\" Rename n \"command-prompt -I \\\"#S\\\" \\\"rename-session -- '%%'\\\"\" '' \"New Session\" s new-session \"New Window\" w new-window ```\n- ``` bind-key    -T root         MouseDrag1Pane       if-shell -F \"#{||:#{pane_in_mode},#{mouse_any_flag}}\" \"send -M\" \"copy-mode -M\" ```\n- ``` bind-key    -T root         MouseDrag1Border     resize-pane -M ```\n- ``` bind-key    -T root         WheelUpPane          if-shell -F \"#{||:#{pane_in_mode},#{mouse_any_flag}}\" \"send -M\" \"copy-mode -e\" ```\n- ``` bind-key    -T root         WheelUpStatus        previous-window ```\n- ``` bind-key    -T root         WheelDownStatus      next-window ```\n- ``` bind-key    -T root         DoubleClick1Pane     select-pane -t = \\; if-shell -F \"#{||:#{pane_in_mode},#{mouse_any_flag}}\" \"send -M\" \"copy-mode -H ; send -X select-word ; run -d0.3 ; send -X copy-pipe-and-cancel\" ```\n- ``` bind-key    -T root         TripleClick1Pane     select-pane -t = \\; if-shell -F \"#{||:#{pane_in_mode},#{mouse_any_flag}}\" \"send -M\" \"copy-mode -H ; send -X select-line ; run -d0.3 ; send -X copy-pipe-and-cancel\" ```\n- ``` bind-key    -T root         M-MouseDown3Pane     display-menu -T \"#[align=centre]#{pane_index} (#{pane_id})\" -t = -x M -y M \"#{?#{m/r:(copy|view)-mode,#{pane_mode}},Go To Top,}\" \u003c \"send -X history-top\" \"#{?#{m/r:(copy|view)-mode,#{pane_mode}},Go To Bottom,}\" \u003e \"send -X history-bottom\" '' \"#{?mouse_word,Search For #[underscore]#{=/9/...:mouse_word},}\" C-r \"if -F \\\"#{?#{m/r:(copy|view)-mode,#{pane_mode}},0,1}\\\" \\\"copy-mode -t=\\\" ; send -Xt= search-backward \\\"#{q:mouse_word}\\\"\" \"#{?mouse_word,Type #[underscore]#{=/9/...:mouse_word},}\" C-y \"copy-mode -q ; send-keys -l -- \\\"#{q:mouse_word}\\\"\" \"#{?mouse_word,Copy #[underscore]#{=/9/...:mouse_word},}\" c \"copy-mode -q ; set-buffer -- \\\"#{q:mouse_word}\\\"\" \"#{?mouse_line,Copy Line,}\" l \"copy-mode -q ; set-buffer -- \\\"#{q:mouse_line}\\\"\" '' \"Horizontal Split\" h \"split-window -h\" \"Vertical Split\" v \"split-window -v\" '' \"#{?#{\u003e:#{window_panes},1},,-}Swap Up\" u \"swap-pane -U\" \"#{?#{\u003e:#{window_panes},1},,-}Swap Down\" d \"swap-pane -D\" \"#{?pane_marked_set,,-}Swap Marked\" s swap-pane '' Kill X kill-pane Respawn R \"respawn-pane -k\" \"#{?pane_marked,Unmark,Mark}\" m \"select-pane -m\" \"#{?#{\u003e:#{window_panes},1},,-}#{?window_zoomed_flag,Unzoom,Zoom}\" z \"resize-pane -Z\" ```\n- ``` bind-key    -T root         M-Up                 select-pane -U ```\n- ``` bind-key    -T root         M-Down               select-pane -D ```\n- ``` bind-key    -T root         M-Left               select-pane -L ```\n- ``` bind-key    -T root         M-Right              select-pane -R ```\n# Zsh Vim Insert Mode keybindings (bindkey -M viins -L)\n- ``` bindkey -M viins \"^@\" zpwrExpandTerminateSpace ```\n- ``` bindkey -M viins \"^A\" beginning-of-line ```\n- ``` bindkey -M viins \"^B\" zpwrClipboard ```\n- ``` bindkey -M viins \"^C\" self-insert ```\n- ``` bindkey -M viins \"^D\" list-choices ```\n- ``` bindkey -M viins \"^E\" end-of-line ```\n- ``` bindkey -M viins \"^F^D\" zpwrIntoFzf ```\n- ``` bindkey -M viins \"^F^F\" zpwrVimFzfFilesearchWidgetAccept ```\n- ``` bindkey -M viins \"^F^G\" zpwrGoogle ```\n- ``` bindkey -M viins \"^F^H\" zpwrLsoffzf ```\n- ``` bindkey -M viins \"^F^I\" zpwrIntoFzfAg ```\n- ``` bindkey -M viins \"^F^J\" zpwrVerbsWidgetAccept ```\n- ``` bindkey -M viins \"^F^K\" zpwrAlternateQuotes ```\n- ``` bindkey -M viins \"^F^L\" list-choices ```\n- ``` bindkey -M viins \"^F^M\" zzcomplete ```\n- ``` bindkey -M viins \"^F^N\" zpwrVerbsWidget ```\n- ``` bindkey -M viins \"^F^O\" zpwrOpen ```\n- ``` bindkey -M viins \"^F^P\" basicSedSub ```\n- ``` bindkey -M viins \"^F^R\" zpwrAsVar ```\n- ``` bindkey -M viins \"^F^S\" zsh-gacp-CheckDiff ```\n- ``` bindkey -M viins \"^F^V\" edit-command-line ```\n- ``` bindkey -M viins \"^Fj\" zpwrVerbsWidgetAccept ```\n- ``` bindkey -M viins \"^Fn\" zpwrVerbsWidget ```\n- ``` bindkey -M viins \"^G\" what-cursor-position ```\n- ``` bindkey -M viins \"^H\" autopair-delete ```\n- ``` bindkey -M viins \"^I\" fzf-completion ```\n- ``` bindkey -M viins \"^J\" accept-line ```\n- ``` bindkey -M viins \"^K\" zsh-learn-Learn ```\n- ``` bindkey -M viins \"^L\" clear-screen ```\n- ``` bindkey -M viins \"^M\" zpwrMagicEnter ```\n- ``` bindkey -M viins \"^N\" down-history ```\n- ``` bindkey -M viins \"^O\" zpwrEOLorNextTabStop ```\n- ``` bindkey -M viins \"^O^I\" zc-logo ```\n- ``` bindkey -M viins \"^O^Z\" zui-demo-various ```\n- ``` bindkey -M viins \"^P\" up-history ```\n- ``` bindkey -M viins \"^Q\" zpwrLastWordDouble ```\n- ``` bindkey -M viins \"^R\" fzf-history-widget ```\n- ``` bindkey -M viins \"^S\" zsh-gacp-NoCheck ```\n- ``` bindkey -M viins \"^T\" fzf-file-widget ```\n- ``` bindkey -M viins \"^U\" zpwrClearLine ```\n- ``` bindkey -M viins \"^V^@\" zpwrVimFzf ```\n- ``` bindkey -M viins \"^V^F\" zpwrFasdFZF ```\n- ``` bindkey -M viins \"^V^G\" fzf-cd-widget ```\n- ``` bindkey -M viins \"^V^K\" zpwrEmacsFzf ```\n- ``` bindkey -M viins \"^V^L\" zpwrZFZF ```\n- ``` bindkey -M viins \"^V^N\" zpwrVimFzfSudo ```\n- ``` bindkey -M viins \"^V^O\" fzf-tab-complete ```\n- ``` bindkey -M viins \"^V^P\" sudo-command-line ```\n- ``` bindkey -M viins \"^V^R\" history-search-multi-word ```\n- ``` bindkey -M viins \"^V^S\" zpwrZFZF ```\n- ``` bindkey -M viins \"^V^V\" zpwrVimAllWidgetAccept ```\n- ``` bindkey -M viins \"^V^Z\" fzf-history-widget ```\n- ``` bindkey -M viins \"^V \" zpwrVimFzf ```\n- ``` bindkey -M viins \"^V,\" zpwrFzfEnv ```\n- ``` bindkey -M viins \"^V.\" zpwrFzfAllKeybind ```\n- ``` bindkey -M viins \"^V/.\" zpwrLocateFzfEdit ```\n- ``` bindkey -M viins \"^V//\" zpwrLocateFzf ```\n- ``` bindkey -M viins \"^V;\" zpwrFzfSurround ```\n- ``` bindkey -M viins \"^Vc\" zpwrFzfCommits ```\n- ``` bindkey -M viins \"^Vk\" zpwrFzfVimKeybind ```\n- ``` bindkey -M viins \"^Vl\" zpwrZFZF ```\n- ``` bindkey -M viins \"^Vm\" zpwrVimAllWidget ```\n- ``` bindkey -M viins \"^Vv\" zpwrVimAllWidgetAccept ```\n- ``` bindkey -M viins \"^W\" vi-backward-kill-word ```\n- ``` bindkey -M viins \"^X^R\" _read_comp ```\n- ``` bindkey -M viins \"^X^X\" zpwrBufferXtrace ```\n- ``` bindkey -M viins \"^X?\" _complete_debug ```\n- ``` bindkey -M viins \"^XC\" _correct_filename ```\n- ``` bindkey -M viins \"^Xa\" _expand_alias ```\n- ``` bindkey -M viins \"^Xc\" _correct_word ```\n- ``` bindkey -M viins \"^Xd\" _list_expansions ```\n- ``` bindkey -M viins \"^Xe\" _expand_word ```\n- ``` bindkey -M viins \"^Xh\" _complete_help ```\n- ``` bindkey -M viins \"^Xm\" _most_recent_file ```\n- ``` bindkey -M viins \"^Xn\" _next_tags ```\n- ``` bindkey -M viins \"^Xt\" _complete_tag ```\n- ``` bindkey -M viins \"^X~\" _bash_list-choices ```\n- ``` bindkey -M viins \"^Y\" zpwrChangeQuotes ```\n- ``` bindkey -M viins \"^Z\" undo ```\n- ``` bindkey -M viins \"^[\" vi-cmd-mode ```\n- ``` bindkey -M viins \"^[^D\" capitalize-word ```\n- ``` bindkey -M viins \"^[^E\" zpwrExpandGlobalAliases ```\n- ``` bindkey -M viins \"^[^F\" sub ```\n- ``` bindkey -M viins \"^[^L\" down-case-word ```\n- ``` bindkey -M viins \"^[^M\" self-insert-unmeta ```\n- ``` bindkey -M viins \"^[^O\" zpwrRunner ```\n- ``` bindkey -M viins \"^[^P\" zpwrUp8widget ```\n- ``` bindkey -M viins \"^[^T\" transpose-words ```\n- ``` bindkey -M viins \"^[^U\" up-case-word ```\n- ``` bindkey -M viins \"^[ \" zpwrSshRegain ```\n- ``` bindkey -M viins \"^[,\" _history-complete-newer ```\n- ``` bindkey -M viins \"^[/\" _history-complete-older ```\n- ``` bindkey -M viins \"^[OA\" history-substring-search-up ```\n- ``` bindkey -M viins \"^[OB\" history-substring-search-down ```\n- ``` bindkey -M viins \"^[OC\" vi-forward-char ```\n- ``` bindkey -M viins \"^[OD\" vi-backward-char ```\n- ``` bindkey -M viins \"^[OP\" zpwrUp8widget ```\n- ``` bindkey -M viins \"^[OQ\" sub ```\n- ``` bindkey -M viins \"^[OQ^[OQ\" npm_toggle_install_uninstall ```\n- ``` bindkey -M viins \"^[OR\" zpwrGetrcWidget ```\n- ``` bindkey -M viins \"^[[1;2D\" sub ```\n- ``` bindkey -M viins \"^[[1;5A\" zsh-gacp-CheckDiff ```\n- ``` bindkey -M viins \"^[[1;5B\" zpwrUpdater ```\n- ``` bindkey -M viins \"^[[1;5C\" zpwrTutsUpdate ```\n- ``` bindkey -M viins \"^[[1;5D\" dbz ```\n- ``` bindkey -M viins \"^[[1~\" beginning-of-line ```\n- ``` bindkey -M viins \"^[[200~\" bracketed-paste ```\n- ``` bindkey -M viins \"^[[3~\" delete-char ```\n- ``` bindkey -M viins \"^[[4~\" end-of-line ```\n- ``` bindkey -M viins \"^[[5~\" zpwrClipboard ```\n- ``` bindkey -M viins \"^[[A\" history-substring-search-up ```\n- ``` bindkey -M viins \"^[[B\" history-substring-search-down ```\n- ``` bindkey -M viins \"^[[C\" vi-forward-char ```\n- ``` bindkey -M viins \"^[[D\" vi-backward-char ```\n- ``` bindkey -M viins \"^[[Z\" zpwrClipboard ```\n- ``` bindkey -M viins \"^[c\" fzf-cd-widget ```\n- ``` bindkey -M viins \"^[man\" man-command-line ```\n- ``` bindkey -M viins \"^[~\" _bash_complete-word ```\n- ``` bindkey -R -M viins \"^\\\\\\\\\"-\"^_\" self-insert ```\n- ``` bindkey -M viins \" \" zpwrExpandSupernaturalSpace ```\n- ``` bindkey -M viins \"!\" self-insert ```\n- ``` bindkey -M viins \"\\\"\" zpwrInterceptSurround ```\n- ``` bindkey -R -M viins \"#\"-\"\u0026\" self-insert ```\n- ``` bindkey -R -M viins \"'\"-\"(\" zpwrInterceptSurround ```\n- ``` bindkey -M viins \")\" autopair-close ```\n- ``` bindkey -R -M viins \"*\"-\"-\" self-insert ```\n- ``` bindkey -M viins \".\" zpwrRationalizeDot ```\n- ``` bindkey -R -M viins \"/\"-\"Z\" self-insert ```\n- ``` bindkey -M viins \"[\" zpwrInterceptSurround ```\n- ``` bindkey -M viins \"\\\\\\\\\" self-insert ```\n- ``` bindkey -M viins \"]\" autopair-close ```\n- ``` bindkey -R -M viins \"\\^\"-\"_\" self-insert ```\n- ``` bindkey -M viins \"\\`\" zpwrInterceptSurround ```\n- ``` bindkey -R -M viins \"a\"-\"f\" self-insert ```\n- ``` bindkey -M viins \"fj\" vi-cmd-mode ```\n- ``` bindkey -R -M viins \"g\"-\"j\" self-insert ```\n- ``` bindkey -M viins \"jf\" vi-cmd-mode ```\n- ``` bindkey -R -M viins \"k\"-\"z\" self-insert ```\n- ``` bindkey -M viins \"{\" zpwrInterceptSurround ```\n- ``` bindkey -M viins \"|\" self-insert ```\n- ``` bindkey -M viins \"}\" autopair-close ```\n- ``` bindkey -M viins \"~\" self-insert ```\n- ``` bindkey -M viins \"^?\" zpwrInterceptDelete ```\n- ``` bindkey -R -M viins \"\\M-^@\"-\"\\M-^?\" self-insert ```\n# Zsh Vim Normal Mode keybindings (bindkey -M vicmd -L)\n- ``` bindkey -a \"^A\" beginning-of-line ```\n- ``` bindkey -a \"^B\" zpwrClipboard ```\n- ``` bindkey -a \"^D\" list-choices ```\n- ``` bindkey -a \"^E\" end-of-line ```\n- ``` bindkey -a \"^F^D\" zpwrIntoFzf ```\n- ``` bindkey -a \"^F^F\" zpwrVimFzfFilesearchWidgetAccept ```\n- ``` bindkey -a \"^F^G\" zpwrGoogle ```\n- ``` bindkey -a \"^F^H\" zpwrLsoffzf ```\n- ``` bindkey -a \"^F^I\" zpwrIntoFzfAg ```\n- ``` bindkey -a \"^F^J\" zpwrVerbsWidgetAccept ```\n- ``` bindkey -a \"^F^K\" zpwrAlternateQuotes ```\n- ``` bindkey -a \"^F^L\" list-choices ```\n- ``` bindkey -a \"^F^M\" zzcomplete ```\n- ``` bindkey -a \"^F^N\" zpwrVerbsWidget ```\n- ``` bindkey -a \"^F^O\" zpwrOpen ```\n- ``` bindkey -a \"^F^P\" basicSedSub ```\n- ``` bindkey -a \"^F^R\" zpwrAsVar ```\n- ``` bindkey -a \"^F^S\" zsh-gacp-CheckDiff ```\n- ``` bindkey -a \"^F^V\" edit-command-line ```\n- ``` bindkey -a \"^Fj\" zpwrVerbsWidgetAccept ```\n- ``` bindkey -a \"^Fn\" zpwrVerbsWidget ```\n- ``` bindkey -a \"^G\" what-cursor-position ```\n- ``` bindkey -a \"^H\" vi-backward-char ```\n- ``` bindkey -a \"^I\" zpwrExpandOrCompleteWithDots ```\n- ``` bindkey -a \"^J\" accept-line ```\n- ``` bindkey -a \"^K\" zsh-learn-Learn ```\n- ``` bindkey -a \"^L\" clear-screen ```\n- ``` bindkey -a \"^M\" zpwrMagicEnter ```\n- ``` bindkey -a \"^N\" down-history ```\n- ``` bindkey -a \"^O\" zpwrEOLorNextTabStop ```\n- ``` bindkey -a \"^P\" up-history ```\n- ``` bindkey -a \"^Q\" zpwrLastWordDouble ```\n- ``` bindkey -a \"^R\" redo ```\n- ``` bindkey -a \"^S\" zsh-gacp-NoCheck ```\n- ``` bindkey -a \"^T\" transpose-chars ```\n- ``` bindkey -a \"^U\" zpwrClearLine ```\n- ``` bindkey -a \"^V^@\" zpwrVimFzf ```\n- ``` bindkey -a \"^V^F\" zpwrFasdFZF ```\n- ``` bindkey -a \"^V^G\" fzf-cd-widget ```\n- ``` bindkey -a \"^V^K\" zpwrEmacsFzf ```\n- ``` bindkey -a \"^V^L\" zpwrZFZF ```\n- ``` bindkey -a \"^V^N\" zpwrVimFzfSudo ```\n- ``` bindkey -a \"^V^O\" fzf-tab-complete ```\n- ``` bindkey -a \"^V^P\" sudo-command-line ```\n- ``` bindkey -a \"^V^R\" history-search-multi-word ```\n- ``` bindkey -a \"^V^S\" zpwrZFZF ```\n- ``` bindkey -a \"^V^V\" zpwrVimAllWidgetAccept ```\n- ``` bindkey -a \"^V^Z\" fzf-history-widget ```\n- ``` bindkey -a \"^V \" zpwrVimFzf ```\n- ``` bindkey -a \"^V,\" zpwrFzfEnv ```\n- ``` bindkey -a \"^V.\" zpwrFzfAllKeybind ```\n- ``` bindkey -a \"^V/.\" zpwrLocateFzfEdit ```\n- ``` bindkey -a \"^V//\" zpwrLocateFzf ```\n- ``` bindkey -a \"^V;\" zpwrFzfSurround ```\n- ``` bindkey -a \"^Vc\" zpwrFzfCommits ```\n- ``` bindkey -a \"^Vl\" zpwrZFZF ```\n- ``` bindkey -a \"^Vm\" zpwrVimAllWidget ```\n- ``` bindkey -a \"^Vv\" zpwrVimAllWidgetAccept ```\n- ``` bindkey -a \"^W\" zpwrDeleteLastWord ```\n- ``` bindkey -a \"^X^X\" zpwrBufferXtrace ```\n- ``` bindkey -a \"^Y\" zpwrChangeQuotes ```\n- ``` bindkey -a \"^Z\" undo ```\n- ``` bindkey -a \"^[\" beep ```\n- ``` bindkey -a \"^[^D\" capitalize-word ```\n- ``` bindkey -a \"^[^L\" down-case-word ```\n- ``` bindkey -a \"^[^O\" zpwrRunner ```\n- ``` bindkey -a \"^[^P\" zpwrUp8widget ```\n- ``` bindkey -a \"^[^T\" transpose-words ```\n- ``` bindkey -a \"^[^U\" up-case-word ```\n- ``` bindkey -a \"^[ \" zpwrSshRegain ```\n- ``` bindkey -a \"^[OA\" up-line-or-history ```\n- ``` bindkey -a \"^[OB\" down-line-or-history ```\n- ``` bindkey -a \"^[OC\" vi-forward-char ```\n- ``` bindkey -a \"^[OD\" vi-backward-char ```\n- ``` bindkey -a \"^[OQ^[OQ\" npm_toggle_install_uninstall ```\n- ``` bindkey -a \"^[[200~\" bracketed-paste ```\n- ``` bindkey -a \"^[[A\" up-line-or-history ```\n- ``` bindkey -a \"^[[B\" down-line-or-history ```\n- ``` bindkey -a \"^[[C\" vi-forward-char ```\n- ``` bindkey -a \"^[[D\" vi-backward-char ```\n- ``` bindkey -a \" \" vi-forward-char ```\n- ``` bindkey -a \"\\\"\" vi-set-buffer ```\n- ``` bindkey -a \"#\" pound-insert ```\n- ``` bindkey -a \"\\$\" vi-end-of-line ```\n- ``` bindkey -a \"%\" vi-match-bracket ```\n- ``` bindkey -a \"'\" vi-goto-mark-line ```\n- ``` bindkey -a \"+\" vi-down-line-or-history ```\n- ``` bindkey -a \",\" vi-rev-repeat-find ```\n- ``` bindkey -a -- \"-\" vi-up-line-or-history ```\n- ``` bindkey -a \".\" vi-repeat-change ```\n- ``` bindkey -a \"/\" vi-history-search-backward ```\n- ``` bindkey -a \"0\" vi-digit-or-beginning-of-line ```\n- ``` bindkey -R -a \"1\"-\"9\" digit-argument ```\n- ``` bindkey -a \":\" execute-named-cmd ```\n- ``` bindkey -a \";\" vi-repeat-find ```\n- ``` bindkey -a \"\u003c\" vi-unindent ```\n- ``` bindkey -a \"=\" list-choices ```\n- ``` bindkey -a \"\u003e\" vi-indent ```\n- ``` bindkey -a \"?\" vi-history-search-forward ```\n- ``` bindkey -a \"A\" vi-add-eol ```\n- ``` bindkey -a \"B\" vi-backward-blank-word ```\n- ``` bindkey -a \"C\" vi-change-eol ```\n- ``` bindkey -a \"D\" vi-kill-eol ```\n- ``` bindkey -a \"E\" vi-forward-blank-word-end ```\n- ``` bindkey -a \"F\" vi-find-prev-char ```\n- ``` bindkey -a \"G\" end-of-buffer-or-history ```\n- ``` bindkey -a \"I\" vi-insert-bol ```\n- ``` bindkey -a \"J\" vi-join ```\n- ``` bindkey -a \"N\" vi-rev-repeat-search ```\n- ``` bindkey -a \"O\" vi-open-line-above ```\n- ``` bindkey -a \"P\" vi-put-before ```\n- ``` bindkey -a \"R\" vi-replace ```\n- ``` bindkey -a \"S\" vi-change-whole-line ```\n- ``` bindkey -a \"T\" vi-find-prev-char-skip ```\n- ``` bindkey -a \"V\" visual-line-mode ```\n- ``` bindkey -a \"W\" vi-forward-blank-word ```\n- ``` bindkey -a \"X\" vi-backward-delete-char ```\n- ``` bindkey -a \"Y\" vi-yank-whole-line ```\n- ``` bindkey -a \"\\^\" vi-first-non-blank ```\n- ``` bindkey -a \"\\`\" vi-goto-mark ```\n- ``` bindkey -a \"a\" vi-add-next ```\n- ``` bindkey -a \"b\" vi-backward-word ```\n- ``` bindkey -a \"c\" vi-change ```\n- ``` bindkey -a \"d\" vi-delete ```\n- ``` bindkey -a \"e\" vi-forward-word-end ```\n- ``` bindkey -a \"f\" vi-find-next-char ```\n- ``` bindkey -a \"gE\" vi-backward-blank-word-end ```\n- ``` bindkey -a \"gU\" vi-up-case ```\n- ``` bindkey -s -a \"gUU\" \"gUgU\" ```\n- ``` bindkey -a \"ga\" what-cursor-position ```\n- ``` bindkey -a \"ge\" vi-backward-word-end ```\n- ``` bindkey -a \"gg\" beginning-of-buffer-or-history ```\n- ``` bindkey -a \"gu\" vi-down-case ```\n- ``` bindkey -s -a \"guu\" \"gugu\" ```\n- ``` bindkey -a \"g~\" vi-oper-swap-case ```\n- ``` bindkey -s -a \"g~~\" \"g~g~\" ```\n- ``` bindkey -a \"h\" vi-backward-char ```\n- ``` bindkey -a \"i\" vi-insert ```\n- ``` bindkey -a \"j\" down-line-or-history ```\n- ``` bindkey -a \"k\" up-line-or-history ```\n- ``` bindkey -a \"l\" vi-forward-char ```\n- ``` bindkey -a \"m\" vi-set-mark ```\n- ``` bindkey -a \"n\" vi-repeat-search ```\n- ``` bindkey -a \"o\" vi-open-line-below ```\n- ``` bindkey -a \"p\" vi-put-after ```\n- ``` bindkey -a \"r\" vi-replace-chars ```\n- ``` bindkey -a \"s\" vi-substitute ```\n- ``` bindkey -a \"t\" vi-find-next-char-skip ```\n- ``` bindkey -a \"u\" undo ```\n- ``` bindkey -a \"v\" visual-mode ```\n- ``` bindkey -a \"w\" vi-forward-word ```\n- ``` bindkey -a \"x\" vi-delete-char ```\n- ``` bindkey -a \"y\" vi-yank ```\n- ``` bindkey -a \"|\" vi-goto-column ```\n- ``` bindkey -a \"~\" vi-swap-case ```\n- ``` bindkey -a \"^?\" vi-backward-char ```\n# Zsh Menuselect Mode keybindings (bindkey -M menuselect -L)\n- ``` bindkey -M menuselect \"^@\" accept-line ```\n- ``` bindkey -M menuselect \"^D\" accept-and-menu-complete ```\n- ``` bindkey -M menuselect \"^F\" accept-and-infer-next-history ```\n- ``` bindkey -M menuselect \"^H\" vi-backward-char ```\n- ``` bindkey -M menuselect \"^I\" vi-forward-char ```\n- ``` bindkey -M menuselect \"^J\" down-history ```\n- ``` bindkey -M menuselect \"^K\" up-history ```\n- ``` bindkey -M menuselect \"^L\" vi-forward-char ```\n- ``` bindkey -M menuselect \"^M\" .accept-line ```\n- ``` bindkey -M menuselect \"^N\" vi-forward-word ```\n- ``` bindkey -M menuselect \"^P\" vi-backward-word ```\n- ``` bindkey -M menuselect \"^S\" reverse-menu-complete ```\n- ``` bindkey -M menuselect \"^V\" vi-insert ```\n- ``` bindkey -M menuselect \"^X\" history-incremental-search-forward ```\n- ``` bindkey -M menuselect \"^[OA\" up-line-or-history ```\n- ``` bindkey -M menuselect \"^[OB\" down-line-or-history ```\n- ``` bindkey -M menuselect \"^[OC\" forward-char ```\n- ``` bindkey -M menuselect \"^[OD\" backward-char ```\n- ``` bindkey -M menuselect \"^[[1;5A\" vi-backward-word ```\n- ``` bindkey -M menuselect \"^[[1;5B\" vi-forward-word ```\n- ``` bindkey -M menuselect \"^[[1;5C\" vi-end-of-line ```\n- ``` bindkey -M menuselect \"^[[1;5D\" vi-beginning-of-line ```\n- ``` bindkey -M menuselect \"^[[1~\" vi-beginning-of-line ```\n- ``` bindkey -M menuselect \"^[[4~\" vi-end-of-line ```\n- ``` bindkey -M menuselect \"^[[5~\" vi-backward-word ```\n- ``` bindkey -M menuselect \"^[[6~\" vi-forward-word ```\n- ``` bindkey -M menuselect \"^[[A\" up-line-or-history ```\n- ``` bindkey -M menuselect \"^[[B\" down-line-or-history ```\n- ``` bindkey -M menuselect \"^[[C\" forward-char ```\n- ``` bindkey -M menuselect \"^[[D\" backward-char ```\n- ``` bindkey -M menuselect \"^[[Z\" reverse-menu-complete ```\n- ``` bindkey -M menuselect \".\" zpwrSelfInsert ```\n- ``` bindkey -M menuselect \"?\" history-incremental-search-backward ```\n- ``` bindkey -M menuselect \"^?\" undo ```\n# Zsh Vim Visual Mode keybindings (bindkey -M visual -L)\n- ``` bindkey -M visual \"^[\" deactivate-region ```\n- ``` bindkey -M visual \"^[OA\" up-line ```\n- ``` bindkey -M visual \"^[OB\" down-line ```\n- ``` bindkey -M visual \"^[[A\" up-line ```\n- ``` bindkey -M visual \"^[[B\" down-line ```\n- ``` bindkey -M visual \"-\" vi-up-line-or-history ```\n- ``` bindkey -M visual \"U\" vi-up-case ```\n- ``` bindkey -M visual \"a\\\"\" select-quoted ```\n- ``` bindkey -M visual \"a'\" select-quoted ```\n- ``` bindkey -M visual \"a(\" select-bracketed ```\n- ``` bindkey -M visual \"a)\" select-bracketed ```\n- ``` bindkey -M visual \"a+\" select-quoted ```\n- ``` bindkey -M visual \"a,\" select-quoted ```\n- ``` bindkey -M visual \"a-\" select-quoted ```\n- ``` bindkey -M visual \"a.\" select-quoted ```\n- ``` bindkey -M visual \"a/\" select-quoted ```\n- ``` bindkey -M visual \"a:\" select-quoted ```\n- ``` bindkey -M visual \"a;\" select-quoted ```\n- ``` bindkey -M visual \"a\u003c\" select-bracketed ```\n- ``` bindkey -M visual \"a=\" select-quoted ```\n- ``` bindkey -M visual \"a\u003e\" select-bracketed ```\n- ``` bindkey -M visual \"a@\" select-quoted ```\n- ``` bindkey -M visual \"aB\" select-bracketed ```\n- ``` bindkey -M visual \"aW\" select-a-blank-word ```\n- ``` bindkey -M visual \"a[\" select-bracketed ```\n- ``` bindkey -M visual \"a\\\\\\\\\" select-quoted ```\n- ``` bindkey -M visual \"a]\" select-bracketed ```\n- ``` bindkey -M visual \"a\\`\" select-quoted ```\n- ``` bindkey -M visual \"aa\" select-a-shell-word ```\n- ``` bindkey -M visual \"ab\" select-bracketed ```\n- ``` bindkey -M visual \"aw\" select-a-word ```\n- ``` bindkey -M visual \"a{\" select-bracketed ```\n- ``` bindkey -M visual \"a|\" select-quoted ```\n- ``` bindkey -M visual \"a}\" select-bracketed ```\n- ``` bindkey -M visual \"i\\\"\" select-quoted ```\n- ``` bindkey -M visual \"i'\" select-quoted ```\n- ``` bindkey -M visual \"i(\" select-bracketed ```\n- ``` bindkey -M visual \"i)\" select-bracketed ```\n- ``` bindkey -M visual \"i+\" select-quoted ```\n- ``` bindkey -M visual \"i,\" select-quoted ```\n- ``` bindkey -M visual \"i-\" select-quoted ```\n- ``` bindkey -M visual \"i.\" select-quoted ```\n- ``` bindkey -M visual \"i/\" select-quoted ```\n- ``` bindkey -M visual \"i:\" select-quoted ```\n- ``` bindkey -M visual \"i;\" select-quoted ```\n- ``` bindkey -M visual \"i\u003c\" select-bracketed ```\n- ``` bindkey -M visual \"i=\" select-quoted ```\n- ``` bindkey -M visual \"i\u003e\" select-bracketed ```\n- ``` bindkey -M visual \"i@\" select-quoted ```\n- ``` bindkey -M visual \"iB\" select-bracketed ```\n- ``` bindkey -M visual \"iW\" select-in-blank-word ```\n- ``` bindkey -M visual \"i[\" select-bracketed ```\n- ``` bindkey -M visual \"i\\\\\\\\\" select-quoted ```\n- ``` bindkey -M visual \"i]\" select-bracketed ```\n- ``` bindkey -M visual \"i\\`\" select-quoted ```\n- ``` bindkey -M visual \"ia\" select-in-shell-word ```\n- ``` bindkey -M visual \"ib\" select-bracketed ```\n- ``` bindkey -M visual \"iw\" select-in-word ```\n- ``` bindkey -M visual \"i{\" select-bracketed ```\n- ``` bindkey -M visual \"i|\" select-quoted ```\n- ``` bindkey -M visual \"i}\" select-bracketed ```\n- ``` bindkey -M visual \"j\" down-line ```\n- ``` bindkey -M visual \"k\" up-line ```\n- ``` bindkey -M visual \"o\" exchange-point-and-mark ```\n- ``` bindkey -M visual \"p\" put-replace-selection ```\n- ``` bindkey -M visual \"u\" vi-down-case ```\n- ``` bindkey -M visual \"x\" vi-delete ```\n- ``` bindkey -M visual \"~\" vi-oper-swap-case ```\n# Zsh Listscroll Mode keybindings (bindkey -M listscroll -L)\n- ``` bindkey -M listscroll \"^I\" complete-word ```\n- ``` bindkey -M listscroll \"^J\" accept-line ```\n- ``` bindkey -M listscroll \"^M\" accept-line ```\n- ``` bindkey -M listscroll \"^[OB\" down-line-or-history ```\n- ``` bindkey -M listscroll \"^[[B\" down-line-or-history ```\n- ``` bindkey -M listscroll \" \" complete-word ```\n- ``` bindkey -M listscroll \"f\" complete-word ```\n- ``` bindkey -M listscroll \"q\" send-break ```\n# Zsh Vim Operator Mode keybindings (bindkey -M viopp -L)\n- ``` bindkey -M viopp \"^[\" vi-cmd-mode ```\n- ``` bindkey -M viopp \"^[OA\" up-line ```\n- ``` bindkey -M viopp \"^[OB\" down-line ```\n- ``` bindkey -M viopp \"^[[A\" up-line ```\n- ``` bindkey -M viopp \"^[[B\" down-line ```\n- ``` bindkey -M viopp \"-\" vi-up-line-or-history ```\n- ``` bindkey -M viopp \"a\\\"\" select-quoted ```\n- ``` bindkey -M viopp \"a'\" select-quoted ```\n- ``` bindkey -M viopp \"a(\" select-bracketed ```\n- ``` bindkey -M viopp \"a)\" select-bracketed ```\n- ``` bindkey -M viopp \"a+\" select-quoted ```\n- ``` bindkey -M viopp \"a,\" select-quoted ```\n- ``` bindkey -M viopp \"a-\" select-quoted ```\n- ``` bindkey -M viopp \"a.\" select-quoted ```\n- ``` bindkey -M viopp \"a/\" select-quoted ```\n- ``` bindkey -M viopp \"a:\" select-quoted ```\n- ``` bindkey -M viopp \"a;\" select-quoted ```\n- ``` bindkey -M viopp \"a\u003c\" select-bracketed ```\n- ``` bindkey -M viopp \"a=\" select-quoted ```\n- ``` bindkey -M viopp \"a\u003e\" select-bracketed ```\n- ``` bindkey -M viopp \"a@\" select-quoted ```\n- ``` bindkey -M viopp \"aB\" select-bracketed ```\n- ``` bindkey -M viopp \"aW\" select-a-blank-word ```\n- ``` bindkey -M viopp \"a[\" select-bracketed ```\n- ``` bindkey -M viopp \"a\\\\\\\\\" select-quoted ```\n- ``` bindkey -M viopp \"a]\" select-bracketed ```\n- ``` bindkey -M viopp \"a\\`\" select-quoted ```\n- ``` bindkey -M viopp \"aa\" select-a-shell-word ```\n- ``` bindkey -M viopp \"ab\" select-bracketed ```\n- ``` bindkey -M viopp \"aw\" select-a-word ```\n- ``` bindkey -M viopp \"a{\" select-bracketed ```\n- ``` bindkey -M viopp \"a|\" select-quoted ```\n- ``` bindkey -M viopp \"a}\" select-bracketed ```\n- ``` bindkey -M viopp \"i\\\"\" select-quoted ```\n- ``` bindkey -M viopp \"i'\" select-quoted ```\n- ``` bindkey -M viopp \"i(\" select-bracketed ```\n- ``` bindkey -M viopp \"i)\" select-bracketed ```\n- ``` bindkey -M viopp \"i+\" select-quoted ```\n- ``` bindkey -M viopp \"i,\" select-quoted ```\n- ``` bindkey -M viopp \"i-\" select-quoted ```\n- ``` bindkey -M viopp \"i.\" select-quoted ```\n- ``` bindkey -M viopp \"i/\" select-quoted ```\n- ``` bindkey -M viopp \"i:\" select-quoted ```\n- ``` bindkey -M viopp \"i;\" select-quoted ```\n- ``` bindkey -M viopp \"i\u003c\" select-bracketed ```\n- ``` bindkey -M viopp \"i=\" select-quoted ```\n- ``` bindkey -M viopp \"i\u003e\" select-bracketed ```\n- ``` bindkey -M viopp \"i@\" select-quoted ```\n- ``` bindkey -M viopp \"iB\" select-bracketed ```\n- ``` bindkey -M viopp \"iW\" select-in-blank-word ```\n- ``` bindkey -M viopp \"i[\" select-bracketed ```\n- ``` bindkey -M viopp \"i\\\\\\\\\" select-quoted ```\n- ``` bindkey -M viopp \"i]\" select-bracketed ```\n- ``` bindkey -M viopp \"i\\`\" select-quoted ```\n- ``` bindkey -M viopp \"ia\" select-in-shell-word ```\n- ``` bindkey -M viopp \"ib\" select-bracketed ```\n- ``` bindkey -M viopp \"iw\" select-in-word ```\n- ``` bindkey -M viopp \"i{\" select-bracketed ```\n- ``` bindkey -M viopp \"i|\" select-quoted ```\n- ``` bindkey -M viopp \"i}\" select-bracketed ```\n- ``` bindkey -M viopp \"j\" down-line ```\n- ``` bindkey -M viopp \"k\" up-line ```\n# Vim Keybindings Insert Mode\n- ``` \u000f ```\n- ``` i  \u003cS-BS\u003e       @\u003cPlug\u003edelimitMateS-BS ```\n- ``` i  \u003cBS\u003e         @\u003cPlug\u003edelimitMateBS ```\n- ``` i  \u003cPlug\u003edelimitMateJumpMany *@\u003cSNR\u003e58_TriggerAbb().\"\\\u003cC-R\u003e=delimitMate#JumpMany()\\\u003cCR\u003e\" ```\n- ``` i  \u003cC-G\u003eg       @\u003cPlug\u003edelimitMateJumpMany ```\n- ``` i  \u003cC-H\u003e        @\u003cPlug\u003edelimitMateBS ```\n- ``` i  \"            @\u003cPlug\u003edelimitMate\" ```\n- ``` i  '            @\u003cPlug\u003edelimitMate' ```\n- ``` i  (            @\u003cPlug\u003edelimitMate( ```\n- ``` i  )            @\u003cPlug\u003edelimitMate) ```\n- ``` i  [            @\u003cPlug\u003edelimitMate[ ```\n- ``` i  ]            @\u003cPlug\u003edelimitMate] ```\n- ``` i  `            @\u003cPlug\u003edelimitMate` ```\n- ``` i  {            @\u003cPlug\u003edelimitMate{ ```\n- ``` i  }            @\u003cPlug\u003edelimitMate} ```\n- ``` i  \u003cPlug\u003eISurround * \u003cC-R\u003e=\u003cSNR\u003e138_insert(1)\u003cCR\u003e ```\n- ``` i  \u003cPlug\u003eIsurround * \u003cC-R\u003e=\u003cSNR\u003e138_insert()\u003cCR\u003e ```\n- ``` i  \u003cPlug\u003e(sexp_insert_backspace) * sexp#backspace_insertion() ```\n- ``` i  \u003cPlug\u003e(sexp_insert_double_quote) * sexp#quote_insertion('\"') ```\n- ``` i  \u003cPlug\u003e(sexp_insert_closing_curly) * sexp#closing_insertion('}') ```\n- ``` i  \u003cPlug\u003e(sexp_insert_closing_square) * sexp#closing_insertion(']') ```\n- ``` i  \u003cPlug\u003e(sexp_insert_closing_round) * sexp#closing_insertion(')') ```\n- ``` i  \u003cPlug\u003e(sexp_insert_opening_curly) * sexp#opening_insertion('{') ```\n- ``` i  \u003cPlug\u003e(sexp_insert_opening_square) * sexp#opening_insertion('[') ```\n- ``` i  \u003cPlug\u003e(sexp_insert_opening_round) * sexp#opening_insertion('(') ```\n- ``` !  \u003cM-C-H\u003e     * \u003cC-W\u003e ```\n- ``` !  \u003cM-BS\u003e      * \u003cC-W\u003e ```\n- ``` !  \u003cM-p\u003e       * \u003cUp\u003e ```\n- ``` !  \u003cM-n\u003e       * \u003cDown\u003e ```\n- ``` i  \u003cM-d\u003e       * \u003cC-O\u003edw ```\n- ``` !  \u003cM-f\u003e       * \u003cS-Right\u003e ```\n- ``` !  \u003cM-b\u003e       * \u003cS-Left\u003e ```\n- ``` i  \u003cPlug\u003eNERDCommenterInsert * \u003cSpace\u003e\u003cBS\u003e\u003cEsc\u003e:call nerdcommenter#Comment('i', \"insert\")\u003cCR\u003e ```\n- ``` i  \u003cPlug\u003e(neosnippet_start_unite_snippet) * unite#sources#neosnippet#start_complete() ```\n- ``` i  \u003cPlug\u003e(neosnippet_jump) * neosnippet#mappings#jump_impl() ```\n- ``` i  \u003cPlug\u003e(neosnippet_expand) * neosnippet#mappings#expand_impl() ```\n- ``` i  \u003cPlug\u003e(neosnippet_jump_or_expand) * neosnippet#mappings#jump_or_expand_impl() ```\n- ``` i  \u003cPlug\u003e(neosnippet_expand_or_jump) * neosnippet#mappings#expand_or_jump_impl() ```\n- ``` i  \u003cPlug\u003e(fzf-maps-i) * \u003cC-O\u003e:call fzf#vim#maps('i', 0)\u003cCR\u003e ```\n- ``` i  \u003cPlug\u003e(fzf-complete-buffer-line) * fzf#vim#complete#buffer_line() ```\n- ``` i  \u003cPlug\u003e(fzf-complete-line) * fzf#vim#complete#line() ```\n- ``` i  \u003cPlug\u003e(fzf-complete-file-ag) * fzf#vim#complete#path('ag -l -g \"\"') ```\n- ``` i  \u003cPlug\u003e(fzf-complete-file) * fzf#vim#complete#path(\"find . -path '*/\\.*' -prune -o -type f -print -o -type l -print | sed 's:^..::'\") ```\n- ``` i  \u003cPlug\u003e(fzf-complete-path) * fzf#vim#complete#path(\"find . -path '*/\\.*' -prune -o -print | sed '1d;s:^..::'\") ```\n- ``` i  \u003cPlug\u003e(fzf-complete-word) * fzf#vim#complete#word() ```\n- ``` i  \u003cPlug\u003e(emmet-merge-lines) * \u003cC-R\u003e=emmet#util#closePopup()\u003cCR\u003e\u003cC-R\u003e=emmet#mergeLines()\u003cCR\u003e ```\n- ``` i  \u003cPlug\u003e(emmet-anchorize-summary) * \u003cC-R\u003e=emmet#util#closePopup()\u003cCR\u003e\u003cC-R\u003e=emmet#anchorizeURL(1)\u003cCR\u003e ```\n- ``` i  \u003cPlug\u003e(emmet-anchorize-url) * \u003cC-R\u003e=emmet#util#closePopup()\u003cCR\u003e\u003cC-R\u003e=emmet#anchorizeURL(0)\u003cCR\u003e ```\n- ``` i  \u003cPlug\u003e(emmet-remove-tag) * \u003cC-R\u003e=emmet#util#closePopup()\u003cCR\u003e\u003cC-R\u003e=emmet#removeTag()\u003cCR\u003e ```\n- ``` i  \u003cPlug\u003e(emmet-split-join-tag) * \u003cEsc\u003e:call emmet#splitJoinTag()\u003cCR\u003e ```\n- ``` i  \u003cPlug\u003e(emmet-toggle-comment) * \u003cC-R\u003e=emmet#util#closePopup()\u003cCR\u003e\u003cC-R\u003e=emmet#toggleComment()\u003cCR\u003e ```\n- ``` i  \u003cPlug\u003e(emmet-image-encode) * \u003cC-R\u003e=emmet#util#closePopup()\u003cCR\u003e\u003cC-R\u003e=emmet#imageEncode()\u003cCR\u003e ```\n- ``` i  \u003cPlug\u003e(emmet-image-size) * \u003cC-R\u003e=emmet#util#closePopup()\u003cCR\u003e\u003cC-R\u003e=em","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMenkeTechnologies%2Fzpwr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMenkeTechnologies%2Fzpwr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMenkeTechnologies%2Fzpwr/lists"}