Usage

bootstrap_dotfiles.sh

bashscripts/bootstrap_dotfiles.sh-h:

$ bash ../../scripts/bootstrap_dotfiles.sh -hbash: ../../scripts/bootstrap_dotfiles.sh: No such file or directory

Makefile

makehelp:

$ cd $_WRD && make helpmake[2]: Entering directory '/home/wturner/-wrk/-ve37/dotfiles/src/dotfiles'dotfiles Makefile#################help         -- print dotfiles helphelp_vim     -- print dotvim make helphelp_vim_txt -- print dotvim help as rsthelp_i3      -- print i3wm configurationhelp_setuppy -- print setup.py helphelp_txt     -- print setup.py help as rstinstall      -- install dotfiles and dotvim [in a VIRTUAL_ENV]upgrade      -- upgrade dotfiles and dotvim [in a VIRTUAL_ENV]install_user -- install dotfiles and dotvim (with 'pip --user')upgrade_user -- upgrade dodtfiles and dotfile (with 'pip --user')pip_upgrade pip              -- upgrade pippip_install_requirements_all -- install all pip requirementsinstall_gitflow -- install gitflow from githubinstall_hubflow -- install hubflow from githubinstall_brew_formulas  -- install brew formulasupdate_brew_list       -- overwrite etc/brew/brew.listclean  -- remove .pyc, .pyo, __pycache__/ etcedit   -- edit the project main files README.rsttest   -- run testsbuild  -- build a python sdistgenerate_venv  -- generate ipython_magics.py, venv.sh, and venv.vimstart-release -- start a new release named release  -- finish a release named docs      -- build sphinx documentationgh-pages  -- overwrite the gh-pages branch with docs/_build/htmlpush      -- git pushpull      -- git pullmake[2]: Leaving directory '/home/wturner/-wrk/-ve37/dotfiles/src/dotfiles'

Readline

dhelpreadline# == dhelp inputrc
### .inputrc -- readline configuration## Bash readline quickstart#  https://www.gnu.org/software/bash/manual/html_node/Command-Line-Editing.html#Command-Line-Editing#   * https://www.gnu.org/software/bash/manual/html_node/Readline-Interaction.html#   * https://www.gnu.org/software/bash/manual/html_node/Readline-Init-File.html#   * https://www.gnu.org/software/bash/manual/html_node/Readline-vi-Mode.html#Readline-vi-Mode#   * https://github.com/whiteinge/dotfiles/blob/master/.inputrc#  help bind#  # list bindings#  bind -p#  bind -P | grep -v 'is not bound'#  # read bindings#  bind -f ~/.inputrc## vi-mode#  Various terminals have vi-mode settings:#  - bash: set -o vi  (default: set -o emacs)#  - ksh:  set -o vi#  - zsh:  bindkey -v#  - tcsh: bindkey -v## <ctrl/alt> left/right -- backward/forward one word#  <alt> left   -- move backward one word#  <ctrl> left  -- move backward one word#  <alt> right  -- move forward one word#  <ctrl> right -- move forward one word## <ctrl/alt> up/down -- beginning/end of line#  <alt> up     -- move to beginning of line#  <ctrl> up    -- move to beginning of line#  <ctrl> down  -- move to end of line#  <ctrl> down  -- move to end of line## vi-command keymap#  <ctrl> l  -- clear screen#  <ctrl> k  -- clear whole line#  <ctrl> a  -- move to beginning of line (^)#  <ctrl> [  -- move to beginning of line (^)#  <ctrl> e  -- move to end of line ($)#  <ctrl> ]  -- move to end of line ($)#  <up>      -- history search backward (match current input)#  <down>    -- history search forward (match current input)#  <ctrl> w  -- delete last word#  <ctrl> gx -- expand without executing#  <ctrl> 3  -- prefix with '# '## vi-insert keymap#  emulate a few options from "set -o emacs":#  <ctrl> l  -- clear screen#  <ctrl> k  -- clear whole line#  <ctrl> a  -- move to beginning of line (^)#  <ctrl> [  -- move to beginning of line (^)#  <ctrl> e  -- move to end of line ($)#  <ctrl> ]  -- move to end of line ($)#  <up>      -- history search backward (match current input)#  <down>    -- history search forward (match current input)#  <ctrl> w  -- delete last word#  <ctrl> gx -- glob expand without executing#  <ctrl> 3  -- prefix with '# '#  see: bindkey -p

Bash

