ZSH: Switch from zprezto to zgen
This commit is contained in:
parent
39900faf2e
commit
c7de2307a4
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,4 +1,5 @@
|
||||||
vim/bundle/
|
vim/bundle/
|
||||||
vimperator/info/
|
vimperator/info/
|
||||||
tmp/
|
tmp/
|
||||||
|
zsh/cache
|
||||||
Gemfile.lock
|
Gemfile.lock
|
||||||
|
|
|
@ -13,7 +13,10 @@ alias bru='brew update && brew upgrade --all'
|
||||||
# Tools
|
# Tools
|
||||||
alias codekit='open -a CodeKit'
|
alias codekit='open -a CodeKit'
|
||||||
alias ag='nocorrect noglob ag'
|
alias ag='nocorrect noglob ag'
|
||||||
alias ln="${aliases[ln]:-ln} -v" # Verbose ln
|
alias ls="ls -G"
|
||||||
|
alias l="ls -l"
|
||||||
|
alias ll="ls -l"
|
||||||
|
alias ln="ln -v" # Verbose ln
|
||||||
alias wget='wget -c' # Resume dl if possible
|
alias wget='wget -c' # Resume dl if possible
|
||||||
alias rsyncd='rsync -va --delete' # Hard sync two directories
|
alias rsyncd='rsync -va --delete' # Hard sync two directories
|
||||||
zman() { PAGER="less -g -s '+/^ "$1"'" man zshall; }
|
zman() { PAGER="less -g -s '+/^ "$1"'" man zshall; }
|
||||||
|
@ -40,7 +43,6 @@ if is-callable 'transmission-remote'; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Editors
|
# Editors
|
||||||
unalias e
|
|
||||||
v() { [ $# -eq 0 ] && vim . || vim $@ }
|
v() { [ $# -eq 0 ] && vim . || vim $@ }
|
||||||
e() { # emacs
|
e() { # emacs
|
||||||
local input
|
local input
|
117
zsh/completion.zsh
Normal file
117
zsh/completion.zsh
Normal file
|
@ -0,0 +1,117 @@
|
||||||
|
# Return if requirements are not found.
|
||||||
|
[[ "$TERM" == 'dumb' ]] && return 1
|
||||||
|
|
||||||
|
# Load and initialize the completion system ignoring insecure directories.
|
||||||
|
autoload -Uz compinit && compinit -i
|
||||||
|
|
||||||
|
## Options
|
||||||
|
setopt COMPLETE_IN_WORD # Complete from both ends of a word.
|
||||||
|
setopt ALWAYS_TO_END # Move cursor to the end of a completed word.
|
||||||
|
setopt PATH_DIRS # Perform path search even on command names with slashes.
|
||||||
|
setopt AUTO_MENU # Show completion menu on a successive tab press.
|
||||||
|
setopt AUTO_LIST # Automatically list choices on ambiguous completion.
|
||||||
|
setopt AUTO_PARAM_SLASH # If completed parameter is a directory, add a trailing slash.
|
||||||
|
unsetopt MENU_COMPLETE # Do not autoselect the first completion entry.
|
||||||
|
unsetopt FLOW_CONTROL # Disable start/stop characters in shell editor.
|
||||||
|
|
||||||
|
# Use caching to make completion for commands such as dpkg and apt usable.
|
||||||
|
zstyle ':completion::complete:*' use-cache on
|
||||||
|
zstyle ':completion::complete:*' cache-path "${ZDOTDIR:-$HOME}/.zcompcache"
|
||||||
|
|
||||||
|
# Case-insensitive (all), partial-word, and then substring completion.
|
||||||
|
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
|
||||||
|
unsetopt CASE_GLOB
|
||||||
|
|
||||||
|
# Group matches and describe.
|
||||||
|
zstyle ':completion:*:*:*:*:*' menu select
|
||||||
|
zstyle ':completion:*:matches' group 'yes'
|
||||||
|
zstyle ':completion:*:options' description 'yes'
|
||||||
|
zstyle ':completion:*:options' auto-description '%d'
|
||||||
|
zstyle ':completion:*:corrections' format ' %F{green}-- %d (errors: %e) --%f'
|
||||||
|
zstyle ':completion:*:descriptions' format ' %F{yellow}-- %d --%f'
|
||||||
|
zstyle ':completion:*:messages' format ' %F{purple} -- %d --%f'
|
||||||
|
zstyle ':completion:*:warnings' format ' %F{red}-- no matches found --%f'
|
||||||
|
zstyle ':completion:*:default' list-prompt '%S%M matches%s'
|
||||||
|
zstyle ':completion:*' format ' %F{yellow}-- %d --%f'
|
||||||
|
zstyle ':completion:*' group-name ''
|
||||||
|
zstyle ':completion:*' verbose yes
|
||||||
|
|
||||||
|
# Fuzzy match mistyped completions.
|
||||||
|
zstyle ':completion:*' completer _complete _match _approximate
|
||||||
|
zstyle ':completion:*:match:*' original only
|
||||||
|
zstyle ':completion:*:approximate:*' max-errors 1 numeric
|
||||||
|
|
||||||
|
# Increase the number of errors based on the length of the typed word.
|
||||||
|
zstyle -e ':completion:*:approximate:*' max-errors 'reply=($((($#PREFIX+$#SUFFIX)/3))numeric)'
|
||||||
|
|
||||||
|
# Don't complete unavailable commands.
|
||||||
|
zstyle ':completion:*:functions' ignored-patterns '(_*|pre(cmd|exec))'
|
||||||
|
|
||||||
|
# Array completion element sorting.
|
||||||
|
zstyle ':completion:*:*:-subscript-:*' tag-order indexes parameters
|
||||||
|
|
||||||
|
# Directories
|
||||||
|
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
|
||||||
|
zstyle ':completion:*:*:cd:*' tag-order local-directories directory-stack path-directories
|
||||||
|
zstyle ':completion:*:*:cd:*:directory-stack' menu yes select
|
||||||
|
zstyle ':completion:*:-tilde-:*' group-order 'named-directories' 'path-directories' 'users' 'expand'
|
||||||
|
zstyle ':completion:*' squeeze-slashes true
|
||||||
|
|
||||||
|
# History
|
||||||
|
zstyle ':completion:*:history-words' stop yes
|
||||||
|
zstyle ':completion:*:history-words' remove-all-dups yes
|
||||||
|
zstyle ':completion:*:history-words' list false
|
||||||
|
zstyle ':completion:*:history-words' menu yes
|
||||||
|
|
||||||
|
# Environmental Variables
|
||||||
|
zstyle ':completion::*:(-command-|export):*' fake-parameters ${${${_comps[(I)-value-*]#*,}%%,*}:#-*-}
|
||||||
|
|
||||||
|
# Populate hostname completion.
|
||||||
|
zstyle -e ':completion:*:hosts' hosts 'reply=(
|
||||||
|
${=${=${=${${(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 }:#*\**}:#*\?*}}
|
||||||
|
)'
|
||||||
|
|
||||||
|
# Don't complete uninteresting users...
|
||||||
|
zstyle ':completion:*:*:*:users' ignored-patterns \
|
||||||
|
adm amanda apache avahi beaglidx bin cacti canna clamav daemon \
|
||||||
|
dbus distcache dovecot fax ftp games gdm gkrellmd gopher \
|
||||||
|
hacluster haldaemon halt hsqldb ident junkbust ldap lp mail \
|
||||||
|
mailman mailnull mldonkey mysql nagios \
|
||||||
|
named netdump news nfsnobody nobody nscd ntp nut nx openvpn \
|
||||||
|
operator pcap postfix postgres privoxy pulse pvm quagga radvd \
|
||||||
|
rpc rpcuser rpm shutdown squid sshd sync uucp vcsa xfs '_*'
|
||||||
|
|
||||||
|
# ... unless we really want to.
|
||||||
|
zstyle '*' single-ignored show
|
||||||
|
|
||||||
|
# Ignore multiple entries.
|
||||||
|
zstyle ':completion:*:(rm|kill|diff):*' ignore-line other
|
||||||
|
zstyle ':completion:*:rm:*' file-patterns '*:all-files'
|
||||||
|
|
||||||
|
# Kill
|
||||||
|
zstyle ':completion:*:*:*:*:processes' command 'ps -u $LOGNAME -o pid,user,command -w'
|
||||||
|
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;36=0=01'
|
||||||
|
zstyle ':completion:*:*:kill:*' menu yes select
|
||||||
|
zstyle ':completion:*:*:kill:*' force-list always
|
||||||
|
zstyle ':completion:*:*:kill:*' insert-ids single
|
||||||
|
|
||||||
|
# Man
|
||||||
|
zstyle ':completion:*:manuals' separate-sections true
|
||||||
|
zstyle ':completion:*:manuals.(^1*)' insert-sections true
|
||||||
|
|
||||||
|
# Media Players
|
||||||
|
zstyle ':completion:*:*:mpg123:*' file-patterns '*.(mp3|MP3):mp3\ files *(-/):directories'
|
||||||
|
zstyle ':completion:*:*:mpg321:*' file-patterns '*.(mp3|MP3):mp3\ files *(-/):directories'
|
||||||
|
zstyle ':completion:*:*:ogg123:*' file-patterns '*.(ogg|OGG|flac):ogg\ files *(-/):directories'
|
||||||
|
zstyle ':completion:*:*:mocp:*' file-patterns '*.(wav|WAV|mp3|MP3|ogg|OGG|flac):ogg\ files *(-/):directories'
|
||||||
|
|
||||||
|
# SSH/SCP/RSYNC
|
||||||
|
zstyle ':completion:*:(scp|rsync):*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *'
|
||||||
|
zstyle ':completion:*:(scp|rsync):*' group-order users files all-files hosts-domain hosts-host hosts-ipaddr
|
||||||
|
zstyle ':completion:*:ssh:*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *'
|
||||||
|
zstyle ':completion:*:ssh:*' group-order users hosts-domain hosts-host users hosts-ipaddr
|
||||||
|
zstyle ':completion:*:(ssh|scp|rsync):*:hosts-host' ignored-patterns '*(.|:)*' loopback ip6-loopback localhost ip6-localhost broadcasthost
|
||||||
|
zstyle ':completion:*:(ssh|scp|rsync):*:hosts-domain' ignored-patterns '<->.<->.<->.<->' '^[-[:alnum:]]##(.[-[:alnum:]]##)##' '*@*'
|
||||||
|
zstyle ':completion:*:(ssh|scp|rsync):*:hosts-ipaddr' ignored-patterns '^(<->.<->.<->.<->|(|::)([[:xdigit:].]##:(#c,2))##(|%*))' '127.0.0.<->' '255.255.255.255' '::1' 'fe80::*'
|
|
@ -1,151 +0,0 @@
|
||||||
#compdef doing
|
|
||||||
|
|
||||||
local ret=1 state
|
|
||||||
|
|
||||||
_arguments \
|
|
||||||
':subcommand:->subcommand' \
|
|
||||||
'*::options:->options' && ret=0
|
|
||||||
|
|
||||||
case $state in
|
|
||||||
subcommand)
|
|
||||||
local -a subcommands
|
|
||||||
subcommands=(
|
|
||||||
'help:Shows a list of commands or help for one command'
|
|
||||||
'now:Add an entry'
|
|
||||||
'note:Add a note to the last entry'
|
|
||||||
'meanwhile:Finish any running @meanwhile tasks and optionally create a new one'
|
|
||||||
'later:Add an item to the Later section'
|
|
||||||
'done:Add a completed item with @done(date). No argument finishes last entry.'
|
|
||||||
'finish:Mark last X entries as @done'
|
|
||||||
'tag:Tag last entry'
|
|
||||||
'mark:Mark last entry as highlighted'
|
|
||||||
'show:List all entries'
|
|
||||||
'grep:Search for entries'
|
|
||||||
'recent:List recent entries'
|
|
||||||
'today:List entries from today'
|
|
||||||
'yesterday:List entries from yesterday'
|
|
||||||
'last:Show the last entry'
|
|
||||||
'sections:List sections'
|
|
||||||
'choose:Select a section to display from a menu'
|
|
||||||
'add_section:Add a new section to the "doing" file'
|
|
||||||
'view:Display a user-created view'
|
|
||||||
'views:List available custom views'
|
|
||||||
'archive:Move entries in between sections'
|
|
||||||
'open:Open the "doing" file in an editor'
|
|
||||||
'config:Edit the configuration file'
|
|
||||||
'undo:Undo the last change to the doing_file'
|
|
||||||
)
|
|
||||||
_describe -t subcommands 'doing subcommand' subcommands && ret=0
|
|
||||||
;;
|
|
||||||
|
|
||||||
options)
|
|
||||||
age=({-a,--age=}"[Age (oldest/newest) (default: newest)]")
|
|
||||||
app=({-a,--app=}"[Edit entry with specified app (default: none)")
|
|
||||||
archive=({-a,--archive}"[Archive previous @meanwhile entry]")
|
|
||||||
back="--back=[Backdate start time (4pm|20m|2h|yesterday noon) (default: none)]"
|
|
||||||
boolean=({-b,--boolean=}"[Tag boolean (AND,OR,NONE) (default: OR)]")
|
|
||||||
bool=({-b,--bool=}"[Tag boolean (default: AND)]")
|
|
||||||
count=({-c,--count=}"[How many recent entries to tag (default: 1)]")
|
|
||||||
count=({-c,--count=}"[Max count to show (default: 0)]")
|
|
||||||
date=({-d,--date}"[Include date (default: enabled)]")
|
|
||||||
editor=( {-e,--editor}"[Edit entry with $EDITOR]")
|
|
||||||
finish=({-f,--finish_last}"[Timed entry, marks last entry in section as @done]")
|
|
||||||
file=({-f,--file=}"[Specify alternate doing file (default: none)]")
|
|
||||||
noarchive="--no-archive[Don't archive previous @meanwhile entry]"
|
|
||||||
nodate="--no-date[Don't include date]"
|
|
||||||
noeditor="--no-editor[Don't edit entry with $EDITOR]"
|
|
||||||
note=({-n,--note=}"[Note (default: none)]")
|
|
||||||
notimes="--no-times[Don't show time intervals on @done tasks.]"
|
|
||||||
nototals="--no-totals[Don't show intervals with totals at the end of output]"
|
|
||||||
output=({-o,--output=}"[Output to export format (csv|html) (default: none)]")
|
|
||||||
remove=({-r,--remove}"[Replace/Remove last entry's note]")
|
|
||||||
section=({-s,--section=}"[Section (default: Currently)]")
|
|
||||||
sort=({-s,--sort=}"[Sort order (asc/desc) (default: asc)]")
|
|
||||||
times=({-t,--times}"[Show time intervals on @done tasks (default: enabled)]")
|
|
||||||
took=({-t,--took=}"[Set completion date to start date plus XX(mhd) or (HH:MM) (default: none)]")
|
|
||||||
totals="--totals[Show intervals with totals at the end of output]"
|
|
||||||
|
|
||||||
case $words[1] in
|
|
||||||
now)
|
|
||||||
args=( $back $noeditor $editor $note $section $finish )
|
|
||||||
;;
|
|
||||||
|
|
||||||
note)
|
|
||||||
args=( $section $editor $remove )
|
|
||||||
;;
|
|
||||||
|
|
||||||
meanwhile)
|
|
||||||
args=( $back $noeditor $editor $note $section $archive $noarchive )
|
|
||||||
;;
|
|
||||||
|
|
||||||
later)
|
|
||||||
args=( $back $noeditor $editor $note $app )
|
|
||||||
;;
|
|
||||||
|
|
||||||
done)
|
|
||||||
args=( $back $took $section {-r,--remove}"[Remove @done tag]" $date $nodate $archive $editor $noeditor )
|
|
||||||
;;
|
|
||||||
|
|
||||||
finish)
|
|
||||||
args=( $back $took $section $date $nodate $archive $editor $noeditor )
|
|
||||||
;;
|
|
||||||
|
|
||||||
tag)
|
|
||||||
args=( $section $count $date $remove )
|
|
||||||
;;
|
|
||||||
|
|
||||||
mark)
|
|
||||||
args=( $section $remove )
|
|
||||||
;;
|
|
||||||
|
|
||||||
show)
|
|
||||||
args=( $boolean $count $age $sort $output $times $notimes $totals $nototals )
|
|
||||||
;;
|
|
||||||
|
|
||||||
grep)
|
|
||||||
args=( $section $output $times $notimes $totals $nototals )
|
|
||||||
;;
|
|
||||||
|
|
||||||
recent)
|
|
||||||
args=( $section $times $notimes $totals $nototals )
|
|
||||||
;;
|
|
||||||
|
|
||||||
today)
|
|
||||||
args=( $output $times $notimes $totals $nototals )
|
|
||||||
;;
|
|
||||||
|
|
||||||
yesterday)
|
|
||||||
args=( $output $times $notimes $totals $nototals )
|
|
||||||
;;
|
|
||||||
|
|
||||||
view)
|
|
||||||
args=( $section $count $output $times $notimes $totals $nototals )
|
|
||||||
;;
|
|
||||||
|
|
||||||
archive)
|
|
||||||
args=( $keep $to $bool )
|
|
||||||
;;
|
|
||||||
|
|
||||||
open)
|
|
||||||
args=(
|
|
||||||
"-a [open with app name (default:none)"
|
|
||||||
"-b [open with app bundle id (default: none)"
|
|
||||||
"-e [open with $EDITOR]"
|
|
||||||
)
|
|
||||||
;;
|
|
||||||
|
|
||||||
config)
|
|
||||||
args=( $editor )
|
|
||||||
;;
|
|
||||||
|
|
||||||
undo)
|
|
||||||
args=( $file )
|
|
||||||
;;
|
|
||||||
|
|
||||||
esac
|
|
||||||
|
|
||||||
_arguments $args && ret=0
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
return ret
|
|
25
zsh/config.zsh
Normal file
25
zsh/config.zsh
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
# Allow command line editing in an external editor.
|
||||||
|
autoload -Uz edit-command-line
|
||||||
|
zle -N edit-command-line
|
||||||
|
|
||||||
|
export GIT_MERGE_AUTOEDIT=no
|
||||||
|
unsetopt CORRECT_ALL
|
||||||
|
|
||||||
|
setopt append_history share_history extended_history
|
||||||
|
setopt histignorealldups histignorespace
|
||||||
|
setopt extended_glob
|
||||||
|
setopt longlistjobs
|
||||||
|
setopt nonomatch
|
||||||
|
setopt notify
|
||||||
|
setopt hash_list_all
|
||||||
|
|
||||||
|
# Don't send SIGHUP to background processes when the shell exits.
|
||||||
|
setopt nohup
|
||||||
|
|
||||||
|
setopt auto_cd
|
||||||
|
setopt auto_pushd
|
||||||
|
setopt pushd_ignore_dups
|
||||||
|
setopt nobeep
|
||||||
|
setopt noglobdots
|
||||||
|
setopt noshwordsplit
|
||||||
|
setopt unset
|
|
@ -1,26 +1,44 @@
|
||||||
export GIT_MERGE_AUTOEDIT=no
|
|
||||||
unsetopt CORRECT_ALL
|
|
||||||
|
|
||||||
|
|
||||||
#################
|
|
||||||
# Keybindings #
|
|
||||||
#################
|
|
||||||
|
|
||||||
bindkey -v
|
bindkey -v
|
||||||
bindkey '^ ' edit-command-line
|
bindkey '^ ' edit-command-line
|
||||||
|
|
||||||
bindkey -M viins '^w' backward-kill-word
|
bindkey -M viins '^w' backward-kill-word
|
||||||
bindkey -M viins '^a' beginning-of-line
|
|
||||||
bindkey -M viins '^e' end-of-line
|
|
||||||
bindkey -M viins '^[w' forward-word
|
bindkey -M viins '^[w' forward-word
|
||||||
bindkey -M viins '^[b' backward-word
|
bindkey -M viins '^[b' backward-word
|
||||||
|
|
||||||
|
bindkey -M vicmd 'yy' vi-yank-whole-line
|
||||||
|
bindkey -M vicmd 'Y' vi-yank-eol
|
||||||
|
|
||||||
|
bindkey -M vicmd '^r' redo
|
||||||
|
|
||||||
bindkey -M viins ' ' magic-space
|
bindkey -M viins ' ' magic-space
|
||||||
bindkey -M viins 'jk' vi-cmd-mode
|
bindkey -M viins 'jk' vi-cmd-mode
|
||||||
|
|
||||||
bindkey -M viins '^x^f' fasd-complete-f # C-x C-f to do fasd-complete-f (only files)
|
bindkey -M viins '^x^f' fasd-complete-f # C-x C-f to do fasd-complete-f (only files)
|
||||||
bindkey -M viins '^x^d' fasd-complete-d # C-x C-d to do fasd-complete-d (only directories)
|
bindkey -M viins '^x^d' fasd-complete-d # C-x C-d to do fasd-complete-d (only directories)
|
||||||
|
|
||||||
|
bindkey -M viins '^q' push-line-or-edit
|
||||||
|
|
||||||
|
bindkey -M vicmd "?" history-incremental-pattern-search-backward
|
||||||
|
bindkey -M vicmd "/" history-incremental-pattern-search-forward
|
||||||
|
|
||||||
|
# bind UP and DOWN arrow keys
|
||||||
|
zmodload zsh/terminfo
|
||||||
|
bindkey "$terminfo[kcuu1]" history-substring-search-up
|
||||||
|
bindkey "$terminfo[kcud1]" history-substring-search-down
|
||||||
|
# bind UP and DOWN arrow keys (compatibility fallback
|
||||||
|
# for Ubuntu 12.04, Fedora 21, and MacOSX 10.9 users)
|
||||||
|
bindkey '^[[A' history-substring-search-up
|
||||||
|
bindkey '^[[B' history-substring-search-down]]]]
|
||||||
|
|
||||||
|
# Edit command in an external editor.
|
||||||
|
bindkey -M vicmd "v" edit-command-line
|
||||||
|
|
||||||
|
# # Undo/Redo
|
||||||
|
bindkey -M vicmd "u" undo
|
||||||
|
bindkey -M vicmd "$key_info[Control]R" redo
|
||||||
|
|
||||||
|
bindkey -M viins "." expand-dot-to-parent-directory-path
|
||||||
|
|
||||||
# Completing words in buffer in tmux
|
# Completing words in buffer in tmux
|
||||||
if [ -n "$TMUX" ]; then
|
if [ -n "$TMUX" ]; then
|
||||||
_tmux_pane_words() {
|
_tmux_pane_words() {
|
||||||
|
@ -44,3 +62,13 @@ if [ -n "$TMUX" ]; then
|
||||||
zstyle ':completion:tmux-pane-words-(prefix|anywhere):*' ignore-line current
|
zstyle ':completion:tmux-pane-words-(prefix|anywhere):*' ignore-line current
|
||||||
zstyle ':completion:tmux-pane-words-anywhere:*' matcher-list 'b:=* m:{A-Za-z}={a-zA-Z}'
|
zstyle ':completion:tmux-pane-words-anywhere:*' matcher-list 'b:=* m:{A-Za-z}={a-zA-Z}'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Expands .... to ../..
|
||||||
|
function expand-dot-to-parent-directory-path {
|
||||||
|
if [[ $LBUFFER = *.. ]]; then
|
||||||
|
LBUFFER+='/..'
|
||||||
|
else
|
||||||
|
LBUFFER+='.'
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
zle -N expand-dot-to-parent-directory-path
|
111
zsh/preztorc
111
zsh/preztorc
|
@ -1,111 +0,0 @@
|
||||||
# Sets Prezto options.
|
|
||||||
|
|
||||||
[[ -s "${ZDOTDIR:-$HOME}/.zprezto/init.zsh" ]]
|
|
||||||
source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"
|
|
||||||
|
|
||||||
# General
|
|
||||||
|
|
||||||
zstyle ':prezto:module:prompt' theme 'pure'
|
|
||||||
|
|
||||||
# Set case-sensitivity for completion, history lookup, etc.
|
|
||||||
# zstyle ':prezto:*:*' case-sensitive 'yes'
|
|
||||||
|
|
||||||
# Color output (auto set to 'no' on dumb terminals).
|
|
||||||
zstyle ':prezto:*:*' color 'yes'
|
|
||||||
|
|
||||||
# Set the Zsh modules to load (man zshmodules).
|
|
||||||
# zstyle ':prezto:load' zmodule 'attr' 'stat'
|
|
||||||
|
|
||||||
# Set the Zsh functions to load (man zshcontrib).
|
|
||||||
zstyle ':prezto:load' zfunction 'zmv'
|
|
||||||
|
|
||||||
# Set the Prezto modules to load (browse modules).
|
|
||||||
# The order matters.
|
|
||||||
if [[ -z "$EMACS" ]]; then
|
|
||||||
zstyle ':prezto:load' pmodule \
|
|
||||||
'environment' \
|
|
||||||
'terminal' \
|
|
||||||
'editor' \
|
|
||||||
'opp' \
|
|
||||||
'history' \
|
|
||||||
'history-substring-search' \
|
|
||||||
'directory' \
|
|
||||||
'spectrum' \
|
|
||||||
'utility' \
|
|
||||||
'completion' \
|
|
||||||
'prompt' \
|
|
||||||
'syntax-highlighting' \
|
|
||||||
'git' \
|
|
||||||
'osx'
|
|
||||||
else
|
|
||||||
zstyle ':prezto:load' pmodule \
|
|
||||||
'environment' \
|
|
||||||
'history' \
|
|
||||||
'directory' \
|
|
||||||
'spectrum' \
|
|
||||||
'utility' \
|
|
||||||
'git' \
|
|
||||||
'osx'
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Editor
|
|
||||||
|
|
||||||
# Set the key mapping style to 'emacs' or 'vi'.
|
|
||||||
zstyle ':prezto:module:editor' key-bindings 'vi'
|
|
||||||
|
|
||||||
# Auto convert .... to ../..
|
|
||||||
zstyle ':prezto:module:editor' dot-expansion 'yes'
|
|
||||||
|
|
||||||
|
|
||||||
# Git
|
|
||||||
|
|
||||||
# Ignore submodules when they are 'dirty', 'untracked', 'all', or 'none'.
|
|
||||||
zstyle ':prezto:module:git:status:ignore' submodules 'all'
|
|
||||||
|
|
||||||
|
|
||||||
# GNU Utility
|
|
||||||
|
|
||||||
# Set the command prefix on non-GNU systems.
|
|
||||||
# zstyle ':prezto:module:gnu-utility' prefix 'g'
|
|
||||||
|
|
||||||
|
|
||||||
# History Substring Search
|
|
||||||
|
|
||||||
# Set the query found color.
|
|
||||||
# zstyle ':prezto:module:history-substring-search:color' found ''
|
|
||||||
|
|
||||||
# Set the query not found color.
|
|
||||||
# zstyle ':prezto:module:history-substring-search:color' not-found ''
|
|
||||||
|
|
||||||
# Set the search globbing flags.
|
|
||||||
# zstyle ':prezto:module:history-substring-search' globbing-flags ''
|
|
||||||
|
|
||||||
|
|
||||||
# SSH
|
|
||||||
|
|
||||||
# Set the SSH identities to load into the agent.
|
|
||||||
zstyle ':prezto:module:ssh:load' identities 'id_rsa' 'id_rsa2' 'id_github'
|
|
||||||
|
|
||||||
|
|
||||||
# Syntax Highlighting
|
|
||||||
|
|
||||||
# Set syntax highlighters.
|
|
||||||
# By default, only the main highlighter is enabled.
|
|
||||||
zstyle ':prezto:module:syntax-highlighting' highlighters \
|
|
||||||
'main' \
|
|
||||||
'brackets' \
|
|
||||||
'pattern' \
|
|
||||||
'cursor' \
|
|
||||||
'root'
|
|
||||||
|
|
||||||
# Terminal
|
|
||||||
|
|
||||||
# Auto set the tab and window titles.
|
|
||||||
zstyle ':prezto:module:terminal' auto-title 'yes'
|
|
||||||
|
|
||||||
# Set the window title format.
|
|
||||||
# zstyle ':prezto:module:terminal:window-title' format '%n@%m: %s'
|
|
||||||
|
|
||||||
# Set the tab title format.
|
|
||||||
# zstyle ':prezto:module:terminal:tab-title' format '%m: %s'
|
|
132
zsh/prompt.zsh
Normal file
132
zsh/prompt.zsh
Normal file
|
@ -0,0 +1,132 @@
|
||||||
|
# Based off Pure <https://github.com/sindresorhus/pure>
|
||||||
|
|
||||||
|
# For my own and others sanity
|
||||||
|
# git:
|
||||||
|
# %b => current branch
|
||||||
|
# %a => current action (rebase/merge)
|
||||||
|
# prompt:
|
||||||
|
# %F => color dict
|
||||||
|
# %f => reset color
|
||||||
|
# %~ => current path
|
||||||
|
# %* => time
|
||||||
|
# %n => username
|
||||||
|
# %m => shortname host
|
||||||
|
# %(?..) => prompt conditional - %(condition.true.false)
|
||||||
|
|
||||||
|
# turns seconds into human readable time
|
||||||
|
# 165392 => 1d 21h 56m 32s
|
||||||
|
prompt_pure_human_time() {
|
||||||
|
echo -n " "
|
||||||
|
local tmp=$1
|
||||||
|
local days=$(( tmp / 60 / 60 / 24 ))
|
||||||
|
local hours=$(( tmp / 60 / 60 % 24 ))
|
||||||
|
local minutes=$(( tmp / 60 % 60 ))
|
||||||
|
local seconds=$(( tmp % 60 ))
|
||||||
|
(( $days > 0 )) && echo -n "${days}d "
|
||||||
|
(( $hours > 0 )) && echo -n "${hours}h "
|
||||||
|
(( $minutes > 0 )) && echo -n "${minutes}m "
|
||||||
|
echo "${seconds}s"
|
||||||
|
}
|
||||||
|
|
||||||
|
# fastest possible way to check if repo is dirty
|
||||||
|
prompt_pure_git_dirty() {
|
||||||
|
# check if we're in a git repo
|
||||||
|
[[ "$(command git rev-parse --is-inside-work-tree 2>/dev/null)" == "true" ]] || return
|
||||||
|
# check if it's dirty
|
||||||
|
[[ "$PURE_GIT_UNTRACKED_DIRTY" == 0 ]] && local umode="-uno" || local umode="-unormal"
|
||||||
|
command test -n "$(git status --porcelain --ignore-submodules ${umode})"
|
||||||
|
|
||||||
|
(($? == 0)) && echo '*'
|
||||||
|
}
|
||||||
|
|
||||||
|
# displays the exec time of the last command if set threshold was exceeded
|
||||||
|
prompt_pure_cmd_exec_time() {
|
||||||
|
local stop=$EPOCHSECONDS
|
||||||
|
local start=${cmd_timestamp:-$stop}
|
||||||
|
integer elapsed=$stop-$start
|
||||||
|
(($elapsed > ${PURE_CMD_MAX_EXEC_TIME:=5})) && prompt_pure_human_time $elapsed
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt_pure_preexec() {
|
||||||
|
cmd_timestamp=$EPOCHSECONDS
|
||||||
|
|
||||||
|
# shows the current dir and executed command in the title when a process is active
|
||||||
|
print -Pn "\e]0;"
|
||||||
|
echo -nE "$PWD:t: $2"
|
||||||
|
print -Pn "\a"
|
||||||
|
}
|
||||||
|
|
||||||
|
# string length ignoring ansi escapes
|
||||||
|
prompt_pure_string_length() {
|
||||||
|
# Subtract one since newline is counted as two characters
|
||||||
|
echo $(( ${#${(S%%)1//(\%([KF1]|)\{*\}|\%[Bbkf])}} - 1 ))
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt_pure_precmd() {
|
||||||
|
# shows the full path in the title
|
||||||
|
print -Pn '\e]0;%~\a'
|
||||||
|
|
||||||
|
# git info
|
||||||
|
vcs_info
|
||||||
|
|
||||||
|
local prompt_pure_preprompt="%F{blue}%~%F{242}$vcs_info_msg_0_`prompt_pure_git_dirty`$prompt_pure_username%f%F{yellow}`prompt_pure_cmd_exec_time`%f"'$(vi_mode_prompt_info)'
|
||||||
|
# print -P $prompt_pure_preprompt
|
||||||
|
RPROMPT=$prompt_pure_preprompt
|
||||||
|
|
||||||
|
# check async if there is anything to pull
|
||||||
|
(( ${PURE_GIT_PULL:-1} )) && {
|
||||||
|
# check if we're in a git repo
|
||||||
|
[[ "$(command git rev-parse --is-inside-work-tree 2>/dev/null)" == "true" ]] &&
|
||||||
|
# make sure working tree is not $HOME
|
||||||
|
[[ "$(command git rev-parse --show-toplevel)" != "$HOME" ]] &&
|
||||||
|
# check check if there is anything to pull
|
||||||
|
command git -c gc.auto=0 fetch &>/dev/null &&
|
||||||
|
# check if there is an upstream configured for this branch
|
||||||
|
command git rev-parse --abbrev-ref @'{u}' &>/dev/null && {
|
||||||
|
local arrows=''
|
||||||
|
(( $(command git rev-list --right-only --count HEAD...@'{u}' 2>/dev/null) > 0 )) && arrows='⇣'
|
||||||
|
(( $(command git rev-list --left-only --count HEAD...@'{u}' 2>/dev/null) > 0 )) && arrows+='⇡'
|
||||||
|
RPROMPT+="\e7\e[A\e[1G\e[`prompt_pure_string_length $prompt_pure_preprompt`C%F{cyan}${arrows}%f\e8"
|
||||||
|
}
|
||||||
|
} &!
|
||||||
|
|
||||||
|
# reset value since `preexec` isn't always triggered
|
||||||
|
unset cmd_timestamp
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt_pure_setup() {
|
||||||
|
# prevent percentage showing up
|
||||||
|
# if output doesn't end with a newline
|
||||||
|
export PROMPT_EOL_MARK=''
|
||||||
|
|
||||||
|
# disable auth prompting on git 2.3+
|
||||||
|
export GIT_TERMINAL_PROMPT=0
|
||||||
|
|
||||||
|
prompt_opts=(cr subst percent)
|
||||||
|
|
||||||
|
setopt PROMPTSUBST
|
||||||
|
zmodload zsh/datetime
|
||||||
|
autoload -Uz add-zsh-hook
|
||||||
|
autoload -Uz vcs_info
|
||||||
|
|
||||||
|
add-zsh-hook precmd prompt_pure_precmd
|
||||||
|
add-zsh-hook preexec prompt_pure_preexec
|
||||||
|
|
||||||
|
zstyle ':vcs_info:*' enable git
|
||||||
|
zstyle ':vcs_info:*' use-simple true
|
||||||
|
zstyle ':vcs_info:git*' formats ' %b'
|
||||||
|
zstyle ':vcs_info:git*' actionformats ' %b|%a'
|
||||||
|
|
||||||
|
# show username@host if logged in through SSH
|
||||||
|
[[ "$SSH_CONNECTION" != '' ]] && prompt_pure_username=' %n@%m'
|
||||||
|
|
||||||
|
# show username@host if root, with username in white
|
||||||
|
[[ $UID -eq 0 ]] && prompt_pure_username=' %F{white}%n%F{242}@%m'
|
||||||
|
|
||||||
|
# prompt turns red if the previous command didn't exit with 0
|
||||||
|
N_MODE=" --NORMAL--"
|
||||||
|
I_MODE=""
|
||||||
|
PROMPT='%(?.%F{green}.%F{red}❯%F{green})❯ %f'
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt_pure_setup "$@"
|
|
@ -1,133 +0,0 @@
|
||||||
# Based off Pure <https://github.com/sindresorhus/pure>
|
|
||||||
|
|
||||||
# For my own and others sanity
|
|
||||||
# git:
|
|
||||||
# %b => current branch
|
|
||||||
# %a => current action (rebase/merge)
|
|
||||||
# prompt:
|
|
||||||
# %F => color dict
|
|
||||||
# %f => reset color
|
|
||||||
# %~ => current path
|
|
||||||
# %* => time
|
|
||||||
# %n => username
|
|
||||||
# %m => shortname host
|
|
||||||
# %(?..) => prompt conditional - %(condition.true.false)
|
|
||||||
|
|
||||||
# turns seconds into human readable time
|
|
||||||
# 165392 => 1d 21h 56m 32s
|
|
||||||
prompt_pure_human_time() {
|
|
||||||
echo -n " "
|
|
||||||
local tmp=$1
|
|
||||||
local days=$(( tmp / 60 / 60 / 24 ))
|
|
||||||
local hours=$(( tmp / 60 / 60 % 24 ))
|
|
||||||
local minutes=$(( tmp / 60 % 60 ))
|
|
||||||
local seconds=$(( tmp % 60 ))
|
|
||||||
(( $days > 0 )) && echo -n "${days}d "
|
|
||||||
(( $hours > 0 )) && echo -n "${hours}h "
|
|
||||||
(( $minutes > 0 )) && echo -n "${minutes}m "
|
|
||||||
echo "${seconds}s"
|
|
||||||
}
|
|
||||||
|
|
||||||
# fastest possible way to check if repo is dirty
|
|
||||||
prompt_pure_git_dirty() {
|
|
||||||
# check if we're in a git repo
|
|
||||||
[[ "$(command git rev-parse --is-inside-work-tree 2>/dev/null)" == "true" ]] || return
|
|
||||||
# check if it's dirty
|
|
||||||
[[ "$PURE_GIT_UNTRACKED_DIRTY" == 0 ]] && local umode="-uno" || local umode="-unormal"
|
|
||||||
command test -n "$(git status --porcelain --ignore-submodules ${umode})"
|
|
||||||
|
|
||||||
(($? == 0)) && echo '*'
|
|
||||||
}
|
|
||||||
|
|
||||||
# displays the exec time of the last command if set threshold was exceeded
|
|
||||||
prompt_pure_cmd_exec_time() {
|
|
||||||
local stop=$EPOCHSECONDS
|
|
||||||
local start=${cmd_timestamp:-$stop}
|
|
||||||
integer elapsed=$stop-$start
|
|
||||||
(($elapsed > ${PURE_CMD_MAX_EXEC_TIME:=5})) && prompt_pure_human_time $elapsed
|
|
||||||
}
|
|
||||||
|
|
||||||
prompt_pure_preexec() {
|
|
||||||
cmd_timestamp=$EPOCHSECONDS
|
|
||||||
|
|
||||||
# shows the current dir and executed command in the title when a process is active
|
|
||||||
print -Pn "\e]0;"
|
|
||||||
echo -nE "$PWD:t: $2"
|
|
||||||
print -Pn "\a"
|
|
||||||
}
|
|
||||||
|
|
||||||
# string length ignoring ansi escapes
|
|
||||||
prompt_pure_string_length() {
|
|
||||||
# Subtract one since newline is counted as two characters
|
|
||||||
echo $(( ${#${(S%%)1//(\%([KF1]|)\{*\}|\%[Bbkf])}} - 1 ))
|
|
||||||
}
|
|
||||||
|
|
||||||
prompt_pure_precmd() {
|
|
||||||
# shows the full path in the title
|
|
||||||
print -Pn '\e]0;%~\a'
|
|
||||||
|
|
||||||
# git info
|
|
||||||
vcs_info
|
|
||||||
|
|
||||||
local prompt_pure_preprompt="%F{blue}%~%F{242}$vcs_info_msg_0_`prompt_pure_git_dirty`$prompt_pure_username%f%F{yellow}`prompt_pure_cmd_exec_time`%f"
|
|
||||||
# print -P $prompt_pure_preprompt
|
|
||||||
RPROMPT=$prompt_pure_preprompt
|
|
||||||
|
|
||||||
# check async if there is anything to pull
|
|
||||||
(( ${PURE_GIT_PULL:-1} )) && {
|
|
||||||
# check if we're in a git repo
|
|
||||||
[[ "$(command git rev-parse --is-inside-work-tree 2>/dev/null)" == "true" ]] &&
|
|
||||||
# make sure working tree is not $HOME
|
|
||||||
[[ "$(command git rev-parse --show-toplevel)" != "$HOME" ]] &&
|
|
||||||
# check check if there is anything to pull
|
|
||||||
command git -c gc.auto=0 fetch &>/dev/null &&
|
|
||||||
# check if there is an upstream configured for this branch
|
|
||||||
command git rev-parse --abbrev-ref @'{u}' &>/dev/null && {
|
|
||||||
local arrows=''
|
|
||||||
(( $(command git rev-list --right-only --count HEAD...@'{u}' 2>/dev/null) > 0 )) && arrows='⇣'
|
|
||||||
(( $(command git rev-list --left-only --count HEAD...@'{u}' 2>/dev/null) > 0 )) && arrows+='⇡'
|
|
||||||
RPROMPT+="\e7\e[A\e[1G\e[`prompt_pure_string_length $prompt_pure_preprompt`C%F{cyan}${arrows}%f\e8"
|
|
||||||
}
|
|
||||||
} &!
|
|
||||||
|
|
||||||
# reset value since `preexec` isn't always triggered
|
|
||||||
unset cmd_timestamp
|
|
||||||
}
|
|
||||||
|
|
||||||
prompt_pure_setup() {
|
|
||||||
# prevent percentage showing up
|
|
||||||
# if output doesn't end with a newline
|
|
||||||
export PROMPT_EOL_MARK=''
|
|
||||||
|
|
||||||
# disable auth prompting on git 2.3+
|
|
||||||
export GIT_TERMINAL_PROMPT=0
|
|
||||||
|
|
||||||
prompt_opts=(cr subst percent)
|
|
||||||
|
|
||||||
zmodload zsh/datetime
|
|
||||||
autoload -Uz add-zsh-hook
|
|
||||||
autoload -Uz vcs_info
|
|
||||||
|
|
||||||
add-zsh-hook precmd prompt_pure_precmd
|
|
||||||
add-zsh-hook preexec prompt_pure_preexec
|
|
||||||
|
|
||||||
zstyle ':vcs_info:*' enable git
|
|
||||||
zstyle ':vcs_info:*' use-simple true
|
|
||||||
zstyle ':vcs_info:git*' formats ' %b'
|
|
||||||
zstyle ':vcs_info:git*' actionformats ' %b|%a'
|
|
||||||
|
|
||||||
# show username@host if logged in through SSH
|
|
||||||
[[ "$SSH_CONNECTION" != '' ]] && prompt_pure_username=' %n@%m'
|
|
||||||
|
|
||||||
# show username@host if root, with username in white
|
|
||||||
[[ $UID -eq 0 ]] && prompt_pure_username=' %F{white}%n%F{242}@%m'
|
|
||||||
|
|
||||||
zstyle ':prezto:module:editor:info:keymap:primary' format "❯%f"
|
|
||||||
zstyle ':prezto:module:editor:info:keymap:alternate' format "#%f"
|
|
||||||
|
|
||||||
# prompt turns red if the previous command didn't exit with 0
|
|
||||||
PROMPT='
|
|
||||||
%(?.%F{green}.%F{red}❯%F{green})${editor_info[keymap]} '
|
|
||||||
}
|
|
||||||
|
|
||||||
prompt_pure_setup "$@"
|
|
|
@ -1,61 +0,0 @@
|
||||||
#
|
|
||||||
# A simple theme based off sorin
|
|
||||||
#
|
|
||||||
|
|
||||||
# Load dependencies.
|
|
||||||
pmodload 'helper'
|
|
||||||
|
|
||||||
# Show the hostname if this is an SSH session
|
|
||||||
if [ ! -z "$SSH_CLIENT" ]; then
|
|
||||||
__prompt_host="%B%F{blue}[$(hostname | sed -e 's/\.local$//')]%f%b "
|
|
||||||
fi
|
|
||||||
|
|
||||||
function _prompt_pwd {
|
|
||||||
local pwd="${PWD/#$HOME/~}"
|
|
||||||
|
|
||||||
if [[ "$pwd" == (#m)[/~] ]]; then
|
|
||||||
__prompt_pwd="$MATCH"
|
|
||||||
unset MATCH
|
|
||||||
else
|
|
||||||
__prompt_pwd="${${${(@j:/:M)${(@s:/:)pwd}##.#?}:h}%/}/${pwd:t}"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Why not use prezto's git module? Because git-info seems like overkill.
|
|
||||||
function _prompt_git {
|
|
||||||
__prompt_git=$(git rev-parse --abbrev-ref HEAD 2>/dev/null)
|
|
||||||
if [[ -n "$__prompt_git" ]]; then
|
|
||||||
__prompt_git=" :%F{yellow}$__prompt_git"
|
|
||||||
if ! git -c diff.autorefreshindex=true diff --quiet -- .; then
|
|
||||||
__prompt_git+="%F{white}+"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function prompt_v0_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_git
|
|
||||||
add-zsh-hook precmd _prompt_pwd
|
|
||||||
|
|
||||||
# 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{red}❯%f%b'
|
|
||||||
zstyle ':prezto:module:editor:info:keymap:primary:overwrite' format '%F{red}♺%f'
|
|
||||||
zstyle ':prezto:module:editor:info:keymap:alternate' format '%B%F{green}❯%f%b'
|
|
||||||
|
|
||||||
# Add newline before prompt
|
|
||||||
precmd() { print "" }
|
|
||||||
|
|
||||||
# Define prompts.
|
|
||||||
PROMPT='${__prompt_host}%F{cyan}${__prompt_pwd} ${editor_info[keymap]} '
|
|
||||||
RPROMPT='%F{yellow}${__prompt_git:- }'
|
|
||||||
}
|
|
||||||
|
|
||||||
prompt_v0_setup "$@"
|
|
1
zsh/zgen
Submodule
1
zsh/zgen
Submodule
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 5517f92ae5658d05c555225490cc4bede12db00b
|
42
zshrc
42
zshrc
|
@ -1,20 +1,38 @@
|
||||||
# Source Prezto.
|
function is-callable {
|
||||||
if [[ -s "${ZDOTDIR:-$HOME}/.zprezto/init.zsh" ]]; then
|
(( $+commands[$1] )) || (( $+functions[$1] )) || (( $+aliases[$1] ))
|
||||||
source ~/.zsh/preztorc
|
}
|
||||||
source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"
|
|
||||||
else
|
|
||||||
echo "Prezto isn't installed! Run ~/.dotfiles/install.sh"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
source ~/.zsh/aliases
|
|
||||||
|
|
||||||
# Source component rcfiles
|
# Source component rcfiles
|
||||||
if [[ -z "$EMACS" ]]; then
|
if [[ -z "$EMACS" ]]; then
|
||||||
source ~/.zsh/config
|
source ~/.zsh/zgen/zgen.zsh
|
||||||
is-callable 'fasd' && eval "$(fasd --init auto)"
|
if ! zgen saved; then
|
||||||
|
echo "Creating zgen save"
|
||||||
|
|
||||||
|
zgen load zsh-users/zsh-syntax-highlighting
|
||||||
|
zgen load zsh-users/zsh-history-substring-search
|
||||||
|
zgen load zsh-users/zsh-completions src
|
||||||
|
zgen load clvv/fasd
|
||||||
|
zgen load hchbaw/opp.zsh
|
||||||
|
zgen load Tarrasch/zsh-bd
|
||||||
|
zgen load houjunchen/zsh-vim-mode
|
||||||
|
|
||||||
|
zgen save
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
source ~/.zsh/aliases.zsh
|
||||||
|
source ~/.zsh/config.zsh
|
||||||
|
source ~/.zsh/keybinds.zsh
|
||||||
|
source ~/.zsh/prompt.zsh
|
||||||
|
|
||||||
|
fasd_cache="$HOME/.fasd-cache"
|
||||||
|
if [ "$(command -v fasd)" -nt "$fasd_cache" -o ! -s "$fasd_cache" ]; then
|
||||||
|
fasd --init posix-alias zsh-hook zsh-ccomp zsh-ccomp-install >| "$fasd_cache"
|
||||||
|
fi
|
||||||
|
source "$fasd_cache"
|
||||||
|
unset fasd_cache
|
||||||
|
fi
|
||||||
|
|
||||||
|
## PATHS ###############################################
|
||||||
if [ -d ~/.rbenv ]; then
|
if [ -d ~/.rbenv ]; then
|
||||||
export PATH=~/.rbenv/bin:$PATH
|
export PATH=~/.rbenv/bin:$PATH
|
||||||
eval "$(rbenv init - --no-rehash)"
|
eval "$(rbenv init - --no-rehash)"
|
||||||
|
|
Loading…
Reference in a new issue