1
0
mirror of https://github.com/dcarrillo/prezto.git synced 2025-07-01 18:39:26 +00:00

Compare commits

..

30 Commits

Author SHA1 Message Date
9ab6ab0d66 Added alias expansion and fixed README 2014-11-11 22:43:15 -05:00
0a3d29ce5e Added explainshell module 2014-11-11 22:43:15 -05:00
366cadecf0 If a default Ruby is set, switch to it
Set PATH variables to allow gems such as Bundler to be found and for the
`ruby-info` function to properly work.

A default Ruby must be set in ~/.ruby-version; for more information, see
https://github.com/postmodern/chruby#default-ruby.

Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-11-11 22:38:24 -05:00
3debe8bdf6 Inform on how to add SSH identities to Keychain
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-11-11 21:18:59 -05:00
d349c1cec7 Convert the PeepCode theme to git-info 2014-11-11 20:51:47 -05:00
a7a4912940 Add paradox theme 2014-11-11 20:51:46 -05:00
82710c29fc Fix theme function declaration style 2014-11-11 20:51:46 -05:00
9f82926f6e Add pure theme 2014-11-11 20:51:46 -05:00
61e91b8fb0 Add agnoster theme 2014-11-11 20:51:46 -05:00
967c91a351 Add powerline theme 2014-11-11 20:51:46 -05:00
087fce8548 Update sorin theme screenshot 2014-11-11 20:51:45 -05:00
2ae905a625 Indicate inside Emacs 2014-11-11 20:51:45 -05:00
19fc31c342 Indicate SSH connections 2014-11-11 20:51:45 -05:00
e76df6022d Add cloud theme
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-11-11 20:51:44 -05:00
c2d62c3b47 Add ruby-info to smiley theme 2014-11-11 20:51:44 -05:00
03336db523 Add smiley theme
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-11-11 20:51:44 -05:00
1bc4235a5e Escape '%' in path 2014-11-11 20:51:44 -05:00
c078c47c9d Add damoekri theme
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-11-11 20:51:44 -05:00
0bede677e6 Add kylewest theme 2014-11-11 20:51:44 -05:00
ad09f29fd5 Add skwp theme 2014-11-11 20:51:42 -05:00
567506f7e7 Update giddie theme
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-11-05 22:52:38 -05:00
13ed3a1bf7 Add giddie theme 2014-11-05 22:52:38 -05:00
6f9c1666e1 Use short apothegms only in fortune 2014-11-05 17:43:43 -05:00
ab7f697734 [Fix #713] Set prompt theme off in unsupported terminal 2014-11-05 17:41:36 -05:00
d020d34e59 Fix node-info to show right node version
Currently, node-info shows nothing if $version is different than 'none'.
2014-10-19 17:21:54 +07:00
17a6124b43 Fix git log pretty format argument 2014-10-18 16:32:49 +02:00
3c47c57c87 [Fix #698] Describe module in README the same as in code 2014-10-15 18:54:24 -04:00
ff0cdd3ed7 Fix typo in Perl module readme 2014-10-15 18:49:47 -04:00
b948e3630b Load Homebrew installed NVM 2014-10-13 11:57:20 -04:00
55e4db9429 Enable 'acls', 'xattrs' support in rsync whenever available
rsync has support for these available in most cases and isn't
specific to Mac OS X any more.

Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-10-12 19:20:55 -04:00
33 changed files with 792 additions and 79 deletions

9
.gitmodules vendored
View File

@ -7,3 +7,12 @@
[submodule "modules/completion/external"] [submodule "modules/completion/external"]
path = modules/completion/external path = modules/completion/external
url = https://github.com/zsh-users/zsh-completions.git url = https://github.com/zsh-users/zsh-completions.git
[submodule "modules/prompt/external/powerline"]
path = modules/prompt/external/powerline
url = https://github.com/davidjrice/prezto_powerline.git
[submodule "modules/prompt/external/agnoster"]
path = modules/prompt/external/agnoster
url = https://gist.github.com/3712874.git
[submodule "modules/prompt/functions/pure"]
path = modules/prompt/external/pure
url = https://github.com/sindresorhus/pure.git

View File

@ -107,7 +107,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
[1]: http://www.zsh.org [1]: http://www.zsh.org
[2]: http://i.imgur.com/nBEEZ.png "sorin theme" [2]: http://i.imgur.com/AzjmpwM.png "sorin theme"
[3]: http://git-scm.com [3]: http://git-scm.com
[4]: https://github.com [4]: https://github.com
[5]: http://gitimmersion.com [5]: http://gitimmersion.com

View File

@ -0,0 +1,11 @@
#Explainshell
Adds a keybinding and a function to open
[explainshell.com](http://www.explainshell.com) with the content of the command
line.
##Settings
###Key-Binding
The keybinding to open [explainshell.com](http://www.explainshell.com)
`zstyle ':prezto:module:explainshell' key-binding '^K'`

View File

@ -0,0 +1,63 @@
#
# Adds a explain function and explainshell widget
#
# Authors
# C Lentfort
#
function _expand_alias_recursive {
local _alias
for word in "$@"; do
# Check if word is aliased
_alias=$aliases[$word]
if [ -n "$_alias" ]; then
# Check if found alias and given command are identical
if [[ "$_alias" != "${(j: :)@}" ]]; then
_expand_alias_recursive "${(z)_alias}"
else
_explainshell_expanded_buffer+=$1
fi
else
_explainshell_expanded_buffer+=$word
fi
done
}
function explain {
local url
# We don't explain empty buffers
if (( $# == 0 )); then
return 1;
fi
# Replace aliases with their actual expansions
_explainshell_expanded_buffer=()
_expand_alias_recursive $@
_explainshell_expanded_buffer=(${(u)_explainshell_expanded_buffer})
# base url with first command already injected
# $ explain tar
# => http://explainshel.com/explain/tar?args=
url="http://explainshell.com/explain?cmd="
# iterates over remaining args and adds builds the rest of the url
for i in "$_explainshell_expanded_buffer"; do
url=$url"$i""+"
done
unset _explainshell_expanded_buffer
# opens url in browser
$BROWSER -t $url &> /dev/null
}
function explainshell {
explain ${(z)BUFFER}
}
zle -N explainshell
zstyle -s ':prezto:module:explainshell' key-binding 'key_binding'
if [[ -n "$key_binding" ]]; then
bindkey "$key_binding" explainshell
fi
unset key_binding

View File

@ -100,12 +100,12 @@ alias gix='git rm -r --cached'
alias giX='git rm -rf --cached' alias giX='git rm -rf --cached'
# Log (l) # Log (l)
alias gl='git log --topo-order --pretty=format:${_git_log_medium_format}' alias gl='git log --topo-order --pretty=format:"${_git_log_medium_format}"'
alias gls='git log --topo-order --stat --pretty=format:${_git_log_medium_format}' alias gls='git log --topo-order --stat --pretty=format:"${_git_log_medium_format}"'
alias gld='git log --topo-order --stat --patch --full-diff --pretty=format:${_git_log_medium_format}' alias gld='git log --topo-order --stat --patch --full-diff --pretty=format:"${_git_log_medium_format}"'
alias glo='git log --topo-order --pretty=format:${_git_log_oneline_format}' alias glo='git log --topo-order --pretty=format:"${_git_log_oneline_format}"'
alias glg='git log --topo-order --all --graph --pretty=format:${_git_log_oneline_format}' alias glg='git log --topo-order --all --graph --pretty=format:"${_git_log_oneline_format}"'
alias glb='git log --topo-order --pretty=format:${_git_log_brief_format}' alias glb='git log --topo-order --pretty=format:"${_git_log_brief_format}"'
alias glc='git shortlog --summary --numbered' alias glc='git shortlog --summary --numbered'
# Merge (m) # Merge (m)

View File

@ -1,7 +1,7 @@
GNU Utility GNU Utility
=========== ===========
Provides for the interactive use of GNU utilities on non-GNU systems. Provides for the interactive use of GNU utilities on BSD systems.
Installing GNU utilities on non-GNU systems in `$PATH` without a prefix, i.e. 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 `ls` instead of `gls`, is not recommended since scripts that target other

View File

@ -17,7 +17,7 @@ if (( $+functions[nvm_version] )); then
version="${$(nvm_version)#v}" version="${$(nvm_version)#v}"
fi fi
if [[ "$version" == (none|) ]]; then if [[ "$version" != (none|) ]]; then
zstyle -s ':prezto:module:node:info:version' format 'version_format' zstyle -s ':prezto:module:node:info:version' format 'version_format'
zformat -f version_formatted "$version_format" "v:$version" zformat -f version_formatted "$version_format" "v:$version"
node_info[version]="$version_formatted" node_info[version]="$version_formatted"

View File

@ -6,9 +6,13 @@
# Zeh Rizzatti <zehrizzatti@gmail.com> # Zeh Rizzatti <zehrizzatti@gmail.com>
# #
# Load NVM into the shell session. # Load manually installed NVM into the shell session.
if [[ -s "$HOME/.nvm/nvm.sh" ]]; then if [[ -s "$HOME/.nvm/nvm.sh" ]]; then
source "$HOME/.nvm/nvm.sh" source "$HOME/.nvm/nvm.sh"
# Load package manager installed NVM into the shell session.
elif (( $+commands[brew] )) && [[ -d "$(brew --prefix nvm 2>/dev/null)" ]]; then
source $(brew --prefix nvm)/nvm.sh
fi fi
# Return if requirements are not found. # Return if requirements are not found.

View File

@ -1,7 +1,7 @@
Perl Perl
==== ====
Enables local [Perl][1] module installation on Mac OS X and defines alises. Enables local [Perl][1] module installation on Mac OS X and defines aliases.
Local Module Installation Local Module Installation
------------------------- -------------------------

1
modules/prompt/external/pure vendored Submodule

View File

@ -0,0 +1 @@
../external/agnoster/agnoster.zsh-theme

View File

@ -0,0 +1,121 @@
#
# A minimal two-color theme.
#
# Authors:
# Kevin Laude <nerfyoda@gmail.com>
#
# Features:
# - One line, left aligned.
# - The prompt is prefixed by a character sequence of your choice.
# - Only displays the current directory instead of the full path.
# - Displays the current branch when in a git project (this requires loading
# the git module before prompt in ~/.zpreztorc).
# - Displays a character at the end of the prompt when in a git project with
# "dirty" files.
#
# Usage:
# This prompt's prefix symbol and colors are customizable:
# prompt cloud [<symbol>] [<color1>] [<color2>]
#
# In ~/.zpreztorc:
# zstyle ':prezto:module:prompt' theme 'cloud' \
# ['<symbol>'] \
# ['<color1>'] \
# ['<color2>']
#
# If these options are not provided, the symbol defaults to "☁" with colors
# cyan and green.
#
# Screenshots:
# http://i.imgur.com/mJCZ8rE.png
#
# Note:
# This is a port of the oh-my-zsh cloud theme, originally written by Phillip
# Ridlen <p@rdln.net> and Mark Drago <markdrago@gmail.com>
#
# Load dependencies.
pmodload 'helper'
function prompt_cloud_precmd {
setopt LOCAL_OPTIONS
unsetopt XTRACE KSH_ARRAYS
# Get Git repository information.
if (( $+functions[git-info] )); then
git-info
fi
}
function prompt_cloud_help {
cat <<EOT
This prompt's prefix symbol and colors are customizable:
prompt cloud [<symbol>] [<color1>] [<color2>]
In ~/.zpreztorc:
zstyle ':prezto:module:prompt' theme 'cloud' ['<symbol>'] ['<color1>'] ['<color2>']
If these options are not provided, the symbol defaults to ☁ with colors cyan
and green.
EOT
}
function prompt_cloud_preview {
if (( $# > 0 )); then
prompt_preview_theme 'cloud' "$@"
else
prompt_preview_theme 'cloud'
print
prompt_preview_theme 'cloud' "✯"
print
prompt_preview_theme 'cloud' ">" "yellow" "red"
fi
}
function prompt_cloud_setup {
setopt LOCAL_OPTIONS
unsetopt XTRACE KSH_ARRAYS
prompt_opts=(cr percent subst)
# Set the theme prefix to a cloud or to the user's given characters.
if [[ -n "$1" ]]; then
prefix="$1"
else
prefix='☁'
fi
# Assign colors.
if [[ -n "$2" ]]; then
primary_color="$2"
else
primary_color='cyan'
fi
if [[ -n "$3" ]]; then
secondary_color="$3"
else
secondary_color='green'
fi
# Load required functions.
autoload -Uz add-zsh-hook
# Add hook for calling git-info before each command.
add-zsh-hook precmd prompt_cloud_precmd
# Set git-info parameters.
zstyle ':prezto:module:git:info' verbose 'yes'
zstyle ':prezto:module:git:info:dirty' format "%%B%F{$secondary_color}]%f%%b %F{yellow}⚡%f"
zstyle ':prezto:module:git:info:clean' format "%B%F{$secondary_color}]%f%b"
zstyle ':prezto:module:git:info:branch' format "%%B%F{$secondary_color}[%f%%b%%B%F{$primary_color}%b%f%%b"
zstyle ':prezto:module:git:info:keys' format \
'prompt' '%b%C%D' \
'rprompt' ''
# Define prompts.
PROMPT='%B%F{$primary_color}${prefix}%f%b %B%F{$secondary_color}%c%f%b $git_info[prompt] '
RPROMPT=''
}
prompt_cloud_setup "$@"

View File

@ -0,0 +1,76 @@
#
# A simple theme inspired by the Sorin and PeepCode themes.
#
# Authors:
# Daniel Møller Kristensen <damoekri@icloud.com>
#
# Screenshots:
# http://i.imgur.com/AX9HnPF.png
#
# Load dependencies.
pmodload 'helper'
function prompt_damoekri_pwd {
local pwd="${PWD/#$HOME/~}"
if [[ "$pwd" == (#m)[/~] ]]; then
_prompt_damoekri_pwd="$MATCH"
unset MATCH
else
_prompt_damoekri_pwd="${${${${(@j:/:M)${(@s:/:)pwd}##.#?}:h}%/}//\%/%%}/${${pwd:t}//\%/%%}"
fi
}
function prompt_damoekri_precmd {
setopt LOCAL_OPTIONS
unsetopt XTRACE KSH_ARRAYS
# Format PWD.
prompt_damoekri_pwd
# Get Git repository information.
if (( $+functions[git-info] )); then
git-info
fi
# Get Ruby version information.
if (( $+functions[ruby-info] )); then
ruby-info
fi
}
function prompt_damoekri_setup {
setopt LOCAL_OPTIONS
unsetopt XTRACE KSH_ARRAYS
prompt_opts=(cr percent subst)
# Load required functions.
autoload -Uz add-zsh-hook
# Add hook for calling git-info and ruby-info before each command.
add-zsh-hook precmd prompt_damoekri_precmd
# Set editor-info parameters.
zstyle ':prezto:module:editor:info:keymap:primary' format ' %F{green}»%f'
# Set git-info parameters.
zstyle ':prezto:module:git:info' verbose 'yes'
zstyle ':prezto:module:git:info:action' format ':%F{magenta}%s%f'
zstyle ':prezto:module:git:info:branch' format '%F{blue}%b%f'
zstyle ':prezto:module:git:info:clean' format ' %F{green}✔%f'
zstyle ':prezto:module:git:info:dirty' format ' %F{red}✗%f'
zstyle ':prezto:module:git:info:commit' format '%F{blue}%.7c%f'
zstyle ':prezto:module:git:info:position' format '%F{blue}%p%f'
zstyle ':prezto:module:git:info:keys' format \
'rprompt' ' $(coalesce "%b" "%p" "%c")%s%C%D'
# Set ruby-info parameters.
zstyle ':prezto:module:ruby:info:version' format ' %F{yellow}%v%f'
# Define prompts.
PROMPT='%F{cyan}${_prompt_damoekri_pwd}%f${editor_info[keymap]} '
RPROMPT='${git_info:+${(e)git_info[rprompt]}}${ruby_info:+${ruby_info[version]}}'
}
prompt_damoekri_setup "$@"

View File

@ -0,0 +1,76 @@
#
# A colorful, friendly, multiline theme with some handy features.
#
# Authors:
# Paul Gideon Dann <pdgiddie@gmail.com>
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# 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 +vi-set_novcs_prompt_symbol {
_prompt_giddie_symbol=')'
}
function +vi-set_vcs_prompt_symbol {
_prompt_giddie_symbol='±'
}
function +vi-git_precmd {
# Check for untracked files, since vcs_info does not.
if [[ -n $(git ls-files --other --exclude-standard 2> /dev/null) ]]; then
hook_com[unstaged]+='%F{green}?%f'
fi
}
function prompt_giddie_precmd {
# Replace '/home/<user>' with '~'.
_prompt_giddie_pwd="${PWD/#$HOME/~}"
vcs_info
}
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 hook to set up prompt parameters before each command.
add-zsh-hook precmd prompt_giddie_precmd
# Set editor-info parameters.
zstyle ':prezto:module:editor:info:completing' format '%F{green}...%f'
zstyle ':prezto:module:editor:info:keymap:alternate' format '%F{yellow}--- COMMAND ---%f'
# Set vcs_info parameters.
zstyle ':vcs_info:*' check-for-changes true
zstyle ':vcs_info:*' formats ' on %F{magenta}%b%f%c%u'
zstyle ':vcs_info:*' actionformats ' on %F{magenta}%b%f%c%u %F{yellow}(%a)%f'
zstyle ':vcs_info:*' stagedstr '%F{green}+%f'
zstyle ':vcs_info:*' unstagedstr '%F{green}!%f'
# Set vcs_info hooks.
# NOTE: Prior to Zsh v4.3.12, there are no static hooks, no vcs_info_hookadd
# function, and no 'no-vcs' hook.
zstyle ':vcs_info:*+start-up:*' hooks set_novcs_prompt_symbol
zstyle ':vcs_info:git*+set-message:*' hooks set_vcs_prompt_symbol git_precmd
zstyle ':vcs_info:*+set-message:*' hooks set_vcs_prompt_symbol
# 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='${editor_info[keymap]}'
SPROMPT='zsh: correct %F{magenta}%R%f to %F{green}%r%f [nyae]? '
}
prompt_giddie_setup "$@"

View File

@ -0,0 +1,65 @@
#
# A single line theme with Git information on the left and Ruby on the right.
#
# Authors:
# Kyle West <kswest@gmail.com>
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# Features:
# - Indicates dirty Git repository.
# - Indicates the Ruby version.
# - Indicates vi modes.
#
# Screenshots:
# http://i.imgur.com/dCwhynn.png
#
function prompt_kylewest_precmd {
setopt LOCAL_OPTIONS
unsetopt XTRACE KSH_ARRAYS
# Get Git repository information.
if (( $+functions[git-info] )); then
git-info
fi
# Get Ruby information.
if (( $+functions[ruby-info] )); then
ruby-info
fi
}
function prompt_kylewest_setup {
setopt LOCAL_OPTIONS
unsetopt XTRACE KSH_ARRAYS
prompt_opts=(cr percent subst)
# Load required functions.
autoload -Uz add-zsh-hook
# Add hook for calling git-info before each command.
add-zsh-hook precmd prompt_kylewest_precmd
# Set editor-info parameters.
zstyle ':prezto:module:editor:info:completing' format '%B%F{red}...%f%b'
zstyle ':prezto:module:editor:info:keymap:primary' format "%B%F{green}%f%b"
zstyle ':prezto:module:editor:info:keymap:alternate' format "%B%F{magenta}%f%b"
# Set git-info parameters.
zstyle ':prezto:module:git:info' verbose 'no'
zstyle ':prezto:module:git:info:branch' format '%F{yellow}%b%f'
zstyle ':prezto:module:git:info:dirty' format '%B%F{red}!%f%b'
zstyle ':prezto:module:git:info:indexed' format ' '
zstyle ':prezto:module:git:info:unindexed' format ' '
zstyle ':prezto:module:git:info:untracked' format ' '
zstyle ':prezto:module:git:info:keys' format 'prompt' '- %b%D '
# Set ruby-info parameters.
zstyle ':prezto:module:ruby:info:version' format '%F{blue}[%v]%f'
# Define prompts.
PROMPT='%F{cyan}%c%f ${git_info[prompt]}${editor_info[keymap]} '
RPROMPT='${ruby_info[version]}'
}
prompt_kylewest_setup "$@"

View File

@ -9,7 +9,7 @@
# http://i.imgur.com/zLZNK.png # http://i.imgur.com/zLZNK.png
# #
function +vi-git-status() { function +vi-git_status {
# Check for untracked files or updated submodules since vcs_info does not. # Check for untracked files or updated submodules since vcs_info does not.
if [[ -n $(git ls-files --other --exclude-standard 2> /dev/null) ]]; then if [[ -n $(git ls-files --other --exclude-standard 2> /dev/null) ]]; then
hook_com[unstaged]='%F{red}●%f' hook_com[unstaged]='%F{red}●%f'
@ -40,7 +40,7 @@ function prompt_minimal_setup {
zstyle ':vcs_info:*' formats ' - [%b%c%u]' zstyle ':vcs_info:*' formats ' - [%b%c%u]'
zstyle ':vcs_info:*' actionformats " - [%b%c%u|%F{cyan}%a%f]" zstyle ':vcs_info:*' actionformats " - [%b%c%u|%F{cyan}%a%f]"
zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b|%F{cyan}%r%f' zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b|%F{cyan}%r%f'
zstyle ':vcs_info:git*+set-message:*' hooks git-status zstyle ':vcs_info:git*+set-message:*' hooks git_status
# Define prompts. # Define prompts.
PROMPT='%2~${vcs_info_msg_0_} » ' PROMPT='%2~${vcs_info_msg_0_} » '

View File

@ -0,0 +1,154 @@
#
# A two-line, Powerline-inspired theme that displays contextual information.
#
# This theme requires a patched Powerline font, get them from
# https://github.com/Lokaltog/powerline-fonts.
#
# Authors:
# Isaac Wolkerstorfer <i@agnoster.net>
# Jeff Sandberg <paradox460@gmail.com>
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# Screenshots:
# http://i.imgur.com/0XIWX.png
#
# Load dependencies.
pmodload 'helper'
# Define variables.
_prompt_paradox_current_bg='NONE'
_prompt_paradox_segment_separator='⮀'
_prompt_paradox_start_time=$SECONDS
function prompt_paradox_start_segment {
local bg fg
[[ -n "$1" ]] && bg="%K{$1}" || bg="%k"
[[ -n "$2" ]] && fg="%F{$2}" || fg="%f"
if [[ "$_prompt_paradox_current_bg" != 'NONE' && "$1" != "$_prompt_paradox_current_bg" ]]; then
print -n " $bg%F{$_prompt_paradox_current_bg}$_prompt_paradox_segment_separator$fg "
else
print -n "$bg$fg "
fi
_prompt_paradox_current_bg="$1"
[[ -n "$3" ]] && print -n "$3"
}
function prompt_paradox_end_segment {
if [[ -n "$_prompt_paradox_current_bg" ]]; then
print -n " %k%F{$_prompt_paradox_current_bg}$_prompt_paradox_segment_separator"
else
print -n "%k"
fi
print -n "%f"
_prompt_paradox_current_bg=''
}
function prompt_paradox_build_prompt {
prompt_paradox_start_segment black default '%(?::%F{red}✘ )%(!:%F{yellow}⚡ :)%(1j:%F{cyan}⚙ :)%F{blue}%n%F{red}@%F{green}%m%f'
prompt_paradox_start_segment blue black '$_prompt_paradox_pwd'
if [[ -n "$git_info" ]]; then
prompt_paradox_start_segment green black '${(e)git_info[ref]}${(e)git_info[status]}'
fi
prompt_paradox_end_segment
}
function prompt_paradox_pwd {
local pwd="${PWD/#$HOME/~}"
if [[ "$pwd" == (#m)[/~] ]]; then
_prompt_paradox_pwd="$MATCH"
unset MATCH
else
_prompt_paradox_pwd="${${${${(@j:/:M)${(@s:/:)pwd}##.#?}:h}%/}//\%/%%}/${${pwd:t}//\%/%%}"
fi
}
function prompt_paradox_print_elapsed_time {
local end_time=$(( SECONDS - _prompt_paradox_start_time ))
local hours minutes seconds remainder
if (( end_time >= 3600 )); then
hours=$(( end_time / 3600 ))
remainder=$(( end_time % 3600 ))
minutes=$(( remainder / 60 ))
seconds=$(( remainder % 60 ))
print -P "%B%F{red}>>> elapsed time ${hours}h${minutes}m${seconds}s%b"
elif (( end_time >= 60 )); then
minutes=$(( end_time / 60 ))
seconds=$(( end_time % 60 ))
print -P "%B%F{yellow}>>> elapsed time ${minutes}m${seconds}s%b"
elif (( end_time > 10 )); then
print -P "%B%F{green}>>> elapsed time ${end_time}s%b"
fi
}
function prompt_paradox_precmd {
setopt LOCAL_OPTIONS
unsetopt XTRACE KSH_ARRAYS
# Format PWD.
prompt_paradox_pwd
# Get Git repository information.
if (( $+functions[git-info] )); then
git-info
fi
# Calculate and print the elapsed time.
prompt_paradox_print_elapsed_time
}
function prompt_paradox_preexec {
_prompt_paradox_start_time="$SECONDS"
}
function prompt_paradox_setup {
setopt LOCAL_OPTIONS
unsetopt XTRACE KSH_ARRAYS
prompt_opts=(cr percent subst)
# Load required functions.
autoload -Uz add-zsh-hook
# Add hook for calling git-info before each command.
add-zsh-hook preexec prompt_paradox_preexec
add-zsh-hook precmd prompt_paradox_precmd
# Set editor-info parameters.
zstyle ':prezto:module:editor:info:completing' format '%B%F{red}...%f%b'
zstyle ':prezto:module:editor:info:keymap:primary' format '%B%F{blue}%f%b'
zstyle ':prezto:module:editor:info:keymap:primary:overwrite' format '%F{red}♺%f'
zstyle ':prezto:module:editor:info:keymap:alternate' format '%B%F{red}%f%b'
# Set git-info parameters.
zstyle ':prezto:module:git:info' verbose 'yes'
zstyle ':prezto:module:git:info:action' format ' ⁝ %s'
zstyle ':prezto:module:git:info:added' format ' ✚'
zstyle ':prezto:module:git:info:ahead' format ' ⬆'
zstyle ':prezto:module:git:info:behind' format ' ⬇'
zstyle ':prezto:module:git:info:branch' format '⭠ %b'
zstyle ':prezto:module:git:info:commit' format '➦ %.7c'
zstyle ':prezto:module:git:info:deleted' format ' ✖'
zstyle ':prezto:module:git:info:dirty' format ' ⁝'
zstyle ':prezto:module:git:info:modified' format ' ✱'
zstyle ':prezto:module:git:info:position' format '%p'
zstyle ':prezto:module:git:info:renamed' format ' ➙'
zstyle ':prezto:module:git:info:stashed' format ' S'
zstyle ':prezto:module:git:info:unmerged' format ' ═'
zstyle ':prezto:module:git:info:untracked' format ' ?'
zstyle ':prezto:module:git:info:keys' format \
'ref' '$(coalesce "%b" "%p" "%c")' \
'status' '%s%D%A%B%S%a%d%m%r%U%u'
# Define prompts.
PROMPT='
${(e)$(prompt_paradox_build_prompt)}
${editor_info[keymap]} '
RPROMPT='%F{blue}[%F{green}%D{%H:%M:%S}%F{blue}]%f'
SPROMPT='zsh: correct %F{red}%R%f to %F{green}%r%f [nyae]? '
}
prompt_paradox_setup "$@"

View File

@ -10,16 +10,13 @@
# http://i.imgur.com/LhgmW.png # http://i.imgur.com/LhgmW.png
# #
function +vi-git-status() {
# Check for untracked files or updated submodules since vcs_info does not.
if [[ -n $(git ls-files --other --exclude-standard 2> /dev/null) ]]; then
hook_com[unstaged]=' %F{8}✗%f'
fi
}
function prompt_peepcode_precmd { function prompt_peepcode_precmd {
vcs_info # Get Git repository information.
if (( $+functions[git-info] )); then
git-info
fi
# Get Ruby information.
if (( $+functions[ruby-info] )); then if (( $+functions[ruby-info] )); then
ruby-info ruby-info
fi fi
@ -34,18 +31,19 @@ function prompt_peepcode_setup {
autoload -Uz add-zsh-hook autoload -Uz add-zsh-hook
autoload -Uz vcs_info autoload -Uz vcs_info
# Add hook for calling vcs_info before each command. # Add a hook for calling info functions before each command.
add-zsh-hook precmd prompt_peepcode_precmd add-zsh-hook precmd prompt_peepcode_precmd
# Set vcs_info parameters. # Set git-info parameters.
zstyle ':vcs_info:*' enable git zstyle ':prezto:module:git:info' verbose 'no'
zstyle ':vcs_info:*' check-for-changes true zstyle ':prezto:module:git:info:action' format ' +%s'
zstyle ':vcs_info:*' get-revision true zstyle ':prezto:module:git:info:branch' format ' %F{8}%b%f'
zstyle ':vcs_info:*' use-simple true zstyle ':prezto:module:git:info:commit' format ' %F{white}%.7c%f'
zstyle ':vcs_info:*' unstagedstr ' %F{8}✗%f' zstyle ':prezto:module:git:info:indexed' format ' '
zstyle ':vcs_info:*' formats ' %F{8}%b%f %F{white}%.7i%f%u' zstyle ':prezto:module:git:info:unindexed' format ' '
zstyle ':vcs_info:*' actionformats ' %F{8}%b%f %F{white}%.7i%f +%a%u' zstyle ':prezto:module:git:info:untracked' format ' '
zstyle ':vcs_info:git*+set-message:*' hooks git-status zstyle ':prezto:module:git:info:dirty' format ' %F{8}✗%f'
zstyle ':prezto:module:git:info:keys' format 'rprompt' '%b%c%s%D'
# Set ruby-info parameters. # Set ruby-info parameters.
zstyle ':prezto:module:ruby:info:version' format ' %F{white}%v%f' zstyle ':prezto:module:ruby:info:version' format ' %F{white}%v%f'
@ -54,7 +52,7 @@ function prompt_peepcode_setup {
PROMPT=" PROMPT="
%~ %~
%(?.%F{green}${1:-☻ }%f.%F{red}${1:-☻ }%f) " %(?.%F{green}${1:-☻ }%f.%F{red}${1:-☻ }%f) "
RPROMPT='${ruby_info[version]}${vcs_info_msg_0_}' RPROMPT='${ruby_info[version]}${git_info[rprompt]}'
} }

View File

@ -0,0 +1 @@
../external/powerline/prompt_powerline_setup

View File

@ -0,0 +1 @@
../external/pure/pure.zsh

View File

@ -0,0 +1,75 @@
#
# A single line theme with Git information on the left and Ruby on the right.
#
# Authors:
# Steve Losh <steve@stevelosh.com>
# Bart Trojanowski <bart@jukie.net>
# Brian Carper <brian@carper.ca>
# steeef <steeef@gmail.com>
# Sorin Ionescu <sorin.ionescu@gmail.com>
# Yan Pritzker <yan@pritzker.ws>
#
# Screenshots:
# http://i.imgur.com/gLgVp6Y.png
#
function prompt_skwp_precmd {
# Get Git repository information.
if (( $+functions[git-info] )); then
git-info
fi
# Get Ruby information.
if (( $+functions[ruby-info] )); then
ruby-info
fi
}
function prompt_skwp_setup {
setopt LOCAL_OPTIONS
unsetopt XTRACE KSH_ARRAYS
prompt_opts=(cr percent subst)
# Load required functions.
autoload -Uz add-zsh-hook
# Add hook to set up prompt parameters before each command.
add-zsh-hook precmd prompt_skwp_precmd
# Use extended color pallete if available.
if [[ $TERM = *256color* || $TERM = *rxvt* ]]; then
_prompt_skwp_colors=(
"%F{81}" # Turquoise
"%F{166}" # Orange
"%F{135}" # Purple
"%F{161}" # Hotpink
"%F{118}" # Limegreen
)
else
_prompt_skwp_colors=(
"%F{cyan}"
"%F{yellow}"
"%F{magenta}"
"%F{red}"
"%F{green}"
)
fi
# Set git-info parameters.
zstyle ':prezto:module:git:info' verbose 'yes'
zstyle ':prezto:module:git:info:branch' format "${_prompt_skwp_colors[1]}%b%f"
zstyle ':prezto:module:git:info:added' format "${_prompt_skwp_colors[5]}●%f"
zstyle ':prezto:module:git:info:deleted' format "${_prompt_skwp_colors[2]}●%f"
zstyle ':prezto:module:git:info:modified' format "${_prompt_skwp_colors[4]}●%f"
zstyle ':prezto:module:git:info:untracked' format "${_prompt_skwp_colors[3]}●%f"
zstyle ':prezto:module:git:info:keys' format 'prompt' '(%b%d%a%m%u)'
# Set ruby-info parameters.
zstyle ':prezto:module:ruby:info:version' format '[%v]'
# Define prompts.
PROMPT="${_prompt_skwp_colors[3]}%n%f@${_prompt_skwp_colors[2]}%m%f ${_prompt_skwp_colors[5]}%~%f "'$git_info[prompt]'"$ "
RPROMPT='%F{blue}${ruby_info[version]}'
}
prompt_skwp_setup "$@"

View File

@ -0,0 +1,65 @@
#
# A simple theme that displays:
# - Python virtual environment.
# - Git branch.
# - Git state.
# - Last command exit state (smiley/X).
#
# Authors:
# Nadav Shatz <nadavshatz@gmail.com>
#
# Screenshots:
# http://i.imgur.com/ijycV6n.png
#
# Load dependencies.
pmodload 'helper'
function prompt_smiley_precmd {
unsetopt XTRACE KSH_ARRAYS
# Get Git repository information.
if (( $+functions[git-info] )); then
git-info
fi
# Get Python environment information.
if (( $+functions[python-info] )); then
python-info
fi
# Get Ruby version information.
if (( $+functions[ruby-info] )); then
ruby-info
fi
}
function prompt_smiley_setup {
unsetopt XTRACE KSH_ARRAYS
prompt_opts=(percent subst)
# Add hook for calling git-info before each command.
add-zsh-hook precmd prompt_smiley_precmd
# Set editor-info parameters.
zstyle ':prezto:module:editor:info:completing' format '%B%F{red}...%f%b'
# Set python-info parameters.
zstyle ':prezto:module:python:info:virtualenv' format '%F{yellow}[%v]%f '
# Set ruby-info parameters.
zstyle ':prezto:module:ruby:info:version' format '%F{yellow}[%v]%f '
# Set git-info parameters.
zstyle ':prezto:module:git:info' verbose 'yes'
zstyle ':prezto:module:git:info:branch' format '%F{blue}%b%f'
zstyle ':prezto:module:git:info:dirty' format '%%B%F{red} ±%f%%b'
zstyle ':prezto:module:git:info:keys' format 'prompt' '(%b%D)'
# Define prompts.
PROMPT='$python_info[virtualenv]$ruby_info[version]${git_info[prompt]} %B%c%b %(?:%F{green}ツ%f:%F{red}✖%f) '
RPROMPT='${editor_info[overwrite]}${VIM:+" %B%F{green}V%f%b"}'
SPROMPT='zsh: correct %F{red}%R%f to %F{green}%r%f [nyae]? '
}
prompt_smiley_setup "$@"

View File

@ -5,7 +5,7 @@
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# #
# Screenshots: # Screenshots:
# http://i.imgur.com/nBEEZ.png # http://i.imgur.com/AzjmpwM.png
# #
# Load dependencies. # Load dependencies.
@ -72,8 +72,8 @@ function prompt_sorin_setup {
'rprompt' '%A%B%S%a%d%m%r%U%u' 'rprompt' '%A%B%S%a%d%m%r%U%u'
# Define prompts. # Define prompts.
PROMPT='%F{cyan}${_prompt_sorin_pwd}%f${git_info:+${(e)git_info[prompt]}}%(!. %B%F{red}#%f%b.)${editor_info[keymap]} ' PROMPT='${SSH_TTY:+"%F{red}%n%f@%F{yellow}%m%f "}%F{cyan}${_prompt_sorin_pwd}%f${git_info:+${(e)git_info[prompt]}}%(!. %B%F{red}#%f%b.)${editor_info[keymap]} '
RPROMPT='${editor_info[overwrite]}%(?:: %F{red}⏎%f)${VIM:+" %B%F{green}V%f%b"}${git_info[rprompt]}' RPROMPT='${editor_info[overwrite]}%(?:: %F{red}⏎%f)${VIM:+" %B%F{green}V%f%b"}${INSIDE_EMACS:+" %B%F{green}E%f%b"}${git_info[rprompt]}'
SPROMPT='zsh: correct %F{red}%R%f to %F{green}%r%f [nyae]? ' SPROMPT='zsh: correct %F{red}%R%f to %F{green}%r%f [nyae]? '
} }

View File

@ -10,9 +10,9 @@ autoload -Uz promptinit && promptinit
# Load the prompt theme. # Load the prompt theme.
zstyle -a ':prezto:module:prompt' theme 'prompt_argv' zstyle -a ':prezto:module:prompt' theme 'prompt_argv'
if (( $#prompt_argv > 0 )); then if [[ "$TERM" == (dumb|linux|*bsd*) ]] || (( $#prompt_argv < 1 )); then
prompt "$prompt_argv[@]"
else
prompt 'off' prompt 'off'
else
prompt "$prompt_argv[@]"
fi fi
unset prompt_argv unset prompt_argv

View File

@ -16,10 +16,14 @@ fi
_rsync_cmd='rsync --verbose --progress --human-readable --compress --archive --hard-links --one-file-system' _rsync_cmd='rsync --verbose --progress --human-readable --compress --archive --hard-links --one-file-system'
if grep -q 'xattrs' <(rsync --help 2>&1); then
_rsync_cmd="${_rsync_cmd} --acls --xattrs"
fi
# Mac OS X and HFS+ Enhancements # Mac OS X and HFS+ Enhancements
# http://help.bombich.com/kb/overview/credits#opensource # http://help.bombich.com/kb/overview/credits#opensource
if [[ "$OSTYPE" == darwin* ]] && grep -q 'file-flags' <(rsync --help 2>&1); then if [[ "$OSTYPE" == darwin* ]] && grep -q 'file-flags' <(rsync --help 2>&1); then
_rsync_cmd="${_rsync_cmd} --crtimes --acls --xattrs --fileflags --protect-decmpfs --force-change" _rsync_cmd="${_rsync_cmd} --crtimes --fileflags --protect-decmpfs --force-change"
fi fi
alias rsync-copy="${_rsync_cmd}" alias rsync-copy="${_rsync_cmd}"

View File

@ -28,6 +28,9 @@ elif (( $+commands[chruby-exec] )); then
source "${commands[chruby-exec]:h:h}/share/chruby/chruby.sh" source "${commands[chruby-exec]:h:h}/share/chruby/chruby.sh"
if zstyle -t ':prezto:module:ruby:chruby' auto-switch; then if zstyle -t ':prezto:module:ruby:chruby' auto-switch; then
source "${commands[chruby-exec]:h:h}/share/chruby/auto.sh" source "${commands[chruby-exec]:h:h}/share/chruby/auto.sh"
# If a default Ruby is set, switch to it.
chruby_auto
fi fi
# Prepend local gems bin directories to PATH. # Prepend local gems bin directories to PATH.

View File

@ -4,7 +4,8 @@ SSH
Provides for an easier use of [SSH][1] by setting up [ssh-agent][2]. Provides for an easier use of [SSH][1] by setting up [ssh-agent][2].
This module is disabled on Mac OS X due to custom Apple SSH support rendering it This module is disabled on Mac OS X due to custom Apple SSH support rendering it
unnecessary. unnecessary. Use `ssh-add -K` to store identities in Keychain; they will be
added to `ssh-agent` automatically and persist between reboots.
Settings Settings
-------- --------

View File

@ -13,19 +13,14 @@ directory, add the following to *zpreztorc*:
zstyle ':prezto:module:terminal' auto-title 'yes' zstyle ':prezto:module:terminal' auto-title 'yes'
Auto titling is disabled inside terminal multiplexers (except inside dvtm) Auto titling is disabled inside terminal multiplexers, except inside dvtm, since
since it interferes with window names defined in configuration files and it interferes with window names defined in configuration files and profile
profile managers. This can be overridden by setting it to `always`. managers.
zstyle ':prezto:module:terminal' auto-title 'always'
### Title formats
To format terminal window and tab titles, add the following to *zpreztorc*: To format terminal window and tab titles, add the following to *zpreztorc*:
zstyle ':prezto:module:terminal:window-title' format '%n@%m: %s' zstyle ':prezto:module:terminal:window-title' format '%n@%m: %s'
zstyle ':prezto:module:terminal:tab-title' format '%m: %s' zstyle ':prezto:module:terminal:tab-title' format '%m: %s'
zstyle ':prezto:module:terminal:multiplexer-title' format '%s'
`%s` will be replaced with the current working directory path or the currently `%s` will be replaced with the current working directory path or the currently
executing program name. executing program name.
@ -36,8 +31,7 @@ Functions
--------- ---------
- `set-tab-title` sets the terminal tab title. - `set-tab-title` sets the terminal tab title.
- `set-window-title` sets the terminal window title. - `set-window-title` sets the terminal or terminal multiplexer window title.
- `set-multiplexer-title` sets the terminal multiplexer title.
Authors Authors
------- -------
@ -45,7 +39,6 @@ Authors
*The authors of this module should be contacted via the [issue tracker][2].* *The authors of this module should be contacted via the [issue tracker][2].*
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
- [Olaf Conradi](https://github.com/oohlaf)
[1]: http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html#Expansion-of-Prompt-Sequences [1]: http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html#Expansion-of-Prompt-Sequences
[2]: https://github.com/sorin-ionescu/prezto/issues [2]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -3,7 +3,6 @@
# #
# Authors: # Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# Olaf Conradi <olaf@conradi.org>
# #
# Return if requirements are not found. # Return if requirements are not found.
@ -11,12 +10,19 @@ if [[ "$TERM" == (dumb|linux|*bsd*) ]]; then
return 1 return 1
fi fi
# Sets the terminal window title. # Sets the terminal or terminal multiplexer window title.
function set-window-title { function set-window-title {
local title_format{,ted} local title_format{,ted}
zstyle -s ':prezto:module:terminal:window-title' format 'title_format' || title_format="%s" zstyle -s ':prezto:module:terminal:window-title' format 'title_format' || title_format="%s"
zformat -f title_formatted "$title_format" "s:$argv" zformat -f title_formatted "$title_format" "s:$argv"
printf '\e]2;%s\a' "${(V%)title_formatted}"
if [[ "$TERM" == screen* ]]; then
title_format="\ek%s\e\\"
else
title_format="\e]2;%s\a"
fi
printf "$title_format" "${(V%)title_formatted}"
} }
# Sets the terminal tab title. # Sets the terminal tab title.
@ -24,15 +30,8 @@ function set-tab-title {
local title_format{,ted} local title_format{,ted}
zstyle -s ':prezto:module:terminal:tab-title' format 'title_format' || title_format="%s" zstyle -s ':prezto:module:terminal:tab-title' format 'title_format' || title_format="%s"
zformat -f title_formatted "$title_format" "s:$argv" zformat -f title_formatted "$title_format" "s:$argv"
printf '\e]1;%s\a' "${(V%)title_formatted}"
}
# Sets the terminal multiplexer tab title. printf "\e]1;%s\a" ${(V%)title_formatted}
function set-multiplexer-title {
local title_format{,ted}
zstyle -s ':prezto:module:terminal:multiplexer-title' format 'title_format' || title_format="%s"
zformat -f title_formatted "$title_format" "s:$argv"
printf '\ek%s\e\\' "${(V%)title_formatted}"
} }
# Sets the tab and window titles with a given command. # Sets the tab and window titles with a given command.
@ -60,11 +59,8 @@ function _terminal-set-titles-with-command {
local truncated_cmd="${cmd/(#m)?(#c15,)/${MATCH[1,12]}...}" local truncated_cmd="${cmd/(#m)?(#c15,)/${MATCH[1,12]}...}"
unset MATCH unset MATCH
if [[ "$TERM" == screen* ]]; then
set-multiplexer-title "$truncated_cmd"
fi
set-tab-title "$truncated_cmd"
set-window-title "$cmd" set-window-title "$cmd"
set-tab-title "$truncated_cmd"
fi fi
} }
@ -78,11 +74,8 @@ function _terminal-set-titles-with-path {
local truncated_path="${abbreviated_path/(#m)?(#c15,)/...${MATCH[-12,-1]}}" local truncated_path="${abbreviated_path/(#m)?(#c15,)/...${MATCH[-12,-1]}}"
unset MATCH unset MATCH
if [[ "$TERM" == screen* ]]; then
set-multiplexer-title "$truncated_path"
fi
set-tab-title "$truncated_path"
set-window-title "$abbreviated_path" set-window-title "$abbreviated_path"
set-tab-title "$truncated_path"
} }
# Do not override precmd/preexec; append to the hook array. # Do not override precmd/preexec; append to the hook array.
@ -117,13 +110,12 @@ then
fi fi
# Set up non-Apple terminals. # Set up non-Apple terminals.
if zstyle -t ':prezto:module:terminal' auto-title 'always' \ if zstyle -t ':prezto:module:terminal' auto-title \
|| (zstyle -t ':prezto:module:terminal' auto-title \ && ( ! [[ -n "$STY" || -n "$TMUX" ]] )
&& ( ! [[ -n "$STY" || -n "$TMUX" ]] ))
then then
# Sets titles before the prompt is displayed. # Sets the tab and window titles before the prompt is displayed.
add-zsh-hook precmd _terminal-set-titles-with-path add-zsh-hook precmd _terminal-set-titles-with-path
# Sets titles before command execution. # Sets the tab and window titles before command execution.
add-zsh-hook preexec _terminal-set-titles-with-command add-zsh-hook preexec _terminal-set-titles-with-command
fi fi

View File

@ -17,7 +17,7 @@
# Print a random, hopefully interesting, adage. # Print a random, hopefully interesting, adage.
if (( $+commands[fortune] )); then if (( $+commands[fortune] )); then
if [[ -t 0 || -t 1 ]]; then if [[ -t 0 || -t 1 ]]; then
fortune -a fortune -s
print print
fi fi
fi fi

View File

@ -143,9 +143,6 @@ zstyle ':prezto:module:prompt' theme 'sorin'
# Set the tab title format. # Set the tab title format.
# zstyle ':prezto:module:terminal:tab-title' format '%m: %s' # zstyle ':prezto:module:terminal:tab-title' format '%m: %s'
# Set the terminal multiplexer title format.
# zstyle ':prezto:module:terminal:multiplexer-title' format '%s'
# #
# Tmux # Tmux
# #