dhelpbash
etc/bash/00-bashrc.before.sh=============================| Src: `etc/bash/00-bashrc.before.sh <https://github.com/westurner/dotfiles/tree/develop/etc/bash/00-bashrc.before.sh>`__.. code:: bash   .   ## 00-bashrc.before.sh     -- bash dotfiles configuration root      source ${__DOTFILES}/etc/bash/00-bashrc.before.sh    -- dotfiles_reload()            dotfiles_reload()  -- (re)load the bash configuration        $__DOTFILES (str): -- path to the dotfiles symlink (~/-dotfiles)           ## 01-bashrc.lib.sh           -- useful bash functions (paths)        lspath()           -- list every file along $PATH        realpath()         -- readlink -f (python os.path.realpath)        walkpath()         -- list every directory along ${1:-"."}           ## 02-bashrc.platform.sh      -- platform things        detect_platform()  -- set $__IS_MAC or $__IS_LINUX     ## 03-bashrc.darwin.sh           ## 04-bashrc.TERM.sh          -- set $TERM and $CLICOLOR           ## 05-bashrc.dotfiles.sh      -- dotfiles        $__DOTFILES (str): -- path to the dotfiles symlink (~/.dotfiles)        dotfiles_status()  -- print dotfiles variables        ds()               -- print dotfiles variables           ## 06-bashrc.completion.sh    -- configure bash completion           ##        virtualenvwrapper / virtualenv / venv constants              $PROJECT_HOME (str): path to project directory (~/-wrk)        $WORKON_HOME  (str): path to virtualenvs directory (~/-wrk/-ve27)        $VIRTUAL_ENV  (str): path to current $VIRTUAL_ENV ($WORKON_HOME/$VENVSTR)           ## 07-bashrc.python.sh            -- python        _setup_python()              -- configure PYTHONSTARTUP        _setup_pip()                 -- configure PIP_REQUIRE_VIRTUALENV        _setup_pyenv()               -- setup pyenv PYENV_ROOT and eval (manual)           ## 08-bashrc.conda.sh             -- conda        _setup_conda()               -- setup conda paths (manual)                                        WORKON_HOME=CONDA_ENVS_PATH          $1 (str): (optional) CONDA_ENVS_PATH (WORKON_HOME)          $2 (str): (optional) CONDA_ROOT_PATH (or '27' or '34')        $CONDA_ROOT      (str): path to conda install (~/-wrk/-conda34)        $CONDA_ENVS_PATH (str): path to condaenvs directory (~/-wrk/-ce34) [conda]           ## 07-bashrc.virtualenvwrapper.sh -- virtualenvwrapper        _setup_virtualenvwrapper     -- configure virtualenvwrapper        backup_virtualenv($VENVSTR)  -- backup a venv in WORKON_HOME                                        $WORKON_HOME/$VENVSTR -> ./-bkp/$VENVSTR        backup_virtualenvs()         -- backup all venvs in WORKON_HOME                                        $WORKON_HOME/*        -> ./-bkp/*        rebuild_virtualenv($VENVSTR) -- rebuild $WORKON_HOME/$VENVSTR        rebuild_virtualenvs()        -- rebuild $WORKON_HOME/*        TODO: restore_virtualenv($BACKUPVENVSTR, [$NEWVENVSTR])           ## 08-bashrc.gcloud.sh        -- gcloud: Google Cloud SDK        _setup_google_cloud()  -- setup google cloud paths           ## 10-bashrc.venv.sh          -- venv: virtualenvwrapper extensions        _setup_venv()        $__PROJECTSRC     (str): script to source (${PROJECT_HOME}/.projectsrc.sh)        $VIRTUAL_ENV_NAME (str): basename of $VIRTUAL_ENV [usrlog: prompt, title]        $_APP             (str): $VIRTUAL_ENV/src/${_APP}        we() -- workon a new venv           $1: VIRTUAL_ENV_NAME [$WORKON_HOME/${VIRTUAL_ENV_NAME}=>$VIRTUAL_ENV]           $2: _APP (optional; defaults to $VIRTUAL_ENV_NAME)                 we dotfiles           we dotfiles etc/bash; cdw; ds; # ls -altr; lll; cd ~; ew etc/bash/*.sh           type workon_venv; command -v venv.py; venv.py --help                 ## 11-bashrc.venv.pyramid.sh  -- venv-pyramid: pyramid-specific config           ## 20-bashrc.editor.sh        -- $EDITOR configuration        $EDITOR  (str): cmdstring to open $@ (file list) in editor        $EDITOR_ (str): cmdstring to open $@ (file list) in current editor        e()        -- open paths in current EDITOR_                   [scripts/e]        ew()       -- open paths relative to $_WRD in current EDITOR_ [scripts/ew]                      (~ cd $_WRD; $EDITOR_ ${@}) + tab completion           ## 20-bashrc.vimpagers.sh     -- $PAGER configuration        $PAGER   (str): cmdstring to run pager (less/vim)        lessv()    -- open in vim with less.vim                      VIMPAGER_SYNTAX="python" lessv        lessg()    -- open in a gvim with less.vim                      VIMPAGER_SYNTAX="python" lessv        lesse()    -- open with $EDITOR_ (~e)        manv()     -- open manpage with vim        mang()     -- open manpage with gvim        mane()     -- open manpage with $EDITOR_ (~e)              TODO: GIT_PAGER="/usr/bin/less -R | /usr/bin/cat"           ## 30-bashrc.usrlog.sh        -- $_USRLOG configuration        _setup_usrlog()    -- configure usrlog        $_USRLOG (str): path to a -usrlog.log command log                      __USRLOG=~/-usrlog.log                       _USRLOG=${VIRTUAL_ENV}/-usrlog.log        lsusrlogs  -- ls -tr   "${__USRLOG}" "${WORKON_HOME}/*/-usrlog.log"        stid       -- set $TERM_ID to a random string (e.g. "#Yt0PyyKWPro")        stid $name -- set $TERM_ID to string (e.g. \#20150704, "#20150704")        note       -- log a #note to $_USRLOG (histn==#note)        todo       -- log a #todo to $_USRLOG (histn==#todo)        usrlogv    -- open usrlog with vim:    $VIMBIN    $_USRLOG        usrlogg    -- open usrlog with gmvim:  $GUIVIMBIN $_USRLOG        usrloge    -- open usrlog with editor: $EDITOR    $_USRLOG        ut         -- tail -n__ $_USRLOG [ #BUG workaround: see venv.py]        ug         -- egrep current usrlog: egrep $@ $_USRLOG        ugall      -- egrep all usrlogs [ #BUG workaround: see venv.py ]                           egrep $@ "${__USRLOG}" "${WORKON_HOME}/*/-usrlog.log"        ugrin      -- grin current usrlog: grin $@ ${_USRLOG}        ugrinall   -- grin $@  "${__USRLOG}" "${WORKON_HOME}/*/-usrlog.log"           ## 30-bashrc.xlck.sh          -- screensaver, (auto) lock, suspend        _setup_xlck()      -- configure xlck           ## 40-bashrc.aliases.sh       -- aliases        _setup_venv_aliases()  -- source in e, ew, makew, ssv, hgw, gitw          _setup_supervisord() -- configure _SVCFG             $1 (str): path to a supervisord.conf file "${1:-${_SVCFG}"     ## 42-bashrc.commands.sh      -- example commands           ## 50-bashrc.bashmarks.sh     -- bashmarks: local bookmarks           ## 70-bashrc.repos.sh         -- repos: $__SRC repos, docs           ## 99-bashrc.after.sh         -- after: cleanup         dr()  -- dotfiles_reload         ds()  -- print dotfiles_status()   .      etc/bash/01-bashrc.lib.sh==========================| Src: `etc/bash/01-bashrc.lib.sh <https://github.com/westurner/dotfiles/tree/develop/etc/bash/01-bashrc.lib.sh>`__.. code:: bash   .   ### bashrc.lib.sh   ## bash         echo_args         -- echo $@ (for checking quoting)         function_exists() -- check whether a bash function exists       PATH_prepend()     -- prepend a directory ($1) to $PATH           instead of:               export PATH=$dir:$PATH               PATH_prepend $dir          PATH_remove()  -- remove a directory from $PATH         note: empty path components ("::") will be stripped         PATH_contains() -- test whether $PATH contains $1         lightpath()       -- display $PATH with newlines         lspath()          -- list files in each directory in $PATH         lspath_less()     -- lspath with less (color)   ## file paths         realpath()        -- print absolute path (os.path.realpath) to $1                              note: OSX does not have readlink -f         path()            -- realpath()         walkpath()        -- walk down path $1 and $cmd each component           $1: path (optional; default: pwd)           $2: cmd  (optional; default: 'ls -ald --color=auto')         ensure_symlink()  -- create or update a symlink to $2 from $1                              if $2 exists, backup with suffix $3         ensure_mkdir()    -- create directory $1 if it does not yet exist   .      etc/bash/02-bashrc.platform.sh===============================| Src: `etc/bash/02-bashrc.platform.sh <https://github.com/westurner/dotfiles/tree/develop/etc/bash/02-bashrc.platform.sh>`__.. code:: bash   .   ### bashrc.platform.sh         detect_platform() -- set $__IS_MAC or $__IS_LINUX according to $(uname)         j()               -- jobs         f()               -- fg %$1         b()               -- bg %$1         killjob()         -- kill %$1   .      etc/bash/03-bashrc.darwin.sh=============================| Src: `etc/bash/03-bashrc.darwin.sh <https://github.com/westurner/dotfiles/tree/develop/etc/bash/03-bashrc.darwin.sh>`__.. code:: bash   .   ### bashrc.darwin.sh     softwareupdate                -- install OSX updates      | Docs: https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man8/softwareupdate.8.html      softwareupdate -l        # --list      softwareupdate -i --all  # --install --all      softwareupdate -i -r     # --install --recommended     Mac Boot-time modifiers: (right after the chime)          Option    -- boot to boot disk selector menu      C         -- boot from CD/DVD      Shift     -- boot into Safe mode      Command-V -- boot into verbose mode       sudo nvram boot-args="-v"  # always boot verbosely       sudo nvram boot-args=""    # boot normally       sudo nvram -p              # print current nvram settings     if __IS_MAC:         finder()    -- open Finder.app         finder-killall()  -- close all Finder.app instances         finder-restart()  -- close all and start Finder.app         finder-hide-hidden()    -- hide .hidden files in Finder.app                                    (and close all Finder windows)         finder-show-hidden()    -- show .hidden files in Finder.app                                    (and close all Finder windows)   .      etc/bash/04-bashrc.TERM.sh===========================| Src: `etc/bash/04-bashrc.TERM.sh <https://github.com/westurner/dotfiles/tree/develop/etc/bash/04-bashrc.TERM.sh>`__.. code:: bash   .   ### bashrc.TERM.sh         configure_TERM            -- configure the $TERM variable (man terminfo)           $1: (optional; autodetects if -z)         configure_TERM_CLICOLOR   -- configure $CLICOLOR and $CLICOLOR_256           CLICOLOR=1         configure_TERM when sourced   .      etc/bash/05-bashrc.dotfiles.sh===============================| Src: `etc/bash/05-bashrc.dotfiles.sh <https://github.com/westurner/dotfiles/tree/develop/etc/bash/05-bashrc.dotfiles.sh>`__.. code:: bash   .   ### bashrc.dotfiles.sh         dotfiles_add_path()       -- add ${__DOTFILES}/scripts to $PATH         shell_escape_single()         dotfiles_status()         -- print dotfiles_status         ds()                      -- print dotfiles_status         source "${__DOTFILES}/scripts/cls"         clr()                     -- clear scrollback         cls()                     -- clear scrollback and print dotfiles_status()         echo "## lspath"         lspath | tee $OUTPUT     https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html#The-Shopt-Builtin         debug-on()                 -- set -x -v         debug-off()                -- set +x +v         Virtualenvwrapper numeric sequence         * to make logs in /var/log/venv.nnn-stepname.log naturally ordered                 * 0xx : 'initialization' actions  : [initialize]         * 1xx : 'creation' actions        : [pre|post]mk[virtualenv|project]         * 2xx : 'vation' actions          : [pre|post][activate|deactivate]         * 8xx : 'managment' actions       : [pre|post][cpvirtualenv|rmvirtualenv]         * 868 : unknown         * xx0 : 'pre' actions         * xx9 : 'post' actions         Source-ordered according to the virtualenvwrapper docs         * https://virtualenvwrapper.readthedocs.org/en/latest/scripts.html#scripts         log_dotfiles_state()      -- save current environment to logfiles           $1 -- logkey (virtualenvwrapper step name)         XXX: PRF         dotfiles_initialize()     -- virtualenvwrapper initialize         dotfiles_premkvirtualenv -- virtualenvwrapper premkvirtualenv         dotfiles_postmkvirtualenv -- virtualenvwrapper postmkvirtualenv         NOTE: infer VIRTUAL_ENV_NAME from VIRTUAL_ENV         dotfiles_preactivate()    -- virtualenvwrapper preactivate         dotfiles_postactivate()   -- virtualenvwrapper postactivate         dotfiles_predeactivate()  -- virtualenvwrapper predeactivate         dotfiles_postdeactivate() -- virtualenvwrapper postdeactivate       ### usrlog.sh       ## unset _MSG       ## unset NOTE       ## unset TODO   .      etc/bash/06-bashrc.completion.sh=================================| Src: `etc/bash/06-bashrc.completion.sh <https://github.com/westurner/dotfiles/tree/develop/etc/bash/06-bashrc.completion.sh>`__.. code:: bash   .   ### bashrc.completion.sh         _configure_bash_completion()  -- configure bash completion                                       note: `complete -p` lists completions   .      etc/bash/07-bashrc.python.sh=============================| Src: `etc/bash/07-bashrc.python.sh <https://github.com/westurner/dotfiles/tree/develop/etc/bash/07-bashrc.python.sh>`__.. code:: bash   .   ### bashrc.python.sh         pypath()              -- print python sys.path and site config         _setup_python()       -- configure $PYTHONSTARTUP         _setup_pip()          -- set $PIP_REQUIRE_VIRTUALENV=false   ## Pyenv         _setup_pyvenv()       -- set $PYENV_ROOT, PATH_prepend, and pyenv venvw   .      etc/bash/07-bashrc.virtualenvwrapper.sh========================================| Src: `etc/bash/07-bashrc.virtualenvwrapper.sh <https://github.com/westurner/dotfiles/tree/develop/etc/bash/07-bashrc.virtualenvwrapper.sh>`__.. code:: bash   .   ### bashrc.virtualenvwrapper.sh         Installing Virtualenvwrapper:       apt:         sudo apt-get install virtualenvwrapper       pip:         [sudo] pip install -U pip virtualenvwrapper       ## Configure dotfiles/virtualenv root/prefix environment variables     __WRK         workspace root     PROJECT_HOME  virtualenvwrapper project directory (mkproject)     WORKON_HOME   virtualenvwrapper virtualenv prefix                   VIRTUAL_ENV=${WORKON_HOME}/${VIRTUAL_ENV_NAME}                   _APP=${VIRTUAL_ENV_NAME}  #[/subpath]                   _SRC=${VIRTUAL_ENV}/${_APP}                   _WRD=${VIRTUAL_ENV}/${_APP}         _setup_virtualenvwrapper_config()    -- configure $VIRTUALENVWRAPPER_*             elif "${VIRTUAL_ENV}/bin/python"  ## use extra-venv python          if [ -n "${__IS_MAC}" ]; then  # for brew python         lsvirtualenvs()       -- list virtualenvs in $WORKON_HOME         lsve()                -- list virtualenvs in $WORKON_HOME         backup_virtualenv()   -- backup VIRTUAL_ENV_NAME $1 to [$2]         backup_virtualenvs()  -- backup all virtualenvs in $WORKON_HOME to [$1]         dx()                      -- 'deactivate'         rebuild_virtualenv()      -- rebuild a virtualenv, leaving pkgs in place            $1="$VENVSTR"            $2="$VIRTUAL_ENV"         TODO: adjust paths beyond the shebang          rebuild_virtualenv()     -- rebuild a virtualenv            $1="$VENVSTR"            $2="$VIRTUAL_ENV"         rebuild_virtualenvs()     -- rebuild all virtualenvs in $WORKON_HOME       _setup_virtualenvwrapper_default_config # ~/.virtualenvs/   .      etc/bash/08-bashrc.conda.sh============================| Src: `etc/bash/08-bashrc.conda.sh <https://github.com/westurner/dotfiles/tree/develop/etc/bash/08-bashrc.conda.sh>`__.. code:: bash   .   ### bashrc.conda.sh   ## Conda / Anaconda     see: 05-bashrc.dotfiles.sh            # shell_escape_single()            strtoescape=${1}            output="$(echo "${strtoescape}" | sed "s,','\"'\"',g")"            echo "'"${output}"'"         _conda_status_core()      -- echo CONDA_ROOT and CONDA_ENVS_PATH         _conda_status_defaults()   -- echo CONDA_ROOT__* and CONDA_ENVS_PATH_*         _conda_status()   -- echo CONDA_ROOT, CONDA_ENVS_PATH, and defaults         _conda_status_defaults         csc()             -- echo CONDA_ROOT and CONDA_ENVS_PATH         _setup_conda_defaults()   -- configure CONDA_ENVS_PATH*, CONDA_ROOT*            $1 (pathstr): prefix for CONDA_ENVS_PATHS and CONDA_ROOT                         (default: ${__WRK})         _setup_anaconda()     -- set CONDA_ENVS_PATH, CONDA_ROO           $1 (pathstr or {27, 34}) -- lookup($1, CONDA_ENVS_PATH,                                                           CONDA_ENVS__py27)           $2 (pathstr or "")       -- lookup($2, CONDA_ROOT,                                                           CONDA_ROOT__py27)                  Usage:           _setup_conda     # __py27           _setup_conda 27  # __py27           _setup_conda 34  # __py34           _setup_conda 35  # __py35           _setup_conda 36  # __py36           _setup_conda 37  # __py37           _setup_conda ~/envs             # __py37           _setup_conda ~/envs/ /opt/conda # /opt/conda           _setup_conda <conda_envs_path> <conda_root>  # conda_root                 _setup_conda_path()   -- prepend CONDA_ROOT/bin to $PATH         _unsetup_conda_path_all()  -- remove CONDA_ROOT & defaults from $PATH         deduplicate_lines()   -- deduplicate lines w/ an associative array                                                         (~OrderedMap)         echo_conda_envs_paths()   -- print (CONDA_ENVS_PATH & defaults)         lscondaenvs()             -- list CONDA_ENVS_PATH/* (and _conda_status)           _conda_status>2           find>1         lsce()                    -- list CONDA_ENVS_PATH/* (and _conda_status)         _condaenvs()              -- list conda envs for tab-completion         workon_conda()        -- workon a conda + venv project         wec()                 -- workon a conda + venv project                               note: tab-completion only shows regular virtualenvs         _mkvirtualenv_conda_usage()  -- echo mkvirtualenv_conda usage information         mkvirtualenv_conda()  -- mkvirtualenv and conda create           $1 (_conda_envname:str)     -- envname string (eg "dotfiles")           $2 (_conda_envs_path:str)   -- path to create envname in               default: CONDA_ENVS_PATH       #(CONDA_ENVS_PATH=${_conda_envs_path}        #    conda create --mkdir -n ${_conda_envname} -y       #    "${_conda_python}" readline pip ${_conda_pkgs} )         if there is a function named 'dotfiles_postmkvirtualenv',         then run 'dotfiles_postmkvirtualenv'         rmvirtualenv_conda()  -- rmvirtualenv conda         mkvirtualenv_conda_if_available() -- mkvirtualenv_conda OR mkvirtualenv         workon_conda_if_available()       -- workon_conda OR we OR workon   .      etc/bash/08-bashrc.gcloud.sh=============================| Src: `etc/bash/08-bashrc.gcloud.sh <https://github.com/westurner/dotfiles/tree/develop/etc/bash/08-bashrc.gcloud.sh>`__.. code:: bash   .   ### bashrc.gcloud.sh       ## _get_GCLOUDSDK_PREFIX()   -- get GCLOUDSDK_PREFIX           $1 (str): default:~/google-cloud-sdk (GCLOUDSDK_PREFIX)       ## _setup_GCLOUDSDK_PREFIX() -- configure gcloud $PATH and bash completions           $1 (str): default:~/google-cloud-sdk (GCLOUDSDK_PREFIX)       ## _setup_gcloudsdk() -- configure gcloud $PATH and bash completions           $1 (str): default:~/google-cloud-sdk (GCLOUDSDK_PREFIX)       ## _unsetup_gcloudsdk() -- unset GCLOUDSDK_PREFIX         XXX: PATH_remove <...>       ## _get_APPENGINESDK_PREFIX()  -- get APPENGINESDK_PREFIX       ## _setup_APPENGINESDK_PREFIX() -- configure gcloud $PATH and completion           $1 (str): default:~/google-cloud-sdk (APPENGINESDK_PREFIX)       ## _setup_appenginesdk() -- config GCLOUDSDK*, APPENGINESDK_PREFIX, PATH           $1 (str): default: ~/google-cloud-sdk/platform/google_appengine                     default: /usr/local/google_appengine                     ${APPENGINESDK_PREFIX}       ## _unsetup_appenginesdk() -- PATH_remove ${APPENGINESDK_PREFIX}   .      etc/bash/10-bashrc.venv.sh===========================| Src: `etc/bash/10-bashrc.venv.sh <https://github.com/westurner/dotfiles/tree/develop/etc/bash/10-bashrc.venv.sh>`__.. code:: bash   .   ### bashrc.venv.sh       note: most of these aliases and functions are overwritten by `we`    ## Variables         _setup_venv()    -- configure __PROJECTSRC, PATH, __VENV, _setup_venv_SRC()          __PROJECTSRC (str): path to local project settings script to source         PATH="~/.local/bin:$PATH" (if not already there)         __VENV      -- path to local venv config script (executable)         CdAlias functions and completions         You must run this manually if you want a default src venv         _setup_venv_SRC         _setup_venv_SRC() -- configure __SRCVENV and __SRC global virtualenv         __SRCVENV (str): global 'src' venv symlink (~/-wrk/src)                          (e.g. ln -s ~/-wrk/-ve27/src ~/-wrk/src)         __SRC     (str): global 'src' venv ./src directory path (~/-wrk/src/src)                       ($__SRC/git $__SRC/git)   ## Functions         venv $@   -- call $_VENV $@         venv -h   -- print venv --help         venv --print-bash   -- print bash configuration         venv --print-json   -- print IPython configuration as JSON         venvw $@ -- venv -E $@ (for the current environment)         workon_venv() -- workon a virtualenv and load venv (TAB-completion)          param $1: $VIRTUAL_ENV_NAME ("dotfiles")          param $2: $_APP ("dotfiles") [default: $1)           ${WORKON_HOME}/${VIRTUAL_ENV_NAME}  # == $VIRTUAL_ENV           ${VIRTUAL_ENV}/src                  # == $_SRC           ${_SRC}/${VIRTUAL_ENV_NAME}         # == $_WRD          examples:           we dotfiles           we dotfiles dotfiles         we()          -- workon_venv         _setup_venv_aliases()  -- load venv aliases           note: these are overwritten by `we` [`source <(venv -b)`]         makew     -- make -C "${WRD}" ${@}    [scripts/makew <TAB>]         hgw       -- hg -R  ${_WRD}   [scripts/hgw <TAB>]         gitw      -- git -C ${_WRD}   [scripts/gitw <TAB>]         serve-()  -- ${_SERVE_}         alias serve-='${_SERVE_}'         shell-()  -- ${_SHELL_}         alias shell-='${_SHELL_}'         test-()   -- cd ${_WRD} && python setup.py test         testr-()  -- reset; cd ${_WRD} && python setup.py test         _setup_venv_prompt()    -- set PS1 with $WINDOW_TITLE, $VIRTUAL_ENV_NAME,                                  and ${debian_chroot}                   "WINDOW_TITLE (venvprompt) [debian_chroot]"         try: _APP, VIRTUAL_ENV_NAME, $(basename VIRTUAL_ENV)         TODO: CONDA         venv_ls()     -- list virtualenv directories         lsvenv()      -- venv_ls()         venv_mkdirs()  -- create FSH paths in ${1} or ${VIRTUAL_ENV}    .      etc/bash/11-bashrc.venv.pyramid.sh===================================| Src: `etc/bash/11-bashrc.venv.pyramid.sh <https://github.com/westurner/dotfiles/tree/develop/etc/bash/11-bashrc.venv.pyramid.sh>`__.. code:: bash   .   ### bashrc.venv.pyramid.sh         workon_pyramid_app()  -- $VIRTUAL_ENV_NAME [$_APP] [open_terminals]   .      etc/bash/20-bashrc.editor.sh=============================| Src: `etc/bash/20-bashrc.editor.sh <https://github.com/westurner/dotfiles/tree/develop/etc/bash/20-bashrc.editor.sh>`__.. code:: bash   .   ### bashrc.editor.sh         setup_editor()    -- configure ${EDITOR}           VIMBIN  (str):   /usr/bin/vim           GVIMBIN (str):   /usr/bin/gvim           MVIMBIN (str):   /usr/local/bin/mvim           GUIVIMBIN (str): $GVIMBIN || $MVIMBIN || ""           EDITOR  (str):   $VIMBIN -f || $GUIVIMBIN -f           EDITOR_ (str):   $EDITOR || $GUIVIMBIN $VIMCONF --remote-tab-silent           VIMCONF (str):   --servername ${VIRTUAL_ENV_NAME:-'EDITOR'}           SUDO_EDITOR (str): $EDITOR         _setup_pager()    -- set PAGER='less'         ggvim()   -- ${EDITOR} $@ 2>&1 >/dev/null         edits()   -- open $@ in ${GUIVIMBIN} --servername $1         editcfg() -- ${EDITOR_} ${_CFG} [ --servername $VIRTUAL_ENV_NAME ]         sudoe()   -- EDITOR=${SUDO_EDITOR} sudo -e         sudoe()   -- EDITOR=${SUDO_EDITOR} sudo -e   .      etc/bash/29-bashrc.vimpagers.sh================================| Src: `etc/bash/29-bashrc.vimpagers.sh <https://github.com/westurner/dotfiles/tree/develop/etc/bash/29-bashrc.vimpagers.sh>`__.. code:: bash   .   ### bashrc.vimpagers.sh         _configure_lesspipe() -- (less <file.zip> | lessv)         vimpager() -- call vimpager         _PAGER=$(command -v vimpager)         lessv()   -- less with less.vim and vim (g:tinyvim=1)         lessg()   -- less with less.vim and gvim / mvim         lesse()   -- less with current venv's vim server         manv()    -- view manpages in vim         mang()    -- view manpages in gvim / mvim         mane()    -- open manpage with venv's vim server         gitpager()    -- export GIT_PAGER to $1 or GIT_PAGER_DEFAULT or         nogitpager()  -- export GIT_PAGER=""   .      etc/bash/30-bashrc.usrlog.sh=============================| Src: `etc/bash/30-bashrc.usrlog.sh <https://github.com/westurner/dotfiles/tree/develop/etc/bash/30-bashrc.usrlog.sh>`__.. code:: bash   .   ### bashrc.usrlog.sh         _USRLOG (str): path to .usrlog userspace shell command log         stid()      -- set $TERM_ID to a random string         stid $name  -- set $TERM_ID to string         note()      -- add a dated note to $_USRLOG [_usrlog_append]         usrlogv()   -- open usrlog with vim:   $VIMBIN + $_USRLOG         usrlogg()   -- open usrlog with gmvim: $GUIVIMBIN + $_USRLOG         usrloge()   -- open usrlog with editor:$EDITOR + $_USRLOG         ut()        -- tail $_USRLOG         ug()        -- egrep current usrlog: egrep $@ $_USRLOG         ugall()     -- egrep $@ $__USRLOG ${WORKON_HOME}/*/.usrlog         ugrin()     -- grin current usrlog: grin $@ $_USRLOG         ugrinall()  -- grin $@  $__USRLOG ${WORKON_HOME}/*/.usrlog         lsusrlogs() -- ls -tr   $__USRLOG ${WORKON_HOME}/*/.usrlog         _setup_usrlog()   -- source ${__DOTFILES}/etc/usrlog.sh         usrlogv() -- open $_USRLOG w/ $VIMBIN (and skip to end)         usrlogg() -- open $_USRLOG w/ $GUIVIMBIN (and skip to end)         usrloge() -- open $_USRLOG w/ $EDITOR_ [ --servername $VIRTUAL_ENV_NAME ]   .      etc/bash/30-bashrc.xlck.sh===========================| Src: `etc/bash/30-bashrc.xlck.sh <https://github.com/westurner/dotfiles/tree/develop/etc/bash/30-bashrc.xlck.sh>`__.. code:: bash   .   ### 30-bashrc.xlck.sh   ## xlck     -- minimal X screensaver         xlck          xlck -I  --  (I)nstall xlck (apt-get)         xlck -U  --  check stat(U)s (show xautolock processes on this $DISPLAY)         xlck -S  --  (S)tart xlck (start xautolock on this $DISPLAY)         xlck -P  --  sto(P) xlck (stop xautolock on this $DISPLAY)         xlck -R  --  (R)estart xlck         xlck -M  --  suspend to ra(M) (and lock)         xlck -D  --  suspend to (D)isk (and lock)         xlck -L  --  (L)ock         xlck -X  --  shutdown -h now         xlck -h  --  help         xlck_status_all()             -- pgrep 'xautolock|xlock|i3lock', ps ufw         xlck_status_this_display()    -- show status for this $DISPLAY         _setup_xlck() -- source ${__DOTFILES}/etc/xlck.sh (if -z __IS_MAC)   .      etc/bash/40-bashrc.aliases.sh==============================| Src: `etc/bash/40-bashrc.aliases.sh <https://github.com/westurner/dotfiles/tree/develop/etc/bash/40-bashrc.aliases.sh>`__.. code:: bash   .   ### bashrc.aliases.sh          _load_aliases()  -- load aliases         chmodr   -- 'chmod -R'         chownr   -- 'chown -R'         grep     -- 'grep --color=auto'         egrep    -- 'egrep --color=auto'         fgrep    -- 'fgrep --color=auto'         grindp   -- 'grind --sys.path'         grinp    -- 'grin --sys-path'         fumnt    -- 'fusermount -u'         ga       -- 'git add'         gac()    -- 'git diff ${files}; git commit -m $1 ${files}'           $1 (str): quoted commit message           $2- (list): file paths         gb       -- 'git branch -v'         gd       -- 'git diff'         gds      -- 'git diff -p --stat'         gc       -- 'git commit'         gco      -- 'git checkout'         gdc      -- 'git diff --cached'         gl       -- 'git log --pretty=format:"%h : %an : %s" --topo-order --graph'         gr       -- 'git remote -v'         gs       -- 'git status'         gsi      -- 'git is; git diff; git diff --cached'         gsiw      -- 'git -C $_WRD gsi'         gsl      -- 'git stash list'         gsn      -- 'git stash save'         gss      -- 'git stash save'         gitr     -- 'git remote -v'         hga      -- 'hg add'         hgac()   -- 'hg add $@[1:]; hg commit $1'           $1 (str): quoted commit message           $2- (list): file paths         hgl      -- 'hg glog --pager=yes'         hgs      -- 'hg status'         hgd      -- 'hg diff'         hgds     -- 'hg diff --stat'         hgdl     -- 'hg diff --color=always | less -R'         hgc      -- 'hg commit'         hgu      -- 'hg update'         hgq      -- 'hg qseries'         hgqd     -- 'hg qdiff'         hgqs     -- 'hg qseries'         hgqn     -- 'hg qnew'         hgr      -- 'hg paths'         __IS_MAC             la       -- 'ls -A -G'             ll       -- 'ls -alF -G'             ls       -- 'ls -G'             lt       -- 'ls -altr -G'             lll      -- 'ls -altr -G'         else             la       -- 'ls -A --color=auto'             ll       -- 'ls -alF --color=auto'             ls       -- 'ls --color=auto'             lt       -- 'ls -altr --color=auto'             lll      -- 'ls -altr --color=auto'         __IS_LINUX             psx      -- 'ps uxaw'             psf      -- 'ps uxawf'             psxs     -- 'ps uxawf --sort=tty,ppid,pid'             psxh     -- 'ps uxawf --sort=tty,ppid,pid | head'             psh      -- 'ps uxaw | head'             psc      -- 'ps uxaw --sort=-pcpu'             psch     -- 'ps uxaw --sort=-pcpu | head'             psm      -- 'ps uxaw --sort=-pmem'             psmh     -- 'ps uxaw --sort=-pmem | head'         __IS_MAC             psx      -- 'ps uxaw'             psf      -- 'ps uxaw' # no -f             psh      -- 'ps uxaw | head'             psc      -- 'ps uxaw -c'             psch     -- 'ps uxaw -c | head'             psm      -- 'ps uxaw -m'             psmh     -- 'ps uxaw -m | head'         pyg      -- pygmentize [pip install --user pygments]         catp     -- pygmentize [pip install --user pygments]         shtop    -- 'sudo htop' [apt-get/yum install -y htop]         t        -- 'tail'         tf       -- 'tail -f'         xclipc   -- 'xclip -selection c'   .      etc/bash/42-bashrc.commands.sh===============================| Src: `etc/bash/42-bashrc.commands.sh <https://github.com/westurner/dotfiles/tree/develop/etc/bash/42-bashrc.commands.sh>`__.. code:: bash   .   ### bashrc.commands.sh     usage: bash -c 'source bashrc.commands.sh; funcname <args>'         chown-me()        -- chown -Rv user         chown-me-mine()   -- chown -Rv user:user && chmod -Rv go-rwx         chown-sme()       -- sudo chown -Rv user         chown-sme-mine()  -- sudo chown -Rv user:user && chmod -Rv go-rwx         chmod-unumask()   -- recursively add other+r (files) and other+rx (dirs)   .      etc/bash/50-bashrc.bashmarks.sh================================| Src: `etc/bash/50-bashrc.bashmarks.sh <https://github.com/westurner/dotfiles/tree/develop/etc/bash/50-bashrc.bashmarks.sh>`__.. code:: bash   .   ### bashrc.bashmarks.sh   ## bashmarks         l()  -- list bashmarks         s()  -- save bashmarks as $1         g()  -- goto bashmark $1         p()  -- print bashmark $1         d()  -- delete bashmark $1         lsbashmarks() -- list Bashmarks (e.g. for NERDTree)         see also: ${__DOTFILES}/scripts/nerdtree_to_bashmarks.py   .      etc/bash/70-bashrc.repos.sh============================| Src: `etc/bash/70-bashrc.repos.sh <https://github.com/westurner/dotfiles/tree/develop/etc/bash/70-bashrc.repos.sh>`__.. code:: bash   .   ### 70-bashrc.repos.sh          git-commit()   -- git commit ${2:} -m ${1}; git log -n1           gc()             -- git-commit() <files> -m <log> ; log log -n1          git-add-commit()   -- git add ${2:}; git commit ${2} -m ${1}; git log -n1           gac()            -- git-add-commit $@     function msg {       export _MSG="${@}"       see: usrlog.sh     }          gitcmsg()    -- gitc "${_MSG}" "${@}"          gitcaddmsg()    -- gitc "${_MSG}" "${@}"                 Use Cases     * Original: a bunch of commands that i was running frequently       before readthedocs (and hostthedocs)     * local mirrors (manual, daily?)       * no internet, outages       * push -f       * (~offline) Puppet/Salt source installs         * bandwidth: testing a recipe that pulls a whole repositor(ies)     * what's changed in <project>'s source dependencies, since i looked last         Justification     * very real risks for all development projects       * we just assume that GitHub etc. are immutable and forever         Features (TODO) [see: pyrpo]     * Hg <subcommands>     * Git <subcommands>     * Bzr <subcommands>     * periodic backups / mirroring     * gitweb / hgweb     * mirror_and_backup <URL>     * all changes since <date> for <set_of_hg-git-bzr-svn_repositories>     * ideally: transparent proxy       * +1: easiest       * -1: pushing upstream         Caveats     * pasting / referencing links which are local paths     * synchronization lag     * duplication: $__SRC/hg/<pkg> AND $VIRTUAL_ENV/src/<pkg>              setup_dotfiles_docs_venv -- create default 'docs' venv          setup_dotfiles_src_venv -- create default 'src' venv                   __SRC_HG=${WORKON_HOME}/src/src/hg           __SRC_GIT=${WORKON_HOME}/src/src/git                  Hg runs hg commands as user hg          Git runs git commands as user git                  Hgclone will mirror to $__SRC_HG          Gitclone will mirror to $__SRC_GIT                     __SRC_GIT_REMOTE_URI_PREFIX   -- default git remote uri prefix     __SRC_GIT_REMOTE_NAME         -- name for git remote v     __SRC_HG_REMOTE_URI_PREFIX    -- default hg remote uri prefix     __SRC_HG_REMOTE_NAME          -- name for hg paths       ## Create a new hosted repository with gitolite-admin          $1   -- repo [user/]name (e.g. westurner/dotfiles)       ## push a git repository to local git storage          $1   -- repo [user/]name (e.g. westurner/dotfiles)           $2   -- path of local repo (e.g. ~/wrk/.ve/dotfiles/src/dotfiles)       ## Create a new hosted repository with mercurial-ssh       ## push a hg repository to local git storage          $1   -- repo [user/]name (e.g. westurner/dotfiles)          $2   -- path of local repo (e.g. ~/wrk/.ve/dotfiles/src/dotfiles)            fixperms ${path}   .      etc/bash/99-bashrc.after.sh============================| Src: `etc/bash/99-bashrc.after.sh <https://github.com/westurner/dotfiles/tree/develop/etc/bash/99-bashrc.after.sh>`__.. code:: bash   .   .      etc/bash/_ewrd.sh==================| Src: `etc/bash/_ewrd.sh <https://github.com/westurner/dotfiles/tree/develop/etc/bash/_ewrd.sh>`__.. code:: bash   .   ###   _ewrd.sh  -- convenient editor shortcuts         # setup edit[*] and e[*] symlinks:         $ ln -s ./_ewrd.sh _ewrd-setup.sh && ./_ewrd-setup.sh   ##    editdotfiles, edotfiles -- cd $__DOTFILES and run edit w/ each arg         editdotfiles() -- cd $__DOTFILES and run edit w/ each arg         edotfiles()    -- cd $__DOTFILES and run edit w/ each arg   ##    editwrk, ewrk   --- cd $__WRK and run edit w/ each arg         editwrk()      -- cd $__WRK and run edit w/ each arg         ewrk()         -- cd $__WRK and run edit w/ each arg   ##    editworkonhome, eworkonhome --- cd $WORKON_HOME and run edit w/ each arg         editworkonhome() -- cd $WORKON_HOME and run edit w/ each arg         eworkonhome()    -- cd $WORKON_HOME and run edit w/ each arg         ewh()            -- cd $WORKON_HOME and run edit w/ each arg   ##    editvirtualenv, evirtualenv, ev  --- cd $VIRTUAL_ENV and run edit w/ each arg         editvirtualenv() -- cd $VIRTUAL_ENV and run edit w/ each arg         evirtualenv()    -- cd $VIRTUAL_ENV and run edit w/ each arg         ev()             -- cd $VIRTUAL_ENV and run edit w/ each arg   ##    editsrc, esrc, es  --- cd $_SRC and run edit w/ each arg         editsrc() -- cd $_SRC and run edit w/ each arg         esrc()    -- cd $_SRC and run edit w/ each arg         es()      -- cd $_SRC and run edit w/ each arg   ##    editwrd, ewrd, ew  --- cd $_WRD and run edit w/ each arg         editwrd() -- cd $_WRD and run edit w/ each arg         ewrd()    -- cd $_WRD and run edit w/ each arg         ew()      -- cd $_WRD and run edit w/ each arg   ##    editetc, eetc      --- cd $_ETC and run edit w/ each arg         editetc() -- cd $_ETC and run edit w/ each arg         eetc()    -- cd $_ETC and run edit w/ each arg   ##    editwww, ewww      --- cd $_WWW and run edit w/ each arg         editwww() -- cd $_WWW and run edit w/ each arg         ewww()    -- cd $_WWW and run edit w/ each arg                    pyline.py -r '^\s*#+\s+.*' 'rgx and l';       ## seeAlso ##     * https://westurner.org/dotfiles/venv         .. code:: bash            type cdhelp; cdhelp         less scripts/venv_cdaliases.sh        venv.py --prefix=/ --print-bash-cdaliases   .      etc/bash/usrlog.sh===================| Src: `etc/bash/usrlog.sh <https://github.com/westurner/dotfiles/tree/develop/etc/bash/usrlog.sh>`__.. code:: bash   .   ### usrlog.sh -- Shell CLI REPL command logs in userspace (per $VIRTUAL_ENV)          Log shell commands with metadata as tab-separated lines to ${_USRLOG}      with a shell identifier to differentiate between open windows,      testing/screencast flows, etc          By default, _TERM_ID will be set to a random string prefixed with '#'      by the `stid()` bash function (`_usrlog_set__TERM_ID()`)          * _TERM_ID can be set to any string;      * _TERM_ID is displayed in the PS1 prompt      * _TERM_ID is displayed in the window title      * _TERM_ID is reset to __TERM_ID upon 'deactivate'        (westurner/dotfiles//etc/bash/07-bashrc.virtualenvwrapper.sh:         TODO: virtualenvwrapper, conda)          Environment Variables:           __USRLOG (str): default -usrlog.log file (~/-usrlog.log)       _USRLOG  (str): current -usrlog.log file to append REPL command strings to       _TERM_ID (str): a terminal identifier with which command loglines will                       be appended (default: _usrlog_randstr)              _usrlog_get_prefix()    -- get a dirpath for the current usrlog                                     (VIRTUAL_ENV or HOME)          _usrlog_set__USRLOG()    -- set $_USRLOG (and $__USRLOG)          _usrlog_set_HISTFILE()   -- configure shell history               history -a   -- append any un-flushed lines to $HISTFILE         set/touch HISTFILE           history -c && history -r $HISTFILE   -- clear; reload $HISTFILE             ZSH_VERSION          _usrlog_set_HIST()    -- set shell $HIST<...> variables          see HISTSIZE and HISTFILESIZE in bash(1)          note that HOSTNAME and USER come from the environ          and MUST be evaluated at the time HISTTIMEFORMAT is set.          ... or force ignoredups and ignorespace          HISTCONTROL=ignoredups:ignorespace              append current lines to history              append to the history file, don't overwrite it              https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html#The-Shopt-Builtin              replace newlines with semicolons              enable autocd (if available)          _usrlog_randstr      -- Generate a random string            $1: number of characters          _usrlog_get__TERM_ID()   -- echo the current _TERM_ID and $_USRLOG          _usrlog_Set__TERM_ID     -- set or randomize the $_TERM_ID key            $1: _term_id value for _TERM_ID          _usrlog_echo_title   -- set window title (by echo'ing escape codes)          else             echo -ne "${USRLOG_WINDOW_TITLE}"          _usrlog_set_title()  --  set xterm title           $1: _window_title (defaults to ${_TERM_ID})          _usrlog_setup()      -- configure usrlog for the current shell          setup bash          setup zsh          _usrlog_append()  -- Write a line to $_USRLOG w/ an ISO8601 timestamp            $1: text (command) to log            note: _TERM_ID must not contain a tab character (tr '\t' ' ')            note: _TERM_ID can be a URN, URL, URL, or simple \w+ str key          example:            2014-11-15T06:42:00-0600dotfiles 8311  ls            (pwd -p)?             this from HISTORY        #  _usrlog_append_oldstype -- Write a line to $_USRLOG        #    $1: text (command) to log        #  examples:        #    # qMZwZSGvJv8: 10/28/14 17:25.54 :::   522  histgrep BUG        #    #ZbH08n8unY82014-11-11T12:27:22-0600 2238  ls        printf "#  %-11s: %s : %s" \            "$_TERM_ID" \            "$(date +'%D %R.%S')" \            "${1:-'\n'}" \                | tee -a $_USRLOG >&2          _usrlog_writecmd()    -- write the most recent command to $_USRLOG   ## usrlog parsing          _usrlog_parse_newstyle -- Parse a -usrlog.log with pyline            NOTE: handle when HISTTIMEFORMAT=""            NOTE: this is approxmte (see: venv.py)          _usrlog_parse_cmds -- Show histcmd or histstr from HISTTIMEFORMAT usrlog          with pyline          TODO: handle HISTTIMEFORMAT="" (" histn  <cmd>")          TODO: handle newlines (commands that start on the next line)  (venv.py)          NOTE: HISTTIMEFORMAT histn (OSX  ) [ 8 ]          NOTE: HISTTIMEFORMAT histn (Linux) [ 7 ]            if [ "${usrlog}" != "-" ]; then                usrlog="-f ${usrlog}"            fi            'list((                (" ".join(w[10:]).rstrip() if len(w) > 10 else None)                or (" ".join(w[9:]).rstrip() if len(w) > 9 else None)                or (" ".join(w[8:]).rstrip() if len(w) > 8 else None)                or (" ".join(w[7:]).rstrip() if len(w) > 7 else None)                or (" ".join(w[3:]).rstrip() if len(w) > 3 else None)                or " ".join(w).rstrip())                for w in [ line and line.startswith("#") and line.split("\t",9) or [line] ]                )'                 usrlog.py -p${usrlog:-'-'}${usrlog:+"${usrlog}"} --cmd                 grep -n "usrlog_" "$_USRLOG" | pyline.py -r '^(?P<grep_n>\d+\:)?(?P<start>#\s+)(?P<_words>.*)\t\$\$\t(?P<cmd>.*)' 'l and rgx and (rgx.groups(), rgx.groupdict(), (rgx.groupdict().get("_words","") or "").split("\t"))'  -O json           ## usrlog.sh API   ### usrlog _TERM_ID commands          termid()      -- echo $_TERM_ID          set_term_id() -- set $_TERM_ID to a randomstr or $1          stid()        -- set $_TERM_ID to a randomstr or $1          st()          -- set $_TERM_ID to a randomstr or $1   ### usrlog tail commands          ut()  -- show recent commands          uta()  -- tail all usrlogs from lsusrlogs          utap()  -- tail all userlogs from lsusrlogs and parse          ut()  -- show recent commands          usrlog_tail()     -- tail -n20 $_USRLOG                         shift          usrlogtf()    -- tail -f -n20 $_USRLOG          utf()         -- tail -f -n20 $_USRLOG   ### usrlog grep commands          usrlog_grep() -- egrep -n $_USRLOG          ug()          -- egrep -n $_USRLOG            Usage:              ug 'pip' | ugp              ug | ugp | grep -C 20 'pip'              ug | usrlog.py -          uga2()         # usrlog_grep_session_id()  -- egrep ".*\t${1:-$_TERM_ID}"         (set -x;         local _term_id=${1:-"${_TERM_ID}"};         local _usrlog=${2:-"${_USRLOG}"};         egrep "# [\d-T:Z ]+\t${_term_id}\t" ${_USRLOG} )         usrlog_grep_todos | _usrlog_parse_cmds         usrlog_grep_todos | _usrlog_parse_cmds         usrlog_grep_todos | _usrlog_parse_cmds         pyline '(l.replace("#TODO: ", "- [ ] ", 1).replace("#NOTE:", "- ", 1) if l.startswith("#TODO: ", "#NOTE: ") else l)'          usrlog_grin() -- grin -s $@ $_USRLOG          ugrin()       -- grin -s $@ $_USRLOG          usrlog_grin_session_id()  -- egrep ".*\t${1:-$_TERM_ID}"          usrlog_grin_session_id()  -- egrep ".*\t${1:-$_TERM_ID}"          usrlog_grin_session_id_all()  -- grep $2:-$_USRLOG for $1:-$_TERM_ID                                           in column position            :returns: unsorted list of log entries in files                      listed by mtime and then cat                  .. warning:: output lines are in file sequence but otherwise                        unsorted                  ugrins()  -- grep $2:-$_USRLOG for $1:-$_TERM_ID in column position          usrlog_grin_session_id_all_cmds()  -- grep $2:-$_USRLOG for $1:-$_TERM_ID                                                in column position         deduplicate_lines()   -- deduplicate lines w/ an associative array                                                         (~OrderedMap)     USRLOG_INCLUDE_LEGACYLOGS     USRLOG_INCLUDE_ALLUSRLOGS          lsusrlogs_date_desc()   -- ls $__USRLOG ${WORKON_HOME}/*/.usrlog                                     (oldest first)          lsusrlogs_date_desc()   -- ls $__USRLOG ${WORKON_HOME}/*/.usrlog                                     (newest first)          lsusrlogs()             -- list usrlogs (oldest first)          usrlog_lately()      -- lsusrlogs by mtime          ull()                -- usrlog_lately() (lsusrlogs by mtime)          usrlog_grep_all()    -- grep $(lsusrlogs) (drop filenames with -h)             cat $(lsusrlogs)    # dangerous and wrong             cat "$(lsusrlogs)"  # wrong          ugall()              -- grep $(lsusrlogs) (drop filenames with -h)          uga()                -- grep $(lsusrlogs) (drop filenames with -h)          usrlog_grin_all()    -- grin usrlogs          usrlog_grin_all()    -- grin usrlogs          todo()   -- _usrlog_append a #TODO and set _TODO ('-' unsets, '' prints)              see: usrlog_grep_todos_parse (ugt, ugtp)           note()   -- _usrlog_append a #NOTE and set _NOTE ('-' unsets, '' prints)          msg()   -- _usrlog_append a #_MSG and set __MSG ('-' unsets, '' prints)          usrlog_screenrec_ffmpeg() -- record a screencast            $1: destination directory (use /tmp if possible)            $2: video name to append to datestamp            - Press "q" to stop recording          usrlogw()       -- usrlog.py -p ${_USRLOG} ${@}          _setup_usrlog() -- call _usrlog_setup $@   ## calls _usrlog_setup when sourced   .      etc/bash/xlck.sh=================| Src: `etc/bash/xlck.sh <https://github.com/westurner/dotfiles/tree/develop/etc/bash/xlck.sh>`__.. code:: bash   .   ### xlck.sh -- script wrapper for xautolock, xlock, and/or i3lock   ##             as well as issuing suspend, shutdown, and restart commands         xlck()            -- xlck $@         _xlck_install()   -- install xlck dependencies         xlck requires: bash, pgrep, ps, kill, xautolock, xlock, i3lock, xset         _xlck_setup_dpms() -- configure display with xset and dpms         _xlck_setup()     -- setup xlck (export _XLCK=(this) && _xlck_setup_dpms)         _xlck_xlck()      -- start xlock (white on black w/ a 3 second delay)         _xlck_i3lock()    -- start i3lock with a dark gray background         xlck_gnome_screensaver_status()  -- gnome-screensaver PIDs on $DISPLAY         xlck_gnome_screensaver_start() -- start gnome-screensaver         xlck_gnome_screensaver_lock() -- lock gnome-screensaver         xlock_lock()      -- lock the current display           $1 {i3lock|i3, xlock|x, gnome-screensaver|gnome|g}           note: this will be run before suspend to RAM and Disk.         _suspend_to_ram()     -- echo mem > /sys/power/state         _suspend_to_disk()    -- echo disk > /sys/power/state          note: this does not work on many machines         _dbus_halt()      -- send a dbus stop msg to ConsoleKit         _dbus_reboot()    -- send a dbus reboot msg to ConsoleKit         _dbus_suspend()   -- send a dbus suspend msg to ConsoleKit         _dbus_hibernate() -- send a dbus hibernate msg to ConsoleKit         xlck_lock_suspend_ram()   -- lock and suspend to RAM         xlck_lock_suspend_disk()  -- lock and suspend to disk         xlck_suspend_ram()        -- lock and suspend to RAM         xlck_suspend_disk()       -- lock and suspend to disk         xlck_start()              -- start xlck         xlck_stop()               -- stop xlck         xlck_restart()            -- stop and start xlck         xlck_pgrep_display()-- find xautolock on this display         xlck_xautolock_pgrep_display()-- find xautolock on this display         xlck_xautolock_status()       -- show xlck status          xlck_autolock_stop()          -- stop autolock on the current $DISPLAY         xlck_status()     -- xlck_xautolock_status         xlck_status_all() -- pgrep 'xautolock|xlock|i3lock', ps ufw         xlck_status_this_display()  -- show status for this $DISPLAY         _xlck_xautolock()           -- start xautolock (see: xlck_start)             return nonzero if no args   .

ZSH

dhelpzsh
etc/zsh/00-zshrc.before.sh===========================| Src: `etc/zsh/00-zshrc.before.sh <https://github.com/westurner/dotfiles/tree/develop/etc/zsh/00-zshrc.before.sh>`__.. code:: bash   .      __DOTFILES -- local dotfiles repository clone         ## lib: zsh functions         ## bash: read bash config with bash_source function       ## after:          dr()     -- dotfiles_zsh_reload $@   .      etc/zsh/01-zshrc.lib.sh========================| Src: `etc/zsh/01-zshrc.lib.sh <https://github.com/westurner/dotfiles/tree/develop/etc/zsh/01-zshrc.lib.sh>`__.. code:: bash   .     list all path key components leading to file   .      etc/zsh/05-zshrc.bashrc.sh===========================| Src: `etc/zsh/05-zshrc.bashrc.sh <https://github.com/westurner/dotfiles/tree/develop/etc/zsh/05-zshrc.bashrc.sh>`__.. code:: bash   .     requires:      bash_source function      $__DOTFILES   .      etc/zsh/99-zshrc.after.sh==========================| Src: `etc/zsh/99-zshrc.after.sh <https://github.com/westurner/dotfiles/tree/develop/etc/zsh/99-zshrc.after.sh>`__.. code:: bash   .     99-zsh.after.sh   .

