Created
November 16, 2018 06:52
-
-
Save nutchy/361ad98bfcbed199f9e081deb87e392a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export GOPATH=$HOME/Golang | |
alias python=python3 | |
alias pip=pip3 | |
alias sp=spotify | |
alias cl=clear | |
# If you come from bash you might have to change your $PATH. | |
# export PATH=$HOME/bin:/usr/local/bin:$PATH | |
# Path to your oh-my-zsh installation. | |
export ZSH=/Users/nutchy/.oh-my-zsh | |
# Set name of the theme to load. Optionally, if you set this to "random" | |
# it'll load a random theme each time that oh-my-zsh is loaded. | |
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes | |
ZSH_THEME="powerlevel9k/powerlevel9k" | |
# Set list of themes to load | |
# Setting this variable when ZSH_THEME=random | |
# cause zsh load theme from this variable instead of | |
# looking in ~/.oh-my-zsh/themes/ | |
# An empty array have no effect | |
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) | |
# Uncomment the following line to use case-sensitive completion. | |
# CASE_SENSITIVE="true" | |
# Uncomment the following line to use hyphen-insensitive completion. Case | |
# sensitive completion must be off. _ and - will be interchangeable. | |
# HYPHEN_INSENSITIVE="true" | |
# Uncomment the following line to disable bi-weekly auto-update checks. | |
# DISABLE_AUTO_UPDATE="true" | |
# Uncomment the following line to change how often to auto-update (in days). | |
# export UPDATE_ZSH_DAYS=13 | |
# Uncomment the following line to disable colors in ls. | |
# DISABLE_LS_COLORS="true" | |
# Uncomment the following line to disable auto-setting terminal title. | |
# DISABLE_AUTO_TITLE="true" | |
# Uncomment the following line to enable command auto-correction. | |
# ENABLE_CORRECTION="true" | |
# Uncomment the following line to display red dots whilst waiting for completion. | |
# COMPLETION_WAITING_DOTS="true" | |
# Uncomment the following line if you want to disable marking untracked files | |
# under VCS as dirty. This makes repository status check for large repositories | |
# much, much faster. | |
# DISABLE_UNTRACKED_FILES_DIRTY="true" | |
# Uncomment the following line if you want to change the command execution time | |
# stamp shown in the history command output. | |
# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" | |
# HIST_STAMPS="mm/dd/yyyy" | |
# Would you like to use another custom folder than $ZSH/custom? | |
# ZSH_CUSTOM=/path/to/new-custom-folder | |
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*) | |
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/ | |
# Example format: plugins=(rails git textmate ruby lighthouse) | |
# Add wisely, as too many plugins slow down shell startup. | |
plugins=( | |
git zsh-autosuggestions | |
) | |
source $ZSH/oh-my-zsh.sh | |
# User configuration | |
# export MANPATH="/usr/local/man:$MANPATH" | |
# You may need to manually set your language environment | |
# export LANG=en_US.UTF-8 | |
# Preferred editor for local and remote sessions | |
# if [[ -n $SSH_CONNECTION ]]; then | |
# export EDITOR='vim' | |
# else | |
# export EDITOR='mvim' | |
# fi | |
# Compilation flags | |
# export ARCHFLAGS="-arch x86_64" | |
# ssh | |
# export SSH_KEY_PATH="~/.ssh/rsa_id" | |
# Set personal aliases, overriding those provided by oh-my-zsh libs, | |
# plugins, and themes. Aliases can be placed here, though oh-my-zsh | |
# users are encouraged to define aliases within the ZSH_CUSTOM folder. | |
# For a full list of active aliases, run `alias`. | |
# | |
# Example aliases | |
# alias zshconfig="mate ~/.zshrc" | |
# alias ohmyzsh="mate ~/.oh-my-zsh" | |
# ============================================================================= | |
# Functions | |
# ============================================================================= | |
powerlevel9k_random_color(){ | |
local code | |
#for code ({000..255}) echo -n "$%F{$code}" | |
#code=$[${RANDOM}%11+10] # random between 10-20 | |
code=$[${RANDOM}%211+20] # random between 20-230 | |
printf "%03d" $code | |
} | |
zsh_wifi_signal(){ | |
local signal=$(nmcli -t device wifi | grep '^*' | awk -F':' '{print $6}') | |
local color="yellow" | |
[[ $signal -gt 75 ]] && color="green" | |
[[ $signal -lt 50 ]] && color="red" | |
echo -n "%F{$color}\uf1eb" # \uf1eb is | |
} | |
# ============================================================================= | |
# Variables | |
# ============================================================================= | |
export LANG="en_US.UTF-8" | |
export LC_ALL="en_US.UTF-8" | |
DEFAULT_FOREGROUND=006 DEFAULT_BACKGROUND=235 | |
DEFAULT_COLOR=$DEFAULT_FOREGROUND | |
# powerlevel9k prompt theme | |
#DEFAULT_USER=$USER | |
DEFAULT_USER=`whoami` | |
POWERLEVEL9K_MODE="nerdfont-complete" | |
POWERLEVEL9K_SHORTEN_DIR_LENGTH=1 | |
#POWERLEVEL9K_SHORTEN_STRATEGY="truncate_right" | |
POWERLEVEL9K_DIR_OMIT_FIRST_CHARACTER=false | |
POWERLEVEL9K_ALWAYS_SHOW_CONTEXT=true | |
POWERLEVEL9K_ALWAYS_SHOW_USER=false | |
POWERLEVEL9K_CONTEXT_TEMPLATE="\uF109 %m" | |
POWERLEVEL9K_CONTEXT_DEFAULT_FOREGROUND="$DEFAULT_FOREGROUND" | |
POWERLEVEL9K_CONTEXT_DEFAULT_BACKGROUND="$DEFAULT_BACKGROUND" | |
POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND="$DEFAULT_FOREGROUND" | |
POWERLEVEL9K_CONTEXT_ROOT_BACKGROUND="$DEFAULT_BACKGROUND" | |
POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR="\uE0B4" | |
POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR="%F{$(( $DEFAULT_BACKGROUND - 2 ))}|%f" | |
POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR="\uE0B6" | |
POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR="%F{$(( $DEFAULT_BACKGROUND - 2 ))}|%f" | |
POWERLEVEL9K_PROMPT_ON_NEWLINE=true | |
POWERLEVEL9K_RPROMPT_ON_NEWLINE=false | |
POWERLEVEL9K_STATUS_VERBOSE=true | |
POWERLEVEL9K_STATUS_CROSS=true | |
POWERLEVEL9K_PROMPT_ADD_NEWLINE=true | |
#POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX="%F{cyan}\u256D\u2500%f" | |
#POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="%F{014}\u2570%F{cyan}\uF460%F{073}\uF460%F{109}\uF460%f " | |
#POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX="╭─%f" | |
#POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="╰─%F{008}\uF460 %f" | |
#POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX="" | |
#POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="%F{008}> %f" | |
POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX="╭" | |
POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="╰ \uF460\uF460\uF460 " | |
#POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context ssh root_indicator dir_writable dir ) | |
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(root_indicator context dir_writable dir vcs) | |
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(command_execution_time background_jobs status time ssh) | |
POWERLEVEL9K_VCS_CLEAN_BACKGROUND="green" | |
POWERLEVEL9K_VCS_CLEAN_FOREGROUND="$DEFAULT_BACKGROUND" | |
POWERLEVEL9K_VCS_MODIFIED_BACKGROUND="yellow" | |
POWERLEVEL9K_VCS_MODIFIED_FOREGROUND="$DEFAULT_BACKGROUND" | |
POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND="magenta" | |
POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND="$DEFAULT_BACKGROUND" | |
POWERLEVEL9K_DIR_HOME_BACKGROUND="$DEFAULT_FOREGROUND" | |
POWERLEVEL9K_DIR_HOME_FOREGROUND="$DEFAULT_BACKGROUND" | |
POWERLEVEL9K_DIR_HOME_SUBFOLDER_BACKGROUND="$DEFAULT_FOREGROUND" | |
POWERLEVEL9K_DIR_HOME_SUBFOLDER_FOREGROUND="$DEFAULT_BACKGROUND" | |
POWERLEVEL9K_DIR_DEFAULT_BACKGROUND="$DEFAULT_FOREGROUND" | |
POWERLEVEL9K_DIR_DEFAULT_FOREGROUND="$DEFAULT_BACKGROUND" | |
POWERLEVEL9K_DIR_WRITABLE_FORBIDDEN_BACKGROUND="$DEFAULT_FOREGROUND" | |
POWERLEVEL9K_DIR_WRITABLE_FORBIDDEN_FOREGROUND="$DEFAULT_BACKGROUND" | |
POWERLEVEL9K_STATUS_OK_FOREGROUND="$DEFAULT_FOREGROUND" | |
POWERLEVEL9K_STATUS_OK_FOREGROUND="green" | |
POWERLEVEL9K_STATUS_OK_BACKGROUND="$DEFAULT_BACKGROUND" | |
POWERLEVEL9K_STATUS_OK_BACKGROUND="$(( $DEFAULT_BACKGROUND + 2 ))" | |
POWERLEVEL9K_STATUS_ERROR_FOREGROUND="$DEFAULT_FOREGROUND" | |
POWERLEVEL9K_STATUS_ERROR_FOREGROUND="red" | |
POWERLEVEL9K_STATUS_ERROR_BACKGROUND="$DEFAULT_BACKGROUND" | |
POWERLEVEL9K_STATUS_ERROR_BACKGROUND="$(( $DEFAULT_BACKGROUND + 2 ))" | |
POWERLEVEL9K_HISTORY_FOREGROUND="$DEFAULT_FOREGROUND" | |
POWERLEVEL9K_TIME_FORMAT="%D{%H:%M \uF017}" # 15:29:33 | |
POWERLEVEL9K_TIME_FOREGROUND="$DEFAULT_FOREGROUND" | |
POWERLEVEL9K_TIME_BACKGROUND="$DEFAULT_BACKGROUND" | |
POWERLEVEL9K_VCS_GIT_GITHUB_ICON="\uF408" | |
POWERLEVEL9K_VCS_GIT_BITBUCKET_ICON="" | |
POWERLEVEL9K_VCS_GIT_GITLAB_ICON="" | |
POWERLEVEL9K_VCS_GIT_ICON="" | |
POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND="$DEFAULT_BACKGROUND" | |
POWERLEVEL9K_COMMAND_EXECUTION_TIME_BACKGROUND="$DEFAULT_FOREGROUND" | |
POWERLEVEL9K_EXECUTION_TIME_ICON="\u23F1" | |
#POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=0 | |
#POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0 | |
POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND="$DEFAULT_BACKGROUND" | |
POWERLEVEL9K_BACKGROUND_JOBS_BACKGROUND="$DEFAULT_FOREGROUND" | |
POWERLEVEL9K_USER_ICON="\uF415" # | |
POWERLEVEL9K_USER_DEFAULT_FOREGROUND="$DEFAULT_FOREGROUND" | |
POWERLEVEL9K_USER_DEFAULT_BACKGROUND="$DEFAULT_BACKGROUND" | |
POWERLEVEL9K_USER_ROOT_FOREGROUND="$DEFAULT_FOREGROUND" | |
POWERLEVEL9K_USER_ROOT_BACKGROUND="$DEFAULT_BACKGROUND" | |
POWERLEVEL9K_ROOT_INDICATOR_FOREGROUND="$DEFAULT_FOREGROUND" | |
POWERLEVEL9K_ROOT_INDICATOR_FOREGROUND="magenta" | |
POWERLEVEL9K_ROOT_INDICATOR_BACKGROUND="$DEFAULT_BACKGROUND" | |
POWERLEVEL9K_ROOT_INDICATOR_BACKGROUND="$(( $DEFAULT_BACKGROUND + 2 ))" | |
POWERLEVEL9K_ROOT_INDICATOR_BACKGROUND="$(( $DEFAULT_BACKGROUND - 2 ))" | |
#POWERLEVEL9K_ROOT_ICON=$'\uFF03' # # | |
POWERLEVEL9K_ROOT_ICON=$' \uF198' # | |
POWERLEVEL9K_SSH_FOREGROUND="$DEFAULT_FOREGROUND" | |
POWERLEVEL9K_SSH_FOREGROUND="yellow" | |
POWERLEVEL9K_SSH_BACKGROUND="$DEFAULT_BACKGROUND" | |
POWERLEVEL9K_SSH_BACKGROUND="$(( $DEFAULT_BACKGROUND + 2 ))" | |
POWERLEVEL9K_SSH_BACKGROUND="$(( $DEFAULT_BACKGROUND - 2 ))" | |
POWERLEVEL9K_SSH_ICON="\uF489" # | |
POWERLEVEL9K_HOST_LOCAL_FOREGROUND="$DEFAULT_FOREGROUND" | |
POWERLEVEL9K_HOST_LOCAL_BACKGROUND="$DEFAULT_BACKGROUND" | |
POWERLEVEL9K_HOST_REMOTE_FOREGROUND="$DEFAULT_FOREGROUND" | |
POWERLEVEL9K_HOST_REMOTE_BACKGROUND="$DEFAULT_BACKGROUND" | |
POWERLEVEL9K_HOST_ICON_FOREGROUND="$DEFAULT_FOREGROUND" | |
POWERLEVEL9K_HOST_ICON_BACKGROUND="$DEFAULT_BACKGROUND" | |
POWERLEVEL9K_HOST_ICON="\uF109" # | |
POWERLEVEL9K_OS_ICON_FOREGROUND="$DEFAULT_FOREGROUND" | |
POWERLEVEL9K_OS_ICON_BACKGROUND="$DEFAULT_BACKGROUND" | |
POWERLEVEL9K_LOAD_CRITICAL_BACKGROUND="$DEFAULT_BACKGROUND" | |
POWERLEVEL9K_LOAD_WARNING_BACKGROUND="$DEFAULT_BACKGROUND" | |
POWERLEVEL9K_LOAD_NORMAL_BACKGROUND="$DEFAULT_BACKGROUND" | |
POWERLEVEL9K_LOAD_CRITICAL_FOREGROUND="red" | |
POWERLEVEL9K_LOAD_WARNING_FOREGROUND="yellow" | |
POWERLEVEL9K_LOAD_NORMAL_FOREGROUND="green" | |
POWERLEVEL9K_LOAD_CRITICAL_VISUAL_IDENTIFIER_COLOR="red" | |
POWERLEVEL9K_LOAD_WARNING_VISUAL_IDENTIFIER_COLOR="yellow" | |
POWERLEVEL9K_LOAD_NORMAL_VISUAL_IDENTIFIER_COLOR="green" | |
POWERLEVEL9K_BATTERY_LEVEL_BACKGROUND_COLOR="$DEFAULT_BACKGROUND" | |
POWERLEVEL9K_BATTERY_CHARGING_BACKGROUND="$DEFAULT_BACKGROUND" | |
POWERLEVEL9K_BATTERY_CHARGED_BACKGROUND="$DEFAULT_BACKGROUND" | |
POWERLEVEL9K_BATTERY_DISCONNECTED_BACKGROUND="$DEFAULT_BACKGROUND" | |
# zsh-syntax-highlighting | |
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern) | |
ZSH_HIGHLIGHT_PATTERNS+=("rm -rf *" "fg=white,bold,bg=red") | |
typeset -A ZSH_HIGHLIGHT_STYLES | |
ZSH_HIGHLIGHT_STYLES[path]="fg=white" | |
ZSH_HIGHLIGHT_STYLES[path_pathseparator]="fg=grey" | |
ZSH_HIGHLIGHT_STYLES[alias]="fg=cyan" | |
ZSH_HIGHLIGHT_STYLES[builtin]="fg=cyan" | |
ZSH_HIGHLIGHT_STYLES[function]="fg=cyan" | |
ZSH_HIGHLIGHT_STYLES[command]="fg=green" | |
ZSH_HIGHLIGHT_STYLES[precommand]="fg=green" | |
ZSH_HIGHLIGHT_STYLES[hashed-command]="fg=green" | |
ZSH_HIGHLIGHT_STYLES[commandseparator]="fg=yellow" | |
ZSH_HIGHLIGHT_STYLES[redirection]="fg=cyan" | |
ZSH_HIGHLIGHT_STYLES[bracket-level-1]="fg=cyan,bold" | |
ZSH_HIGHLIGHT_STYLES[bracket-level-2]="fg=green,bold" | |
ZSH_HIGHLIGHT_STYLES[bracket-level-3]="fg=magenta,bold" | |
ZSH_HIGHLIGHT_STYLES[bracket-level-4]="fg=yellow,bold" | |
# ============================================================================= | |
# Plugins | |
# ============================================================================= | |
# Check if zplug is installed | |
[ ! -d ~/.zplug ] && git clone https://github.com/zplug/zplug ~/.zplug | |
#source ~/.zplug/init.zsh && zplug update | |
source ~/.zplug/init.zsh | |
#zplug "b4b4r07/enhancd", use:init.sh | |
zplug "b4b4r07/enhancd", use:enhancd.sh | |
#zplug "b4b4r07/zsh-vimode-visual", defer:3 | |
zplug "bhilburn/powerlevel9k", use:powerlevel9k.zsh-theme | |
#zplug "knu/zsh-manydots-magic", use:manydots-magic, defer:2 | |
zplug "seebi/dircolors-solarized", ignore:"*", as:plugin | |
#zplug "plugins/bundler", from:oh-my-zsh, if:"which bundle" | |
#zplug "plugins/colored-man-pages", from:oh-my-zsh | |
#zplug "plugins/extract", from:oh-my-zsh | |
#zplug "plugins/fancy-ctrl-z", from:oh-my-zsh | |
#zplug "plugins/git", from:oh-my-zsh, if:"which git" | |
#zplug "plugins/globalias", from:oh-my-zsh | |
#zplug "plugins/gpg-agent", from:oh-my-zsh, if:"which gpg-agent" | |
#zplug "plugins/httpie", from:oh-my-zsh, if:"which httpie" | |
#zplug "plugins/nanoc", from:oh-my-zsh, if:"which nanoc" | |
#zplug "plugins/vi-mode", from:oh-my-zsh | |
zplug "plugins/git", from:oh-my-zsh, if:"which git" | |
zplug "plugins/go", from:oh-my-zsh, if:"which go" | |
zplug "plugins/golang", from:oh-my-zsh, if:"which go" | |
zplug "plugins/nmap", from:oh-my-zsh, if:"which nmap" | |
zplug "plugins/sudo", from:oh-my-zsh, if:"which sudo" | |
zplug "plugins/tmux", from:oh-my-zsh, if:"which tmux" | |
# Supports oh-my-zsh plugins and the like | |
if [[ $OSTYPE = (linux)* ]]; then | |
zplug "plugins/archlinux", from:oh-my-zsh, if:"which pacman" | |
zplug "plugins/dnf", from:oh-my-zsh, if:"which dnf" | |
fi | |
if [[ $OSTYPE = (darwin)* ]]; then | |
zplug "plugins/osx", from:oh-my-zsh | |
zplug "plugins/brew", from:oh-my-zsh, if:"which brew" | |
zplug "plugins/macports", from:oh-my-zsh, if:"which port" | |
fi | |
zplug "zsh-users/zsh-completions", defer:0 | |
zplug "zsh-users/zsh-autosuggestions", defer:2, on:"zsh-users/zsh-completions" | |
zplug "zsh-users/zsh-syntax-highlighting", defer:3, on:"zsh-users/zsh-autosuggestions" | |
zplug "zsh-users/zsh-history-substring-search", defer:3, on:"zsh-users/zsh-syntax-highlighting" | |
# ============================================================================= | |
# Options | |
# ============================================================================= | |
# improved less option | |
export LESS="--tabs=4 --no-init --LONG-PROMPT --ignore-case --quit-if-one-screen --RAW-CONTROL-CHARS" | |
# Watching other users | |
#WATCHFMT="%n %a %l from %m at %t." | |
watch=(notme) # Report login/logout events for everybody except ourself. | |
#watch=(all) # Report login/logout events for everybody except ourself. | |
LOGCHECK=60 # Time (seconds) between checks for login/logout activity. | |
REPORTTIME=5 # Display usage statistics for commands running > 5 sec. | |
#WORDCHARS="\"*?_-.[]~=/&;!#$%^(){}<>\"" | |
WORDCHARS="\"*?_-[]~&;!#$%^(){}<>\"" | |
# History | |
HISTFILE=~/.zsh_history | |
HISTSIZE=100000 | |
SAVEHIST=100000 | |
setopt autocd # Allow changing directories without `cd` | |
setopt append_history # Dont overwrite history | |
setopt extended_history # Also record time and duration of commands. | |
setopt share_history # Share history between multiple shells | |
setopt hist_expire_dups_first # Clear duplicates when trimming internal hist. | |
setopt hist_find_no_dups # Dont display duplicates during searches. | |
setopt hist_ignore_dups # Ignore consecutive duplicates. | |
setopt hist_ignore_all_dups # Remember only one unique copy of the command. | |
setopt hist_reduce_blanks # Remove superfluous blanks. | |
setopt hist_save_no_dups # Omit older commands in favor of newer ones. | |
# Changing directories | |
#setopt auto_pushd | |
setopt pushd_ignore_dups # Dont push copies of the same dir on stack. | |
setopt pushd_minus # Reference stack entries with "-". | |
setopt extended_glob | |
# ============================================================================= | |
# Aliases | |
# ============================================================================= | |
# In the definitions below, you will see use of function definitions instead of | |
# aliases for some cases. We use this method to avoid expansion of the alias in | |
# combination with the globalias plugin. | |
# Directory coloring | |
if [[ $OSTYPE = (darwin|freebsd)* ]]; then | |
export CLICOLOR="YES" # Equivalent to passing -G to ls. | |
export LSCOLORS="exgxdHdHcxaHaHhBhDeaec" | |
[ -d "/opt/local/bin" ] && export PATH="/opt/local/bin:$PATH" | |
# Prefer GNU version, since it respects dircolors. | |
if which gls &>/dev/null; then | |
alias ls='() { $(whence -p gls) -Ctr --file-type --color=auto $@ }' | |
else | |
alias ls='() { $(whence -p ls) -CFtr $@ }' | |
fi | |
else | |
alias ls='() { $(whence -p ls) -Ctr --file-type --color=auto $@ }' | |
fi | |
# Generic command adaptations. | |
alias grep='() { $(whence -p grep) --color=auto $@ }' | |
alias egrep='() { $(whence -p egrep) --color=auto $@ }' | |
# Directory management | |
alias la='ls -a' | |
alias ll='ls -l' | |
alias lal='ls -al' | |
alias d='dirs -v' | |
alias 1='pu' | |
alias 2='pu -2' | |
alias 3='pu -3' | |
alias 4='pu -4' | |
alias 5='pu -5' | |
alias 6='pu -6' | |
alias 7='pu -7' | |
alias 8='pu -8' | |
alias 9='pu -9' | |
alias pu='() { pushd $1 &> /dev/null; dirs -v; }' | |
alias po='() { popd &> /dev/null; dirs -v; }' | |
zshaddhistory() { whence ${${(z)1}[1]} >| /dev/null || return 1 } | |
# ============================================================================= | |
# Key Bindings | |
# ============================================================================= | |
# Common CTRL bindings. | |
bindkey "^a" beginning-of-line | |
bindkey "^e" end-of-line | |
bindkey "^f" forward-word | |
bindkey "^b" backward-word | |
bindkey "^k" kill-line | |
bindkey "^d" delete-char | |
bindkey "^y" accept-and-hold | |
bindkey "^w" backward-kill-word | |
bindkey "^u" backward-kill-line | |
bindkey "^R" history-incremental-pattern-search-backward | |
bindkey "^F" history-incremental-pattern-search-forward | |
# Do not require a space when attempting to tab-complete. | |
bindkey "^i" expand-or-complete-prefix | |
# Fixes for alt-backspace and arrows keys | |
bindkey '^[^?' backward-kill-word | |
bindkey "^[[1;5C" forward-word | |
bindkey "^[[1;5D" backward-word | |
# ============================================================================= | |
# Completions | |
# ============================================================================= | |
zstyle ':completion:*' rehash true | |
#zstyle ':completion:*' verbose yes | |
#zstyle ':completion:*:descriptions' format '%B%d%b' | |
#zstyle ':completion:*:messages' format '%d' | |
#zstyle ':completion:*:warnings' format 'No matches for: %d' | |
#zstyle ':completion:*' group-name '' | |
# case-insensitive (all), partial-word and then substring completion | |
zstyle ":completion:*" matcher-list \ | |
"m:{a-zA-Z}={A-Za-z}" \ | |
"r:|[._-]=* r:|=*" \ | |
"l:|=* r:|=*" | |
zstyle ":completion:*:default" list-colors ${(s.:.)LS_COLORS} | |
# ============================================================================= | |
# Startup | |
# ============================================================================= | |
# Load SSH and GPG agents via keychain. | |
setup_agents() { | |
[[ $UID -eq 0 ]] && return | |
if which keychain &> /dev/null; then | |
local -a ssh_keys gpg_keys | |
for i in ~/.ssh/**/*pub; do test -f "$i(.N:r)" && ssh_keys+=("$i(.N:r)"); done | |
gpg_keys=$(gpg -K --with-colons 2>/dev/null | awk -F : '$1 == "sec" { print $5 }') | |
if (( $#ssh_keys > 0 )) || (( $#gpg_keys > 0 )); then | |
alias run_agents='() { $(whence -p keychain) --quiet --eval --inherit any-once --agents ssh,gpg $ssh_keys ${(f)gpg_keys} }' | |
[[ -t ${fd:-0} || -p /dev/stdin ]] && eval `run_agents` | |
unalias run_agents | |
fi | |
fi | |
} | |
setup_agents | |
unfunction setup_agents | |
# Install plugins if there are plugins that have not been installed | |
if ! zplug check; then | |
printf "Install? [y/N]: " | |
if read -q; then | |
echo; zplug install | |
fi | |
fi | |
# Then, source plugins and add commands to $PATH | |
zplug load | |
if zplug check "seebi/dircolors-solarized"; then | |
if which gdircolors &> /dev/null; then | |
alias dircolors='() { $(whence -p gdircolors) }' | |
fi | |
if which dircolors &> /dev/null; then | |
scheme="dircolors.256dark" | |
eval $(dircolors ~/.zplug/repos/seebi/dircolors-solarized/$scheme) | |
fi | |
fi | |
# History | |
if zplug check "zsh-users/zsh-history-substring-search"; then | |
zmodload zsh/terminfo | |
bindkey "$terminfo[kcuu1]" history-substring-search-up | |
bindkey "$terminfo[kcud1]" history-substring-search-down | |
bindkey "^[[1;5A" history-substring-search-up | |
bindkey "^[[1;5B" history-substring-search-down | |
fi | |
[ -d "$HOME/bin" ] && export PATH="$HOME/bin:$PATH" | |
# Source local customizations. | |
[[ -f ~/.zshrc.local ]] && source ~/.zshrc.local | |
[[ -f ~/.zshrc.alias ]] && source ~/.zshrc.alias | |
[[ -f ~/.zfunctions ]] && source ~/.zfunctions | |
#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!! | |
export SDKMAN_DIR="/Users/nutchy/.sdkman" | |
[[ -s "/Users/nutchy/.sdkman/bin/sdkman-init.sh" ]] && source "/Users/nutchy/.sdkman/bin/sdkman-init.sh" | |
export NVM_DIR="/Users/nutchy/.nvm" | |
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment