diff --git a/modules/completion/init.zsh b/modules/completion/init.zsh index de59a5d2..c33c0f77 100644 --- a/modules/completion/init.zsh +++ b/modules/completion/init.zsh @@ -96,7 +96,7 @@ zstyle ':completion::*:(-command-|export):*' fake-parameters ${${${_comps[(I)-va # Populate hostname completion. zstyle -e ':completion:*:hosts' hosts 'reply=( - ${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) 2>/dev/null)"}%%[#| ]*}//,/ } + ${=${=${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) 2>/dev/null)"}%%[#| ]*}//\]:[0-9]*/ }//,/ }//\[/ } ${=${(f)"$(cat /etc/hosts(|)(N) <<(ypcat hosts 2>/dev/null))"}%%\#*} ${=${${${${(@M)${(f)"$(cat ~/.ssh/config 2>/dev/null)"}:#Host *}#Host }:#*\**}:#*\?*}} )' diff --git a/modules/editor/init.zsh b/modules/editor/init.zsh index 53292923..ae253f25 100644 --- a/modules/editor/init.zsh +++ b/modules/editor/init.zsh @@ -270,10 +270,6 @@ bindkey -M vicmd "v" edit-command-line bindkey -M vicmd "u" undo bindkey -M vicmd "$key_info[Control]R" redo -# Switch to command mode. -bindkey -M viins "jk" vi-cmd-mode -bindkey -M viins "kj" vi-cmd-mode - if (( $+widgets[history-incremental-pattern-search-backward] )); then bindkey -M vicmd "?" history-incremental-pattern-search-backward bindkey -M vicmd "/" history-incremental-pattern-search-forward diff --git a/modules/git/README.md b/modules/git/README.md index 806bc9ca..6eeb3216 100644 --- a/modules/git/README.md +++ b/modules/git/README.md @@ -56,6 +56,7 @@ Aliases - `gcO` checks out paths to work tree using the *HEAD* commit. - `gcf` amends the tip of the current branch using the same log message as *HEAD*. + - `gcF` amends the tip of the current branch. - `gcp` applies changes introduced by existing commits. - `gcP` applies changes introduced by existing commits without committing. - `gcr` reverts existing commits by reverting patches and recording new @@ -292,7 +293,7 @@ Second, format how the above attributes are displayed in prompts. 'prompt' ' git(%b)' \ 'rprompt' '[%R]' -Last, add `$git_info[prompt]` to `$PROMPT` and `$git_info[prompt]` to +Last, add `$git_info[prompt]` to `$PROMPT` and `$git_info[rprompt]` to `$RPROMPT` respectively and call `git-info` in the `prompt_name_preexec` hook function. diff --git a/modules/git/alias.zsh b/modules/git/alias.zsh index 8d84d923..9af1c8a7 100644 --- a/modules/git/alias.zsh +++ b/modules/git/alias.zsh @@ -48,6 +48,7 @@ alias gcm='git commit --message' alias gco='git checkout' alias gcO='git checkout HEAD --' alias gcf='git commit --amend --reuse-message HEAD' +alias gcF='git commit --amend' alias gcp='git cherry-pick --ff' alias gcP='git cherry-pick --no-commit' alias gcr='git revert' diff --git a/modules/gnu-utility/README.md b/modules/gnu-utility/README.md index b0dc1eed..b3b6ded1 100644 --- a/modules/gnu-utility/README.md +++ b/modules/gnu-utility/README.md @@ -7,8 +7,8 @@ Installing GNU utilities on non-GNU systems in `$PATH` without a prefix, i.e. `ls` instead of `gls`, is not recommended since scripts that target other utilities will be broken. -However, for interactive use, prefixed commands can be wrapped in their -non-prefixed counterparts. +This module wraps GNU utilities in functions without a prefix for interactive +use. This module must be loaded **before** the *utility* module. diff --git a/modules/prompt/functions/prompt_giddie_setup b/modules/prompt/functions/prompt_giddie_setup index 07b7d51d..20d7dd2a 100644 --- a/modules/prompt/functions/prompt_giddie_setup +++ b/modules/prompt/functions/prompt_giddie_setup @@ -1,48 +1,45 @@ # # A colourful, friendly, multiline theme with some handy features: # -# * Simple VCS branch, staged, and unstaged indication. -# * Prompt character is different in a VCS repository. -# * Last command exit status is displayed clearly if it was non-zero. -# -# This theme is particularly well-suited to the pastel colours used by KDE's -# Konsole terminal emulator. -# -# Screenshot: http://i.imgur.com/rCo3S.png -# # Authors: # Paul Gideon Dann # - -# TODO: Currently only tailored to git. +# Features: +# - Simple VCS branch, staged, and unstaged indication. +# - Prompt character is different in a VCS repository. +# - Last command exit status is displayed when non-zero. +# +# Screenshots: +# http://i.imgur.com/rCo3S.png +# function prompt_giddie_precmd { - vcs_info - # Replace "/home/" with "~" - prompt_custom_wd=${PWD/#$HOME/\~} + _prompt_giddie_pwd="${PWD/#$HOME/~}" - # Choose prompt symbol based on whether on not we're in a repository. - { git branch 2>&1 } >/dev/null - if (( $? == 0 )); then - prompt_symbol='±' + # Choose prompt symbol based on whether or not we are in a repository. + if (( $+commands[git] )) && git rev-parse 2> /dev/null; then + _prompt_giddie_symbol='±' + vcs_info else - prompt_symbol=')' + _prompt_giddie_symbol=')' fi - - # This will be displayed additionally if the last exit status was non-zero. - prompt_exit_status="%F{red}%B-> [%?]%b%f" } function prompt_giddie_setup { + setopt LOCAL_OPTIONS + unsetopt XTRACE KSH_ARRAYS + prompt_opts=(cr percent subst) + + # Load required functions. autoload -Uz vcs_info autoload -Uz add-zsh-hook - add-zsh-hook precmd prompt_giddie_precmd - prompt_opts=(cr percent subst) + # Add hook to call our function before each command + add-zsh-hook precmd prompt_giddie_precmd - zstyle ':omz:completion' indicator '%F{green}...%f' - zstyle ':omz:prompt' vicmd '%F{yellow}--- VI-COMMAND ---%f' + zstyle ':prezto:module:editor:info:completing' format '%F{green}...%f' + zstyle ':prezto:module:editor:info:keymap:alternate' format '%F{yellow}--- VI-COMMAND ---%f' zstyle ':vcs_info:*' enable git zstyle ':vcs_info:*' check-for-changes true zstyle ':vcs_info:*' formats ' on %F{magenta}%b%f%c%u' @@ -50,13 +47,13 @@ function prompt_giddie_setup { zstyle ':vcs_info:*' stagedstr '%F{green}+%f' zstyle ':vcs_info:*' unstagedstr '%F{green}!%f' - PROMPT='%(?..${prompt_exit_status} -)%F{magenta}%n%f@%F{yellow}%m%f|%F{green}${prompt_custom_wd}%f${vcs_info_msg_0_} -%F{blue}${prompt_symbol}%f ' + # Define prompts. + PROMPT='%(?..%F{red}%B-> [%?]%b%f +)%F{magenta}%n%f@%F{yellow}%m%f|%F{green}${_prompt_giddie_pwd}%f${vcs_info_msg_0_} +%F{blue}${_prompt_giddie_symbol}%f ' RPROMPT= SPROMPT='zsh: correct %F{magenta}%R%f to %F{green}%r%f [nyae]? ' } prompt_giddie_setup "$@" -# vim: ft=zsh diff --git a/modules/ruby/init.zsh b/modules/ruby/init.zsh index b5ab77d0..b287cbb2 100644 --- a/modules/ruby/init.zsh +++ b/modules/ruby/init.zsh @@ -17,11 +17,11 @@ if [[ -s "$HOME/.rvm/scripts/rvm" ]]; then # Load manually installed rbenv into the shell session. elif [[ -s "$HOME/.rbenv/bin/rbenv" ]]; then path=("$HOME/.rbenv/bin" $path) - eval "$(rbenv init - zsh)" + eval "$(rbenv init - --no-rehash zsh)" # Load package manager installed rbenv into the shell session. elif (( $+commands[rbenv] )); then - eval "$(rbenv init - zsh)" + eval "$(rbenv init - --no-rehash zsh)" # Install local gems according to operating system conventions. else diff --git a/runcoms/zlogin b/runcoms/zlogin index 9e315775..e27e2332 100644 --- a/runcoms/zlogin +++ b/runcoms/zlogin @@ -9,7 +9,7 @@ { # Compile the completion dump to increase startup speed. zcompdump="${ZDOTDIR:-$HOME}/.zcompdump" - if [[ "$zcompdump" -nt "${zcompdump}.zwc" || ! -s "${zcompdump}.zwc" ]]; then + if [[ -s "$zcompdump" && (! -s "${zcompdump}.zwc" || "$zcompdump" -nt "${zcompdump}.zwc") ]]; then zcompile "$zcompdump" fi