I3wm

dhelpi3
etc/i3/config==============| Src: `etc/i3/config <https://github.com/westurner/dotfiles/tree/develop/etc/i3/config>`__.. code:: bash   .   #### i3 config file (v4)        #  Default location: ~/.i3/config     #  List commented command shortcuts with::        #     cat ~/.i3/config | egrep '(^(\s+)?##+ |^(\s+)?#  )'       #!/bin/sh    ### .i3/config requirements       ## Ubuntu (12.04)    # MUST    apt-get install i3 i3status xautolock xlockmore i3lock    hg clone https://github.com/westurner/dotfiles ~/.dotfiles  # etc/xlck.sh       # SHOULD    apt-get install gnome-terminal network-manager-gnome thunar pulseaudio-utils    apt-get install feh                  # wallpaper    apt-get install xfce4-screenshooter  # screenshots    mkdir -p ~/pictures/screens          # screenshots    apt-get install xbacklight           # brightness       # COULD    apt-get install vim-gnome            # scratchpad    add-apt-repository ppa:kilian/f.lux  # f.lux    apt-get update                       # f.lux    apt-get install fluxgui              # http://justgetflux.com       ## References    * http://i3wm.org/docs/userguide.html    * https://faq.i3wm.org/question/1425/variable-substitution/    * i3-config-wizard       ## Notes    * grab keyboard mappings: xev | grep keycode   ### Configure I3   ## To swap layouts: (make swap-layout)      sed 's/<alt>/<ALT>/g' && sed 's/<super>/<alt>/g' && sed 's/<ALT>/<super>/g'   ## Set i3 keyboard modifier keys to variables $mod1 and $mod2  (for keyboard layout flexibility)   ## PC Keyboard (default) ##       PC: $mod1  == <Alt>       PC: $mod2 == <Super>   ## Alternate (e.g. Mac Keyboard ) ##       Mac: $mod1  == <Super>       Mac: $mod2 == <Alt>    font for window titles. ISO 10646 = Unicode    Pango requires i3 version >= ____    reload the configuration file     <alt><shift> c   -- reload i3 configuration    restart i3 inplace (preserves your layout/session, can be used to upgrade i3)     <alt><shift> r   -- restart i3 (session preserving)    exit i3 (logs you out of your X session)     <super><shift> l  -- exit i3 (close all and logout of X session)     <alt><shift> q   -- close focused window     # Hide edge borders   ### Launch programs   ## Set Variables    Open default tabs    Open a blank tab/window with the default browser    Open a browser tab/window to gmail#all with the default browser     # Get WM_CLASS with $(xprop WM_CLASS)   ## Autoruns        - Start gnome-settings-daemon (e.g. for anti-aliasing)     $PATH/gnome-settings-daemon        -- Ubuntu, Debian     /usr/libexec/gnome-settings-daemon -- Fedora     - Start screensaver     - Set X background     - Set X wallaper to (~/wallpaper.png)    - Launch network applet (optional)    see also: nmcli   ## Lock, shutdown and suspend     <super> l        -- lock screen     <XF86PowerOff>   -- exit     <XF86Sleep>      -- suspend   ## Change backlight brightness     <XF86MonBrightnessUp>      -- brightness up     <XF86MonBrightnessDown>    -- brightness down   ## Change volume     <XF86AudioRaiseVolume>   -- volume up     <XF86AudioLowerVolume>   -- volume down   ## Launch Applications     <alt> x      -- run command     <super> r    -- run command     <super> e    -- launch browser     <alt><shift> g   -- launch editor     <alt><shift> b   -- launch browser     <alt><shift> t   -- launch terminal     <super> t        -- launch terminal     <alt> <enter>    -- launch terminal     <super> <enter>    -- launch terminal     XF86Calculator   -- launch calculator     <alt><shift> w          -- launch network manager applet (see also: $(nmcli))     <PrintScr>       -- screenshot (full screen)     <alt> <PrintScr> -- screenshot (current window)     <super><shift> 3       -- screenshot (full screen)     <super><shift> 4       -- screenshot (current window)   ## Focus to nearest instance     <alt> v      -- focus nearest: editor     <alt> t      -- focus nearest: terminal     <alt> b      -- focus nearest: browser   ## Start, stop, and reset xflux     <alt> [         -- start xflux     <alt> ]         -- stop xflux     <alt><shift> ]  -- reset gamma to 1.0     <alt><shift> [  -- xgamma -bgamma 0.6 -ggamma 0.9 -rgamma 0.9     <alt><shift> \  -- xgamma -bgamma -0.4 -ggamma 0.4 -rgamma 0.9   ## Change focus between tiling / floating windows     <alt> <space>            -- toggle focus mode: tiling / floating   ## Floating windows     <alt><shift> <space>     -- toggle tiling/floating mode for focused window     <alt> <backspace>        -- toggle tiling/floating mode for focused window     <alt> <mouse>            -- drag floating window to position   ## Fullscreen mode     # Note: popups will be hidden below fullscreened windows     <alt><shift> f   -- fullscreen     # popup during fullscreen exits fullscreen   ## Split windows    Split next window     <alt><shift> h   -- split [next] window horizontally     <alt><shift> v   -- split [next] window vertically   ## Toggle window layouts     <alt> w          -- tabbed window layout     <alt> e          -- Default window layout     <alt> s          -- stacked window layout   ## Focus parent/child windows     <alt> a          -- focus parent container     <alt><shift> a   -- focus child container   ## Switch to window / container     <alt> Up     -- focus up     <alt> Down   -- focus down     <alt> Left   -- focus left     <alt> Right  -- focus right   ## Switch to window / container (Vi)     <alt> h      -- focus left     <alt> j      -- focus down     <alt> k      -- focus up     <alt> l      -- focus right   ## Switch to previous / next workspace with <super> minus / equal     <super> - (minus)  -- switch to previous workspace     <super> = (equal)  -- switch to next workspace     Toggle between previous and current workspace   ## Switch to workspace     <alt> 0-9        -- switch to workspace N  (repeat to return)     <super> 0-9      -- switch to workspace N  (repeat to return)     <alt> <F_n>      -- switch to workspace N (repeat to return)     <alt> <Keypad_n> -- switch to workspace N (repeat to return)   ## Move to next/previous workspace     <super> Left     -- move to previous workspace     <super> Right    -- move to next workspace     <super> Up       -- move to second most recently focused workspace   ## Move focused container to next/previous workspace     <super> Left     -- move container to previous workspace     <super> Right    -- move container to next workspace     <super> Up       -- move container to second most recently focused workspace   ## Move focused container within workspace     <alt><shift> Up      -- move window up     <alt><shift> Down    -- move window down     <alt><shift> Left    -- move window left     <alt><shift> Right   -- move window right   ## Move focused container within workspace (Vi)     <alt><shift> h       -- move window left     <alt><shift> j       -- move window down     <alt><shift> k       -- move window up     <alt><shift> l       -- move window right   ## Move focused container to workspace     <alt><shift>  [N: 0-9]   -- move to workspace N   ## Move focused container to workspaces (with number pad)     <alt><shift> [KP_N: 0-9] -- move to workspace N   ## Move focused container to workspaces (with number pad)     <super> [KP_N: 0-9] -- move to workspace N   ## Move workspace to output (e.g. with multiple monitors)     <super><shift> Left  -- move workspace to left     <super><shift> Right -- move workspace to right   ## Scratchpad workspace     <alt><shift> <minus>     -- make the currently focused window a scratchpad     <alt> <minus>            -- show/hide and cycle through scratchpad windows     <alt><shift> s           -- start scratchpad editor     <alt> <XF86Favorites>    -- start scratchpad editor     <XF86Favorites>          -- show the $scratchpad_editor_selector     <alt> <backspace>        -- toggle tiling/floating mode for focused window    see above.     # on (re)load, move $scratchpad_editor_selector windows to scratchpad   ## Resize Mode     <alt> r      -- enter resize mode       ## Grow and shrink windows        These bindings trigger as soon as you enter the resize mode               They resize the border in the direction you pressed, e.g.        when pressing left, the window is resized so that it has        more space on its left        same bindings, but for the arrow keys         Left         -- grow left         <shift> Left     -- shrink left         Down             -- grow down         <shift> Down     -- shrink down         Up               -- grow up         <shift> Up       -- shrink up         Right            -- grow right         <shift> Right    -- shrink right       ## Grow and shrink windows (Vi)         h            -- grow left         <shift> h    -- shrink left         j            -- grow down         <shift> j    -- shrink down         k            -- grow up         <shift> k    -- shrink up         l            -- grow right         <shift> l    -- shrink right        back to normal: Enter or Escape         <enter>  -- exit resize mode         <esc>    -- exit resize mode   ## Set colors    color defines for zenburn styled i3 derived from:    https://faq.i3wm.org/question/2071/how-can-i-change-look-of-windows/?answer=2075    set some nice colors      border     background  text   ## i3bar     # display i3bar with i3status        $ xrandr-tool outputs   .

Vim

dhelpvim
etc/vim/vimrc==============| Src: `etc/vim/vimrc <https://github.com/westurner/dotvim/tree/master/vimrc>`__.. code:: vim   .   .vimrc   ==========   ::     git clone https://github.com/westurner/dotvim     git clone ssh://git@github.com/westurner/dotvim     make help   Vim Reference   ---------------    ===============  ==  ==========================  ==========    Command/Keyseq   --  description                 [helptag]    ===============  ==  ==========================  =========    C- == <CTRL>+    --  (so, 'C-o' means ``<CTRL>`` and the ``o`` key)    :[cmd]           --  (type ':' (w/o the quotes),                         type an [optional] command (w/o brackets),                         and then press <enter>)    :Dotvimhelp      --  list commented mappings    :ListMappings    --  list commented mappings    :Dr :DotvimReload  --  reload vim configuration (on top of existing config)                         (may require a maximize/unmaximize                         to re-fill the window after reload)    :PatchColors     --  patch e.g. :Gvdiff colors to a dark theme    :help            --  open vim help               [help]    :help help       --  open vim help for vim help  [help]    :help <tag>      --  open vim help for a tag     [<tag>]                         tag: 'Q_bu', 'Q_wi'         [quickref, Q_bu, Q_wi]                         tag: */plugin/doc/<tag>.txt    :help vimtutor   --  open vim vimtutor tutorial            [ vimtutor ]    :help quickref   --  open vim quick reference          [quickref, Q_bu]    :<up> :<down>    --  search backward / forward through vim command history    /<up> /<down>    --  search backward / forward through vim search history    C-]              --  follow a tag (e.g. in a help document, )    [[               --  go up a section                             [ [[ ]                         :help quickref ; /Q_bu ; C-] ; [[                         :help Q_bu ; 2j ; C-] ; [[    C-o              --  goto jumplist previous position [ctrl-O, jumplist]    C-i              --  goto jumplist next position     [ctrl-i, jumplist]    ``               --  goto previous position      [``, restore-position]    C-s              --  save    C-q              --  quit but prompt to save first    :q               --  quit but prompt to save first   [q]    :q!              --  quit without saving             [q]    :qa!             --  quit all without saving         [qa]    :wq              --  write and quit now             [wq, :SaveSession]    q:               --  show command line (C-c C-c)     [q:]    %                --  variable: current filename      [%]    %:p              --  variable: current filepath ~="  abspath(expanduser())[%:p]    %                --  motion: find the next instance of selected word [%]    :pwd             --  print the working directory path                         for the window (if :lcd has been used)                         OR for all windows    :cd  <path>      --  change the working directory for all windows    :lcd <path>      --  change the working directory for the current window    :Cdhere          --  :cd %:p:h    ~= $ cd "$(dirname "$current_file")"    :LCdhere         --  :lcd %:p:h   ~= $ lcd "$(dirname "$current_file")"    echo "venv.vim"      :Cdhelp                --  print configured vim Cdaliases      :Cdwrd :Cdw            --  :cd $_WRD      :Cdsrc :Cds            --  :cd $_SRC      :Cdvirtualenv          --  :cd $VIRTUAL_ENV      :Cdwrk                 --  :cd $__WRK      :[L]Cdhome :[L]Cdh     --  :cd $HOME      :Lcdwrd :LCdw          --  :lcd $_WRD    :buffers         --  list vim buffers            [Q_bu]    :b3   :buffer 3  --  go to vim buffer 3          [:b :buffer]    echo $VIMRUNTIME --  /{colors,syntax,macros}     [$VIMRUNTIME]    :set [all]       --  list all nondefault options [set, redir, SaveSession]    :map             --  list actual mappings        [Q_km]    :scriptnames     --  list scripts and plugins    [scriptnames]    e[dit]           --  reload the current file    e <path>         --  open path                   [edit, Q_ed]    e <pa...><tab>   --  open path with tab-completion [wildmenu, wildmode]    :tabnew <path>   --  open path in a new tab    :tabprev         --  go to previous tab    :tabnext         --  go to next tab    C-PageUp         --  go to previous tab    C-PageDown       --  go to next tab    :read path       --  insert from path after cursor    :read !cmd       --  insert 'cmd' output after cursor    :%! [cmd]        --  buffer > stdin > [cmd] > stdout => buffer.replace    :put %           --  put % (current filename) after the cursor [help put]    v    hjkl        -- visual selection mode (ldur)    C-v  hjkl        -- visual selection whole lines     gv               -- re-select the previous visual seelction    h, j, k, l       --  left, down, up, right       [Q_lr, Q_ud]     C-E              --  move N lines downwards (1)    C-D              --  move N lines Downwards (1/2 move)    C-F              --  move N pages Forwards (downwards)    C-Y              --  move N lines upwards (default: 1)    C-U              --  move N lines Upwards (default: 1/2 move)    C-B              --  move N pages Backwards (upwards)    [n]G             --  goto line #    g <C-g>          --  whereami    u                --  undo    ^r               --  redo   Modes             --  type 'i' for insert [i I a A v c-v    i                --  insert mode    I                --  insert mode at beginning of line    a                --  append mode    A                --  append mode at end of line    o                --  begin a new line below current and insert    O                --  begin a new line above current and insert    r                --  replace character mode (1 char; return to prev mode)    R                --  replace within line mode    v                --  visual mode    c-v              --  visual block mode    <Esc>            --  command mode (escape to command mode)    ;;               --  command mode (escape to command mode)    q:               --  command line window mode      [cmd] <enter>  --  <enter> to execute command      c-c <enter>    -- <Ctrl-c> <enter> to close command line window   Vim Marks    m[a-z]{1}        --  set mark    `[a-z]{1}        --  goto mark    '[a-z]{1}        --  goto mark   Macros    q[a-z]{1}        --  start recording    q                --  stop recording    @[a-z]{1}        --  replay macro    @@               --  repeat macro    q2<seq><esc>q;@2 --  record macro to 2 and repeat   Searching    /<pattern>       --  search for term    *                --  search for term under cursor next    n                --  next search ocurrence    #                --  search for term under cursor previous    N                --  previous search ocurrence    :[l][vim]grep <pattern> <file>    :cl   :ll        --  list list    :copen :lopen    --  open list    :cw   :lw        --  toggle show list    :ccl[ose] :lcl   --  close list    :cn   :ln        --  next <Enter>    :cp   :lp        --  prev <Enter>    :cc!  :lc [nr]   --  jump to [nr]    :cfir :cla       --  first, last   Yanking and Pasting    y[a-z]           --  yank to buffer [a-z]    p[a-z]           --  paste from buffer [a-z]    ]p               --  paste to level   Indenting/Shifting Blocks    [n]<             --  shift block left    [n]>             --  shift block right   Folding    :help Fold       --  also usr_28    :set nofen       --  stop folding    zf               --  create fold    zo               --  fold open    zO               --  fold open recursive    zc               --  fold close    zC               --  fold close recursive    zx               --  undo manual fold actions    zX               --  undo manual fold actions and recompute    zM               --  fold close all but current (focus)    zR               --  fold open all (review)    :Voom [format]   --  open VOom outline sidebar    <leader> t       --  :TagBarToggle " outline sidebar   Etiquette    <leader> i       --  toggle unprintables    <leader> sd      --  toggle highlight EOL whitespace    <leader> sc      --  clear highlighting   ##   ## g:__sfile__dirname     -- directory containing this vimrc script                                after symlinks                                ~dirname(abspath(realpath(__file__)))   ##    Source_dotvim(filename)  -- source dirname(this_vimrc)/filename          echo l:vimrcfilename . " empty or not found."   ##   ## source vimrc.local.01-env.vimrc   ##   set window title to vim title (display full path)    :ListMappings     -- list .vimrc(.*) comments (n(next) and p(rev))    :DotvimHelp       -- "    :Help             -- "    :DotvimReload   -- reload ~/.vimrc    :Reload         -- reload ~/.vimrc    :Dr             -- reload ~/.vimrc      seeAlso: :SaveSession, :RestoreSession (*)     [help SaveSession]    :Path()   -- echo path information %s %:h %:p:h       [help expand]    :Cdhere() -- cd to here (this dir, dirname(__file__))    [cd %:p:h]    :Lcdhere() -- cd to here (this dir, dirname(__file__))  [lcd %:p:h]    \       -- <leader>    ,       --  <leader> == <comma>    ;;   --  <esc> == double semicolon    :;   --  <esc> == colon semicolon    Compatibility    These don't work sometimes due to shell and terminal shortcuts:      Ctrl-c  -- kill process      Ctrl-d  -- send EOL to process (vim: PageDown)      Ctrl-z  -- send process to background    <C-a>    -- Select All (ggVG)    <C-c>    -- Copy to system clipboard ("+y) TODO    Quicklist    <leader> q               --  toggle quicklist [:cw/:cwindow]    <leader> n               --  next quicklist item [:cn/:cnext]    Location List    <leader> l               --  toggle location list [:lw/:lwindow]    <leader> <shift> N       --  next location list item [:ln/:lnext]   Workaround vim lp:#572863   Code Folding   UTF-8   TODO XXX   Code Indenting   Indent wrapped lines a bit   [breakindent showbreak]       set showbreak=..   Wrap in the middle of lines   Searching    set colorcolumn=0    --  clear color column   Turn Off Visual Bell   WildMenu   Spell Checking    <leader> sp           --  toggle spellcheck    shift-<enter>        --  insert new line w/o changing mode       no error bells       Jump to last position       remove trailing whitespace       filetype extensions          if &previewwindow              exec 'setlocal winheight='.&previewheight          endif       Auto completion        CTRL-<space>     --  autocomplete menu        CTRL-<tab>       --  autocomplete menu       close vim if the only window left open is a NERDTree       Open NERDTree automatically if no files were specified   Drag and Drop     :help drag-n-drop     shift-<drop>    --  cd to file's directory     ctrl-<drop>     --  split new window for file     <drop>          --  open file or paste path at cursor   Fonts    :Font           -- print the font and size (echo &guifont)    g:fontsize=10   -- set the default font size    :PatchFont      -- set the font (s:fontsize, s:fonts, guifont (set gfn=))                       tries each font in s:fonts until one is found   Adjust font-size    <C-Up>   -- increase font size    <C-Down> -- decrease font size   GUI Menubar    :HideMenubar    -- hide GUI menubar    :ShowMenubar    -- show GUI menubar     :Set256         -- set 256 colors (for console vim)     :Set88          -- set 88 colors (for console vim)   GUI        Remove gui scrollbars        ctrl-z   --  undo [u]        alt-z    --  undo        ctrl-r   --  redo        alt-r    --  redo        ctrl-X   --  cut        alt-x    --  cut        ctrl-c   --  copy        alt-c    --  copy           always call Set256.           if this causes problems with older terminals           :Set88   autocmd! Syntax * syn match ExtraWhitespace /\s\+$\| \+\ze\t/    <leader> sd              --  match EOL whitespace    <leader> sc              --  clear search highlighting    ctrl-q       --  close    <leader> i   --  toggle show invisibles    ,cd          --  :cd %:p:h    T            --  wrap paragram   Keep search matches in the middle of the window.    <leader> [    --  toggle cursorline and cursorcolumn    <leader> hm   --  set horizontal line mark    <leader> hv   --  set vertical column mark    <leader> c    --  clear virt marks    Tab          --  Indent Line   map <Tab>         >gb    Shift-Tab    --  Dedent Line    ctrl-t       --  Indent Current Line    ctrl-d       --  Dedent Current Line    >            --  Visual Indent Block    <            --  visual dedent block   Alternative using Tab/Shift-Tab (for gvim).    tab          --  shift right    Shift-tab    --  shift left   vnoremap <Tab>    >gv    ctrl-f       --  find    ctrl-alt-A   --  copy all    ctrl-v       -- paste (*)                    conflict: vim blockwise visual selection [CTRL-v]   map <C-v> <space>"+gP   imap <C-v> <space><Esc>"+gP   vmap <C-v> <Esc>"+gP    alt-v        -- paste (*)   nm \\paste\\        "=@*.'xy'<CR>gPFx"_2x:echo<CR>   imap <a-v>          x<Esc>\\paste\\"_s   vmap <a-v>          "-cx<Esc>\\paste\\"_x   Paste    shift-insert --  paste (*)                     conflict: mac keyboards do not have <Insert>   Save / Close    ctrl-S       --  Save    ctrl-Alt-W   --  Close    ctrl-Home    --  Goto line one                     conflict: mac keyboards do not have <Home>    ctrl-End     --  Goto last line (lines[:-1])                     conflict: mac keyboards do not have <Home>   Page Up / Page Down    shift-Down    --  PageDown (<C-d>)    shift-Up      --  PageUp (<C-u>)   K    --  PageUp   nnoremap K  <PageUp>   J    --  PageDown   nnoremap J  <PageDown>   Keyboard PageUp/PageDown are actually 2*<c-U>                     conflict: mac keyboards do not have <PageUp, PageDown>   Buffer Nav    ctrl-a       --  move to beginning of line (^)    ctrl-e       --  move to end of line ($)   Window Nav        (window-move-cursor)    ctrl-j       --  cursor window down    ctrl-u       --  cursor window down    ctrl-k       --  cursor window up    ctrl-l       --  cursor window right    ctrl-h       --  cursor window left   Window Resize     [window-resize]    ctrl-w _     --  maximize window height    ctrw-w 1_    --  minimize window height    ctrl-w |     --  maximize window width    ctrl-w 1|    --  minimize window width    ctrl-w =     --  equalize window sizes    [n]ctrl-w >  --  expand width    [n]ctrl-w <  --  contract width    [n]ctrl-w +  --  increase height    [n]ctrl-w -  --  reduce height    ctrl-w o     --  minimze all other windows   Window Movement [window-move]   Window Up    <leader> wk  --  move window up    ctrl-wi      --  move window up    <leader> wi  --  move window up   Window Right    <leader> wl  --  move window right   Window Down    <leader> wj  --  move window down    ctrl-wu      --  move window down    <leader> wu  --  move window down   Window Left    <leader> wj  --  move window left   Window Rotate    ctrl-w R     --  rotate window up    ctrl-w r     --  rotate window down   Tab Movement [tab-page-commands]    ctrl-Alt-h   --  previous tab    Alt-u        --  previous tab    ctrl-Alt-l   --  next tab    Alt-i        --  next tab   Man.vim          --  view manpages in vim    :Man man        --  view manpage for 'man'    <leader> o      --  Open uri under cursor        :Ack <term> <path>        <leader>a        --  Ack   Grin              -- Find in Python   Ctags    ctrl-[           --  go to tag under cursor    ctrl-T           --  go back  #TODO   sh: ctags -R -f ~/.vim/tags/python-$PYVER.ctags $PYLIBDIR   Use :make to see syntax errors. (:cn and :cp to move around, :dist to see   all errors)   Colors    :PatchColors     --  load local colorizing postsets   call PatchColors()    -- call PatchColors when sourced        Vim2VimWrite()   -- write highlight codes to ./vim_highlight_output.txt          pip install vim2vim   -- https://pypi.python.org/pypi/vim2vim   List highlight colors   Python    Wrap at 72 chars for comments.    read virtualenv's site-packages to vim path    Vim and Python    !python -c "__import__('pprint').pprint(sorted(locals().items()))"    :python    __import__('pprint').pprint(sorted(vim.__dict__.items()))    :py        __import__('pprint').pprint(sorted(vim.__dict__.items()))      if 'VIRTUAL_ENV' in env:          project_base_dir = env['VIRTUAL_ENV']          sys.path.insert(0, project_base_dir)          activate_this = os.path.join(project_base_dir, 'bin/activate_this.py')          execfile(activate_this, dict(__file__=activate_this))      for p in sys.path:          if os.path.isdir(p):              vim.command(r"set path+=%s" % (p.replace(" ", r"\ ")))              # TODO: merge paths       TODO: python regex current buffer   function! Pyline(...) range        :Pyline -- python regex current buffer   endfunction    # Pyline, !pyline      - these read from stdin if nothing is selected:        Press Ctrl-D to send EOF (twice?)    !python -c "from __future__ import print_function; import sys; [print((i,l)) for (i,l) in enumerate(sys.stdin.readlines())]"    !pyline 'str((i, l))'    Pyline str((i,l))   Tabsetting functions    :Fourtabs    -- set to four (4) soft tabs (Default)   Default to fourtabs    :Threetabs   -- set to three (3) soft tabs    :Twotabs     -- set to two (2) soft tabs    :Onetab      -- set to one (1) soft tab    :new         -- create a new horizontal split    :vnew        -- create a new vertical split    :Tabnew      -- call :tabnew    :New         -- call :tabnew    :Tn          -- call :tabnew    :Hardtabs    -- set to hard \t tabs (e.g. for Makefiles)    :CurrentBuffer -- display number of current buffer    diff           -- vimdiff, Hgvdiff, Gdiff      :diffget   -- get from diff (overwrite or append)      do         -- :diffget other block      :diffput   -- put from diff (overwrite or append)      dp         -- :diffput block       <C-W><C-w> -- cycle between buffers    diffget maps   -- 3-way merge buffers      <leader> 2   -- diffget from bufnr 2      <leader> 3   -- diffget from bufnr 3      <leader> 4   -- diffget from bufnr 4    :Striptrailingwhitespace -- strip spaces at the end of lines    <F3>     -- insert ReST date heading   Trac   ##   ## source vimrc.local.99-after.vimrc   ##   References     - https://dev.launchpad.net/UltimateVimPythonSetup     - https://github.com/kennethreitz/dotfiles/blob/master/.vimrc     - https://bitbucket.org/sjl/dotfiles/src/tip/vim/.vimrc#cl-716     - http://vim.wikia.com/wiki/Highlight_unwanted_spaces     - http://stackoverflow.com/questions/1551231     - http://superuser.com/questions/117969/is-there-a-way-to-move-a-split-page-to-a-new-tab-in-vim     - http://sontek.net/turning-vim-into-a-modern-python-ide     - http://vim.wikia.com/wiki/VimTip320   .      etc/vim/vimrc.full.bundles.vimrc=================================| Src: `etc/vim/vimrc.full.bundles.vimrc <https://github.com/westurner/dotvim/tree/master/vimrc.full.bundles.vimrc>`__.. code:: vim   .   Bundle            -- Vim bundle manager [help bundle]   :BundleList          - list configured plugins   :BundleInstall(!)    - install (update) plugins   :BundleSearch(!) foo - search (or refresh cache first) for foo   :BundleClean(!)      - confirm (or auto-approve) removal of unused plugins   The Bundle URLs are intentionally complete https URLs   * grep '^Bundle \'' vimrc.bundles   * sed -i 's\https://github.com/\ssh://git@github.com/\g'   venv.vim          -- venv CdAlias commands    :Cdhome          -- Cd_HOME()    :Cdh             -- Cd_HOME()    :Cdwrk           -- Cd___WRK()    :Cddotfiles      -- Cd___DOTFILES()    :Cdd             -- Cd___DOTFILES()    :Cdprojecthome   -- Cd_PROJECT_HOME()    :Cdp             -- Cd_PROJECT_HOME()    :Cdph            -- Cd_PROJECT_HOME()    :Cdworkonhome    -- Cd_WORKON_HOME()    :Cdwh            -- Cd_WORKON_HOME()    :Cdve            -- Cd_WORKON_HOME()    :Cdcondahome     -- Cd_CONDA_HOME()    :Cda             -- Cd_CONDA_HOME()    :Cdce            -- Cd_CONDA_HOME()    :Cdvirtualenv    -- Cd_VIRTUAL_ENV()    :Cdv             -- Cd_VIRTUAL_ENV()    :Cdsrc           -- Cd__SRC()    :Cds             -- Cd__SRC()    :Cdwrd           -- Cd__WRD()    :Cdw             -- Cd__WRD()    :Cdbin           -- Cd__BIN()    :Cdb             -- Cd__BIN()    :Cdetc           -- Cd__ETC()    :Cde             -- Cd__ETC()    :Cdlib           -- Cd__LIB()    :Cdl             -- Cd__LIB()    :Cdlog           -- Cd__LOG()    :Cdpylib         -- Cd__PYLIB()    :Cdpysite        -- Cd__PYSITE()    :Cdsitepackages  -- Cd__PYSITE()    :Cdvar           -- Cd__VAR()    :Cdwww           -- Cd__WWW()    :Cdww            -- Cd__WWW()   file_line.vim     -- open files named 'file(line[:col])', 'file:line[:col]'   vimpager          -- vimpager and vimcat [help vimpager]   Info.vim          -- vim infopages in vim [help info]    :Info sed        --  view infopage for 'sed'    <Space>          --  Scroll forward (page down).    <Backspace>      --  Scroll backward (page up).    <Tab>            --  Move cursor to next hyperlink within this node.    <Enter>,<C-]>    --  Follow hyperlink under cursor.    ;,<C-T>          --  Return to last seen node.    .,>              --  Move to the "next" node of this node.    p,<              --  Move to the "previous" node of this node.    u                --  Move "up" from this node.    d                --  Move to "directory" node.    t                --  Move to the Top node.    <C-S>            --  Search forward within current node only.    s                --  Search forward through all nodes for a specified    string.    q                --  Quit browser.   Netrw     -- new netrw [pi_netrw]   Signify   -- show git/hg file changes in gutter [help signify]    <leader>gt       -- SignifyToggle    <leader>gh       -- SignifyToggleHighlight    <leader>gr       -- SignifyRefresh    <leader>gd       -- SignifyDebug   hunk jumping    <leader>gj       -- signify-next-hunk    <leader>gk       -- signify-prev-hunk   hunk text object    ic               -- signify inner textobj    ac               -- signify outer textobj   Fugitive      -- Git commands and statusline display [help fugitive]   Lawrencium    -- Hg commands [help lawrencium]   NERDTree      -- File browser [help NERDTree]    <Leader>e         --  toggle NERDTree    ctrl-e            --  toggle NERDTree    <Leader>E         --  open nerdtree to current file (:NERDTreeFind %:p:h)    ctrl-E            --  open nerdtree to current file (:NERDTreeFind %:p:h)    I                 --  toggle view hidden files    B                 --  toggle view bookmarks    cd                --  set vim CWD to selected dir    C                 --  refocus view to selected dir    o                 --  open    r                 --  refresh dir    R                 --  refresh root    t                 --  open in new tab    T                 --  open in new tab silently    u                 --  up a dir    U                 --  up a dir and leave open    x                 --  close node    X                 --  close all nodes recursive    ?                 --  toggle help   FindInNERDTree    -- NERDTree show current file [help NERDTreeFind]   (NERDTree now includes :NERDTreeFind)   Bundle 'https://github.com/dmcinnes/FindInNERDTree'   nerdtree-symlink     -- create symlinks w/ NERDTree   nerdtree-git-plugin  -- show git status in NERDTree   let g:NERDTreeIndicatorMapCustom = {      \ "Modified"  : "✹",      \ "Staged"    : "✚",      \ "Untracked" : "✭",      \ "Renamed"   : "➜",      \ "Unmerged"  : "═",      \ "Deleted"   : "✖",      \ "Dirty"     : "✗",      \ "Clean"     : "✔︎",      \ "Unknown"   : "?"      \ }    <c-b>            --  toggle BufExplorer    ?                --  toggle BufExplorer help    <leader>b        --  toggle BufExplorer   CtrlP             -- file/buffer/mru finder [help ctrlp]    <C-p>            -- CtrlP (fuzzy matching)    <C-up>/<C-down>  -- CtrlP (cycle through file, buf, mru)    <C-f>            -- CtrlP (cycle through file, buf, mru)   Unite.vim -- show results from files, buffes, mru, registers   neomru            -- show MRU (most-recently-used) files in Unite [neomru]   unite-grep-vcs    -- git grep && hg grep   Syntastic         -- syntax highlighting [help syntastic]              ###       | Src: https://raw.githubusercontent.com/ccwang002/dotvim/master/vimrc       + https://github.com/ccwang002/dotvim/issues/1       Setting for rst Linter       ###       OR       ###       " | Src: https://github.com/myint/rstcheck       " | PyPI: https://pypi.python.org/pypi/rstcheck       " $ pip install --user -U rstcheck       let g:syntastic_rst_checkers = ['rstcheck']       ###   NERDCommenter     -- commenting [help NERDCommenter]    ,cm              --  minimal comment    ,cs              --  sexy comment    ,c<space>        --  toggle comment   UltiSnips         --  syntax-specific snippets [help ultisnips]    snippetname<C-CR>    --  insert snippet    <c-j>            --  next placeholder    <c-k>            --  prev placeholder    ~/.vim/snippets-ulti/python.snippets:      climain         --  new cli script      setuppy         --  new setup.py script    ~/.vim/snippets-ulti/html.snippets:      schemaorgclass  --  new schema.org RDFa class      schemaorgprop   --  new schema.org RDFa property   NeoComplCache -- code completion [help neocomplcache]   unstack.vim   -- parse and open stacktrace paths [help unstack]    <leader> s   -- parse part/all of a stacktrace   accordion.vim -- work w/ a number of vsplits at once [help accordion]   ViM Airline   -- helpful statusbar information w/ vimscript [help airline]       base16, wombat, luna       base16, wombat, luna     :AirlineTheme [dark,luna,base16_grayscale,serene]   let g:airline_theme='dark'  " vim-airline   let g:airline_theme='luna'              " vim-airline-themes   let g:airline_theme='serene'              " vim-airline-themes   EasyMotion    -- easy visual motions [help easymotion]    <Leader>m-w/e    --  search forward (beg/end of word)    <Leader>m-b      --  search backward    <Leader>m-j      --  search line down    <Leader>m-k      --  search line up   Jellybeans    -- a good colorscheme w/ sensible diff highlighting    :colorscheme jellybeans -- switch to the jellybeans colorscheme   Vim-misc      -- functions for colorscheme-switcher and vim-session   Vim Colorscheme Switcher [help colorscheme-switcher]    <F8>         -- cycle colors forward    <Shift><F8>  -- cycle colors reverse   HiColors    call HiTest() -- print highlighting colors    Pasting       -- make paste work normally [help paste]   Vim Room      -- focus just the relevant text [help vimroom]    VOoM Outline Viewer   -- view outlines of code and text [help voom]    VOoM modes:  html, markdown, python, rest,                 thevimoutliner, txt2tags,                 viki, vimwiki, wiki    :Voom [<format>] -- open Voom outline tab    :Voom rest       -- open ReStructuredText outline    ggg?G    <leader> V   -- toggle Voom outline sidebar   TagBar        -- source tag browser [help tagbar]    <leader> t   -- toggle TagBar outline sidebar"   Vim Session   -- save and restore sessions between exits [help session]    :SaveSession <name>  -- save a session    :OpenSession <name>  -- open a saved session    :Restart             -- SaveSession restart && exit    :OpenSession restart -- open the 'restart' saved session   Vim Unimpaired        --  moving between buffers [help unimpaired]    [a      :previous    ]a      :next    [A      :first    ]A      :last    [b      :bprevious    ]b      :bnext    [B      :bfirst    ]B      :blast    [l      :lprevious    ]l      :lnext    [L      :lfirst    ]L      :llast    [<C-L>  :lpfile    ]<C-L>  :lnfile    [q      :cprevious    ]q      :cnext    [Q      :cfirst    ]Q      :clast    [<C-Q>  :cpfile (Note that <C-Q> only works in a terminal if you disable    ]<C-Q>  :cnfile flow control: stty -ixon)    [t      :tprevious    ]t      :tnext    [T      :tfirst    ]T      :tlast   Ack.vim       -- ack through files (instead of grep) [help ack]   :Ack [options] PATTERN [directory]    -- search for pattern   :AckAdd [options] PATTERN [directory] -- add a search pattern   :AckWindow [options] PATTERN          -- search all visible buffers"   vim-surround  -- add quotes/parenthesis/tags [help surround]    cs       -- change surrounding    ys       -- yank and surround (motion, text object)    yss      -- yank and surround current line    ds"      -- remove double-quotes    cs'"     -- replace single-quotes with double quotes    cd"<q>   -- surround with <q>...<q/>    dst      -- remove surrounding tag   csapprox      -- adapt gvim colorschemes for terminal vim [help csapprox]   UndoTree      -- visualize vim undotree    <F5>     -- :UndoTreeToggle (? for help)   vim-nginx -- nginx ftdetect, indent, and syntax   n3.vim    -- N3/Turtle RDF Syntax   SPARQL    -- SPARQL syntax   Python-mode       -- Python [help pymode]    :help pymode    [[    --  Jump to previous class or function    ]]    --  Jump to next class or function    [M    --  Jump to previous class or method    ]M    --  Jump to next class or method    aC    --  Select a class. Ex: vaC, daC, yaC, caC    iC    --  Select inner class. Ex: viC, diC, yiC, ciC    aM    --  Select a function or method. Ex: vaM, daM, yaM, caM    iM    --  Select inner function or method. Ex: viM, diM, yiM, ciM    g:pymode_python = { 'python', 'python3', 'disable' }    set g:pymode_python 'disable' (start time, occasional completion stall)    <leader> d    -- open pydoc    :PymodeLintToggle    -- toggle lint checking    :PymodeLintAuto      -- autofix current buffer pep8 errors   - auto-show an error window   - show lint signs   - run lint on write    let g:pymode_lint_ignore = ""    let g:pymode_lint_select = ""    Pymode lint line annotation symbols     XX = TODO     CC = COMMENT     RR = VISUAL     EE = ERROR     II = INFO     FF = PYFLAKES   :PyModeLint       -- lint current buffer (once)   :PyModeLintToggle -- toggle lint   :PyModeLintAuto   -- auto-lint the current buffer (once)                         (commit before and after)   let g:pymode_lint_select = "E501,W0011,W430"  " whitelist    <F7>     -- set debugger breakpoints    auto lookup breakpoint cmd (pdb, ipdb, pudb)"    Searches upward for a .ropeproject file (that should be .vcs-ignored)    :PymodeRopeNewProject    -- Create a new .ropeproject in CWD    :PymodeRopeRegenerate    -- Regenerate rope project cache    <C-c>d       -- show docs for current function w/ pymode    rope for autocompletion    <C-Space>    -- rope autocomplete    <leader> j       --  :RopeGotoDefinition    <C-c> ro     -- organize Python imports; drop unused (:PymodeRopeAutoImport)    :PymodeRopeUndo  -- Undo last project changes    :PymodeRopeRedo  -- Redo last project changes    <C-c> rr     -- rope rename   vim-virtualenv    -- Python virtualenv [help virtualenv]    :help    :VirtualEnvDeactivate    :VirtualEnvList    :VirtualEnvActivate <name>    :VirtualEnvActivate <TAB>   Sort python imports    :PyFixImports    --  sort import statements   Pytest.vim    -- py.test red/green results [help pytest]    :Pytest clear    -- reset pytest globals    :Pytest file     --  pytest file    :Pytest class    --  pytest class    :Pytest method   --  pytest method    :Pytest {...} --pdb  -- pytest file/class/method with pdb    <leader>tf       --  pytest file    <leader>tc       --  pytest class    <leader>tm       --  pytest method    " cycle through test errors    <leader>tn       --  pytest next error    <leader>tp       --  pytest prev error    <leader>te       --  pytest error   Pyrex         -- Pyrex syntax   Jinja         -- Jinja Templates syntax   vim-coffee-script -- CoffeeScript syntax, indent   vim-haml          -- HAML, SASS, SCSS   vim-css3-syntax   -- CSS3   vim-css-color     -- show CSS color codes   vim-less          -- LESS CSS   vim-jade          -- Jade templates   os.vim   -- Operating System [help os]   clickable.vim -- click-able links   let g:clickable_browser = "xdg-open"   let g:clickable_browser = "x-www-browser"   Riv.vim       -- ReStructuredText [help riv]    [help riv]        https://github.com/Rykka/riv.vim/tree/master/doc    :RivIntro        https://github.com/Rykka/riv.vim/blob/master/doc/riv_intro.rst    :RivQuickStart        https://github.com/Rykka/riv.vim/blob/master/doc/riv_quickstart.rst    :RivInstruction        https://github.com/Rykka/riv.vim/blob/master/doc/riv_instruction.rst    :RivCheatSheet     -- riv_cheatsheet.rst        https://github.com/Rykka/riv.vim/blob/master/doc/riv_cheatsheet.rst    :RivPrimer         -- riv_primer.rst        https://github.com/Rykka/riv.vim/blob/master/doc/riv_primer.rst        http://docutils.sourceforge.net/docs/user/rst/quickstart.html    # Docutils "Quick reStructuredText" [quickref.rst / quickref.html]        http://docutils.sourceforge.net/docs/user/rst/quickref.html    :RivSpecification  -- Docutils "reStructuredText Markup Specification"        http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html         https://github.com/Rykka/riv.vim/blob/master/doc/riv_specification.rst    :RivDirectives -- Docutils "Directives"        https://github.com/Rykka/riv.vim/blob/master/doc/riv_directives.rst         http://docutils.sourceforge.net/docs/ref/rst/directives.html    # Docutils "Roles"         http://docutils.sourceforge.net/docs/ref/rst/roles.html    # Docutils "Substutution definitions"         http://docutils.sourceforge.net/docs/ref/rst/definitions.html    # Docutils "Doctree"         http://docutils.sourceforge.net/docs/ref/doctree.html    # Riv.vim Changelogs         https://github.com/Rykka/riv.vim/blob/master/doc/riv_log.rst    # Riv.vim Todo         https://github.com/Rykka/riv.vim/blob/master/doc/riv_todo.rst         - [ ] Ready         - [o] Open         - [X] Closed   Tabular       -- text filtering and alignment [tabular]   vim-markdown  -- markdown syntax (-> tabular, netrw) [vim-markdown]   Ansible   -- Ansible syntax   Salt      -- Salt syntax   Trac      -- Trac [help trac]   webapi-vim -- vim web API [help webapi[-{html, http, json, xml}]]   gist-vim  -- Create a gist.github.com [help gist-vim]   github-issues.vim     -- autocomplete, CRUD GitHub issues [help Gissues]   Bundle 'https://github.com/jaxbot/github-issues.vim'   html5.vim             -- HTML5, RDFa, microdata, WAI-ARIA   vim-javascript        -- improved Javascript support   vim-indent-guides     -- show indentation levels [help indent_guides]   rainbow-parentheses   -- make nested parenthesis different colors    :RainbowParenthesesActivate    :RainbowParenthesesToggle    :RainbowParenthesesLoadRound    :RainbowParenthesesLoadSquare    :RainbowParenthesesLoadBraces    :RainbowParenthesesLoadChevrons    :RainbowParenthesesToggleAll       :RainbowParenthesesActivate   vimwiki               -- vim wiki library (for taskwiki) [help vimwiki]   taskwiki              -- TaskWarrior task management [help taskwiki]   vim-taskwarrior       -- TaskWarrior interface (for taskwiki) [help vim-tw]   vim-plugin-AnsiEsc    -- ANSI colors for taskwiki charts [   l9                    -- utility library (for FuzzyFinder)   FuzzyFinder           -- find files, buffers, tags, changes [help fuf]    :FufBuffer    :FufFile    :FufDir    :FufMruFile    :FufMruCmd    :FufTag    :FufJumpList    :FufChangeList    :FufQuickfix    :FufHelp   abolish.vim           -- abbreviations, case-aware replcmnts [help abolish]   fountain.vim          -- fountain.io syntax   All of your Bundles must be added before the following line   .      etc/vim/vimrc.tinyvim.bundles.vimrc====================================| Src: `etc/vim/vimrc.tinyvim.bundles.vimrc <https://github.com/westurner/dotvim/tree/master/vimrc.tinyvim.bundles.vimrc>`__.. code:: vim   .   Bundle            -- Vim bundle manager [help bundle]   :BundleList          - list configured plugins   :BundleInstall(!)    - install (update) plugins   :BundleSearch(!) foo - search (or refresh cache first) for foo   :BundleClean(!)      - confirm (or auto-approve) removal of unused plugins   The Bundle URLs are intentionally complete https URLs   * grep '^Bundle \'' vimrc.bundles   * sed -i 's\https://github.com/\ssh://git@github.com/\g'   Info.vim          -- vim infopages in vim [help info]    :Info sed        --  view infopage for 'sed'    <Space>          --  Scroll forward (page down).    <Backspace>      --  Scroll backward (page up).    <Tab>            --  Move cursor to next hyperlink within this node.    <Enter>,<C-]>    --  Follow hyperlink under cursor.    ;,<C-T>          --  Return to last seen node.    .,>              --  Move to the "next" node of this node.    p,<              --  Move to the "previous" node of this node.    u                --  Move "up" from this node.    d                --  Move to "directory" node.    t                --  Move to the Top node.    <C-S>            --  Search forward within current node only.    s                --  Search forward through all nodes for a specified    string.    q                --  Quit browser.   Signify   -- show git/hg file changes in gutter [help signify]   NERDTree      -- File browser [help NERDTree]    <Leader>e         --  toggle NERDTree    ctrl-e            --  toggle NERDTree    <Leader>E         --  open nerdtree to current file (:NERDTreeFind %:p:h)    ctrl-E            --  open nerdtree to current file (:NERDTreeFind %:p:h)    I                 --  toggle view hidden files    B                 --  toggle view bookmarks    cd                --  set vim CWD to selected dir    C                 --  refocus view to selected dir    o                 --  open    r                 --  refresh dir    R                 --  refresh root    t                 --  open in new tab    T                 --  open in new tab silently    u                 --  up a dir    U                 --  up a dir and leave open    x                 --  close node    X                 --  close all nodes recursive    ?                 --  toggle help   FindInNERDTree   -- NERDTRee show current file [help NERDTreeFind]    <c-b>            --  toggle BufExplorer    ?                --  toggle BufExplorer help    <leader>b        --  toggle BufExplorer   CtrlP             -- file/buffer/mru finder [help ctrlp]    <C-p>            -- CtrlP (fuzzy matching)   Syntastic         -- syntax highlighting [help syntastic]   EasyMotion    -- easy visual motions [help easymotion]    <Leader>m-w/e    --  search forward (beg/end of word)    <Leader>m-b      --  search backward    <Leader>m-j      --  search line down    <Leader>m-k      --  search line up   Jellybeans    -- a good colorscheme w/ sensible diff highlighting    :colorscheme jellybeans -- switch to the jellybeans colorscheme   Vim-misc      -- functions for colorscheme-switcher and vim-session   Vim Colorscheme Switcher [help colorscheme-switcher]    <F8>         -- cycle colors forward    <Shift><F8>  -- cycle colors reverse   vim-nginx -- nginx ftdetect, indent, and syntax   n3.vim    -- N3/Turtle RDF Syntax   SPARQL    -- SPARQL syntax   Pyrex         -- Pyrex syntax   Jinja         -- Jinja Templates syntax   Salt      -- Salt syntax   All of your Bundles must be added before the following line   call PatchColors()  " TODO: from ./vimrc.full.bundles.vimrc'   .

src/

pyline.py

Similar tosed andawk:Execute python expressions over line-based files.

pyrpo.py

pyrpo.py wraps version control system CLI interfaces.

web.sh

web.sh is a packaged Python script thatlaunches browser tabs for each CLI argumenton OSX, Linux, or withpython-mwebbrowser.

scripts/web is symlinked toscripts/websh.py

${__DOTFILES}/scripts/websh.py  # vendoredwebsh.py en.wikipedia.org/wiki/Wikipediaweb https://westurner.org/dotfiles/usage#webshweb localhost:8080 localhost:8080web https://localhost:8080/.. code:: bash    Usage: websh.py [-b|-x|-o|-s] [-v|-q] <url1> [<url_n>]    Open paths or URIS as tabs in the configured system default webbrowser    Options:      -h, --help           show this help message and exit      -b, --webbrowser     Open with `python -m webbrowser`      -x, --x-www-browser  Open with `x-www-browser` (Linux, X)      -o, --open           Open with `open` (OSX)      -s, --start          Open with `start` (Windows)      -v, --verbose      -q, --quiet      -t, --test

Scripts

scripts/ is a directory for standalone scripts:scripts that do not require any dependencies to run.

etc/bash/05-bashrc.dotfiles prepends${__DOTFILES}/scripts to$PATH.

dotfiles

bootstrap_dotfiles.sh

bootstrap_dotfiles.sh is a shell script thatclones, updates, installs dotfiles and dependencies,and adds symlinks into$HOME

See:bootstrap_dotfiles.sh

venv

venv.py

See theVenv docs.

venv_relabel.sh

venv_relabel.sh adds SELinux labels to a virtualenv.

venv_root_prefix.sh

venv_root_prefix.sh contains environment variablesgenerated withvenv--prefix=/--print-vars in the Makefile.

venv.sh

venv.sh contains the bash cdalias functions (cdwrk, cdwh, cdv,cdsrc, cdwrd).

venv.sh is generated withvenv--print-bash--prefix=/ in theMakefile.

_ewrd.sh

_ewrd.sh contains the edit alias shell functionsand shell completions.You can source_ewrd.sh, call it directly, or call it with a symlinkwith the name of a function.

scripts/ contains symlinks to all of the edit aliases.

eeditdotfileseditwrkeditworkonhomeeditvirtualenveditetceditsrceditwrdeditwwwedotfilesewrkewh/eworkonhomeev/evirtualenveetces/esrcew/ewrdewww

_dotfileshelp.sh

_dotfileshelp.sh-hdotfileshelp-hdhelp-hdh-hdhhelpdhalldhall-n-v# --number-lines, --verbosedh-v-hdhdhalldhreadlinedhbashdhzshdhi3dhvim

gitw

$ gitw  # ~= (cd $WRD; git ${@})

_grinwrd.sh

grindctagsgrindctagssgrindctagssrcgrindctagssysgrindctagswgrindctagswrdgrindsgrindsrcgrindvgrindvirtualenvgrindwgrindwrdgrindwrdhelpgrinsgrinsrcgrinvgrinvirtualenvgrinwgrinwrdgrinwrdhelpeditgrindweditgrinwegrindwegrinwegw

makew

$ makew  # ~= (cd $WRD; make ${@}) # w/ bash completion

usrlog.sh

Log shell output with (by default, unique)TERM_IDs, PWD, start / finish timesto~/-usrlog.logor$VIRTUAL_ENV/-usrlog.log.

See:usrlog

usrlog.py

usrlog.py is a CLI script for viewing.usrlog files. You canpipe fields parsed withusrlog.py topyline.py with the--pyline option and e.g.words[0]['cmd'].

See:usrlog

git

Git

.gitconfig

etc/gitconfig

[user]name=WesTurneremail=wes@wrd.nu[github]user=westurner# References# - http://documentup.com/skwp/git-workflows-book#appendix-a---the-gitconfig# - [...][color]ui=true[color"branch"]current=yellowreverselocal=yellowremote=green[color"diff"]meta=yellowboldfrag=magentaboldold=redboldnew=greenbold[alias]# adda=add# addchunkyadd=add--patch# stage commits chunk by chunkac=add-p# stage commits chunk by chunk# branchb=branch-v# branch (verbose)ba=branch-a-v# branch -a (verbose)# commitc=commit-m# commit with messageca=commit-am# commit all with messageci=commit# commitamend=commit--amend# ammend your last commitammend=commit--amend# ammend your last commit# fix commit messagefc=commit--amend-m# checkoutco=checkout# checkoutnb=checkout-b# create and switch to a new branch (mnemonic: "git new branch branchname...")# cherry-pickcp=cherry-pick-x# grab a change from a branch# diffd=diff# diff unstaged changesds=diff--statdc=diff--cached# diff staged changesdcs=diff--cached--statlast=diffHEAD^# diff last committed changediffw=diff--word-diff# diff --word-diff# ii=log-n1--decorate=fullis=log-n1--stat--decorate=full# logl=log--graph--date=shortl3=log-n3--graph--date=shortshort=log--pretty=format:\"%h%cr%cn %Cgreen%s%Creset\"changelog=log--pretty=format:\"*%s [%h]\"shortnocolor=log--pretty=format:\"%h%cr%cn%s\"# show unpushed changesunpushed=log--statorigin/master..HEADoutgoing=log--statorigin/master..HEAD# file overviewfo=log--pretty=oneline--shortstat--abbrev-commitchanges=log--graph--pretty=format:\"%Cblue%h%Creset%cr%d %Cgreen%s%Creset [%cn]\n\" --name-statuschangestat=log--graph--pretty=format:\"%Cblue%h%Creset%cr%d %Cgreen%s%Creset [%cn]\n\" --statcs=log--graph--pretty=format:\"%Cblue%h%Creset%cr%d %Cgreen%s%Creset [%cn]\n\" --stat# pullpl=pull# pull# pushps=push# push# rebaserc=rebase--continue# continue rebasers=rebase--skip# skip rebase# remoter=remote-v# show remotes (verbose)# resetunstage=resetHEAD# remove files from index (tracking)uncommit=reset--softHEAD^# go back before last commit, with files in uncommitted statefilelog=log-u# show changes to a filemt=mergetool# fire up the merge tool# stashss=stash# stash changessl=stashlist# list stashessa=stashapply# apply stash (restore changes)sd=stashdrop# drop stashes (destory changes)# statuss=status-sb# statusst=status-sb# statusstat=status-sb# status# tagt=tag-n# show tags with <n> lines of each tag message# svn helperssvnr=svnrebasesvnd=svndcommitsvnl=svnlog--oneline--show-commit# grouped searchgg=grep--break--heading-n# shallow clonesc=clone--depth=1# TODOtodo=grep-n--full-name-E'TODO|FIXME|XXX'[format]pretty=format:%C(blue)%ad%Creset%C(yellow)%h%C(green)%d%Creset%C(blue)%s%C(magenta)[%an]%Creset[mergetool]prompt=false[mergetool"gvimdiff"]cmd="gvim -c 'Gdiff' $MERGED"# use fugitive.vim :Gdiff for 3-way mergekeepbackup=false[merge]summary=trueverbosity=1tool=gvimdiff[apply]whitespace=nowarn[branch]autosetupmerge=true[push]# 'git push' will push the current branch to its tracking branch# the usual default is to push all branchesdefault=tracking[core]autocrlf=falseeditor=vimexcludesfile=~/.gitignore_globalpager=less-F-X[advice]statusHints=false[diff]# Git diff will use (i)ndex, (w)ork tree, (c)ommit and (o)bject# instead of a/b/c/d as prefixes for patchesmnemonicprefix=truetool=gvimdiff# Upgrade github URLs to SSH#[url "ssh://git@github.com/"]#    insteadOf = http://github.com/#    insteadOf = https://github.com/#    insteadOf = git://github.com/[cola]fontdiff=Monospace,10,-1,5,50,0,0,0,0,0

.gitignore_global

etc/.gitignore_global

## Configuration# git config --global core.excludesfile ~/.gitignore_global# UndoTree*.un~# OSX.DS_Store# Rope.ropeproject/

gittagstohgtags.sh

etc/scripts/gittagstohgtags.sh

Convertgit tags tohgtags format

git-changelog.py

etc/scripts/git-changelog.py

See:usrlogGenerate a reverse chronological changelog with headings for each tag fromGit commit messages.

cd&&test-d.gitgit-changelog.pygit-changelog.py-rdevelopgit-changelog.py--develop

git-subrepo2submodule.sh

etc/scripts/git-subrepo2submodule.sh

git-track-all-remotes.sh

etc/scripts/git-track-all-remotes.sh

# git-track-all-remotes.sh -hgit-track-all-remotes.sh<path>[<name:origin>][prefix:remotes/<name>/]CreateGitlocaltrackingbranchesfor**ALL**ofaremote's branches.-t/--testrunalltests-T/--test-fail-earlyruntests(andfailearly)-h/--helpprint(this)help

git-upgrade-remote-to-ssh.sh

etc/scripts/git-upgrade-remote-to-ssh.sh

# git-upgrade-remote-to-ssh.sh -hgit-upgrade-remote-to-ssh.sh: <path> <remote>  Upgrade Git remote URLs to SSH URLs  -t / --test    -- run tests and echo PASS/FAIL  -h / --help    -- print (this) help  # git -C ./ --config --get remote.origin.url    # print 'origin' URL in ./  $ git-upgrade-remote-to-ssh.sh -h       # print (this) help  $ git-upgrade-remote-to-ssh.sh          # upgrade 'origin' URLs in ./  $ git-upgrade-remote-to-ssh.sh .        # upgrade 'origin' URLs in ./  $ git-upgrade-remote-to-ssh.sh . upstream       # upgrade 'upstream' URLs in ./  $ git-upgrade-remote-to-ssh.sh ./path           # upgrade 'origin' URLs in ./path  $ git-upgrade-remote-to-ssh.sh ./path upstream  # upgrade 'upstream' URLs in ./path

hg

Mercurial is also called hg.

.hgrc

etc/.hgrc

[ui]username = Wes Turner <wes@wrd.nu>#ssh = ssh -o ClearAllForwardings=yeseditor = vimignore = ~/.hgignore_global[color]custom.date = bluecustom.rev = yellowcustom.tags = greencustom.desc = bluecustom.author = magenta[alias]# these are, in large parts, ports of .gitconfig shortcuts# defined in http://documentup.com/skwp/git-workflows-bookw = id -Btine = exports = status3 = glog -l35 = glog -l57 = glog -l710 = glog -l10qi = qinit -cqn = qnewqs = qseriesqt = qtopqd = qdiffqg = qgotoa = add#chunkyadd = record?# branchb = branch -v# commit# commit with messagec = commit -m# commit all with messageca = commit -Am# commit (check in)ci = commit# amend your last commitamend = commit --amend# amend your last commitammend = commit --amend# checkoutco = checkoutnb = bookmark# cherry-pickcp = transplant --log -bcpg = graft --log -r# diffd = diffds = diff --statdc = qdiffdq = qdifflast = diff -r tip:-1ds = diff --stat# ii = log -l1 --template "{label('custom.date', date|isodate)} {label('custom.rev', node|short)} ({branch}; {tags}; {bookmarks}) {desc} [{label('custom.author', author)}]\n"is = log -l1 --template "{label('custom.date', date|isodate)} {label('custom.rev', node|short)} ({branch}; {tags}; {bookmarks}) {desc} [{label('custom.author', author)}]\n" --stat# logl = log -G --pager=yes --template "{label('custom.date', date|isodate)} {label('custom.rev', node|short)} ({branch}; {tags}; {bookmarks}) {desc} [{label('custom.author', author)}]\n"long = log -G --removed --template "{label('custom.rev', node|short)} ({branch};{bookmarks};{tags})\n{desc}\t[{label('custom.author', author)}]\n" --pager=yeschanges = log --removed --pager=yes --template='{rev} {node|short} {date|isodate} {author|user} ({join(tags, ", ")}) {desc}\n{file_mods % "M  {file}\n"}{file_adds % "A  {file}\n"}{file_dels % "D  {file}\n"}\n'cl = log -G --removed --style changelog --pager=yesshort = log -G --removed --style=compact --pager=yes# pullpl = pull# pushps = push# rebase# rc = # rs = # remote (paths)p = pathsr = paths# resetunstage = reset HEADuncommit = rollbackfilelog = log -f# mt = mergetool# stash (mq)ss = qnewsl = qseriessa = qpushsd = qdeleteqn = qnewqc = qcommitqs = qseriesqp = qpushqrm = qdelete# statuss = statusst = statusstat = status# tagt = tags# TODOtodo = grep -n -f 'TODO|FIXME|XXX'# svn helpers# pip install hgsvn# hgimportsvn -r <latest> svn://path_to/svn/repo <example># hgimportsvn -r <latest> http://path_to/svn/repo <example># cd example# hgpullsvn# hg tags[extensions]hgk =churn =graphlog =convert =churn =record =bookmarks =highlight =schemes =fetch =extdiff =color =hgk=mq=progress=#hggit =gpg = eol = #largefiles = rebase = transplant =shelve =pager =#hgattic = ~/.mercurial/hgattic/attic.py#hgshelve = ~/.mercurial/hgshelve/hgshelve.py#graphviz = ~/.mercurial/graphviz.py#localbranches = ~/.mercurial/mercurial-extensions-localbranch/localbranch.py#reviewboard = ~/.mercurial/mercurial-reviewboard#debugshell = ~/src/hg-crew-stable/contrib/debugshell.py[pager]ignore = version, help, update[extdiff]cmd.diffuse = diffusecmd.meld = meldcmd.vimdiff = vimdiffopts.vimdiff = -f '+next' '+execute "DirDiff" argv(0) argv(1)'[schemes]py = http://hg.python.org/bb = https://bitbucket.org/bb+ssh = ssh://hg@bitbucket.org/bb+git+ssh = ssh://git@bitbucket.org/gcode = https://{1}.googlecode.com/hg/gcode+svn = https://{1}.googlecode.com/svn/trunkkiln = https://{1}.kilnhg.com/Repo/gh = git://github.com/gh+ssh = git+ssh://git@github.com/gist = git+https://gist.github.com/ocean = ssh://hg@hg.ocean/moz = https://hg.mozilla.org/code = ~/src/create+hg = ssh://hg@hg.create.wrd.nu/hg/create+git = git+ssh://git@git.create.wrd.nu/git/[reviewboard]server = https://rev.ocean#target_groups = self[hostfingerprints]#bitbucket.org = 81:2b:08:90:dc:d3:71:ee:e0:7c:b4:75:ce:9b:6c:48:94:56:a1:fe[tortoisehg]forcerepotab = Truefullpath = Trueshell = gnome-terminal -t %(reponame)stasktabs = westlongsummary = Truefontcomment = Monaco,10,-1,5,50,0,0,0,0,0fontdiff = Monaco,10,-1,5,50,0,0,0,0,0fontlist = Monaco,10,-1,5,50,0,0,0,0,0fontlog = Monaco,10,-1,5,50,0,0,0,0,0fontoutputlog = Monaco,10,-1,5,50,0,0,0,0,0ui.language = eneditor = /usr/bin/gvim --servername thg --remote-tab-silent $FILEtabwidth = 4[mq]git = yes[hgweb]/ = ~/src/*#/wrd = ~/src/wrd/*/wrd = ~/workspace/wrd/.ve = ~/workspace/.virtualenvs[web]style = gitwebpush_ssl = Truedeny_push = *[diff]git = True#XXX[trusted]users = hg

.hgignore_global

syntax:glob*.un~.DS_Store

bashmarks_to_nerdtree.sh

Convertbashmarks shortcut variablesstarting withDIR_ toNERDTreeBookmarks format:

export|grep'DIR_'l# list bashmarkssawesome# save PWD as 'awesome' bashmarkgawesome# goto the 'awesome' bashmark./bashmarks_to_nerdtree.sh|tee~/.NERDTreeBookmarks

compare_installed.py

Compare packages listed in a debian/ubuntu APT.manifest with installed packages.

See:https://github.com/westurner/pkgsetcomp

pulse.sh

Setup, configure, start, stop, and restartpulseaudio

setup_mathjax.py

SetupMathJax

setup_pandas_notebook_deb.sh

SetupIPythonNotebook,Scipy,Numpy,Pandaswith Ubuntu packages and pip.

Note that:ref:`Conda`_ and anenvironment.yml are the preferred way todo this now.

setup_pandas_notebook.sh

SetupBrew,IPythonNotebook,scipy,numpy,and pandas on OSX

Note that:ref:`Conda`_ and anenvironment.yml are the preferred way todo this now.

setup_scipy_deb.py

Install and symlinkscipy,numpy, andmatplotlib fromapt

Note that:ref:`Conda`_ and anenvironment.yml are the preferred way todo this now.

deb_deps.py

Work with debian dependencies

deb_search.py

Search for a debian package

build_docs.py

Build sets of sphinx documentation projects

el

Open args from stdin withEDITOR_ orEDITOR. Similar toxargs.

el.py# ${__DOTFILES}/scripts/el.pyel# ln -s el.py elel-v--help
# open files containing 'STR' in ``EDITOR_``grep-l'STR'|el-e# open files containing 'STR' in ``EDITOR_`` (verbosely printing each)grep-l'STR'|el-e-v
# echo filenames containing 'STR'$ grep -l 'STR' | el -x echofilename1 filename2 filenamen# echo each filename containing 'STR'$ grep -l 'TODO' | el --each -x echofilename1filename2filenamen

TODO

  • EDITOR_ and EDITOR are somewhat deprecated in favor ofscripts/eandscripts/ew.
    • [ ] BUG: call _setup_editor in dotfiles_postactivate

greppaths.py

Grep

lsof.py

lsof subprocess wrapper

mactool.py

MAC address tool

optimizepath.py

Work with PATH as an ordered set

passwordstrength.py

Gauge password strength

pipls.py

Walk and enumerate a pip requirements file

pycut.py

Similar tocoreutilscut: split line-based files intofields. See:pyline.py (pyline'w[1:2]')

py_index.py

Create a python package index HTML file for a directory ofpackages. (.egg,.zip,.tar.gz,tgz)

pyren.py

Skeleton regex file rename script

See:https://github.com/westurner/pyleset

whyquote.sh

Objective: Demonstrate how and why shell quoting matters

xlck.sh

Wrapxautolock for screensaver, shutdown, suspend, resume config(e.g..xinitrc callsxlck.sh-S)