Switched to Zgen Plugin manager
This commit is contained in:
parent
aee04848cf
commit
9a1cc66bd5
8 changed files with 495 additions and 122 deletions
6
.aliases
6
.aliases
|
@ -1,6 +0,0 @@
|
||||||
alias ls='ls --color=auto'
|
|
||||||
alias dotfiles='/usr/bin/git --git-dir=/home/marty/.dotfiles/ --work-tree=/home/marty'
|
|
||||||
alias n='nnn'
|
|
||||||
alias m='micro'
|
|
||||||
|
|
||||||
alias zshconf='m ~/.zshrc'
|
|
213
.zgenrc
Normal file
213
.zgenrc
Normal file
|
@ -0,0 +1,213 @@
|
||||||
|
# Clone zgen if you haven't already
|
||||||
|
if [[ -z "$ZGEN_PARENT_DIR" ]]; then
|
||||||
|
ZGEN_PARENT_DIR=$HOME
|
||||||
|
fi
|
||||||
|
if [[ ! -f $ZGEN_PARENT_DIR/.zgen/zgen.zsh ]]; then
|
||||||
|
if [[ ! -d "$ZGEN_PARENT_DIR" ]]; then
|
||||||
|
mkdir -p "$ZGEN_PARENT_DIR"
|
||||||
|
fi
|
||||||
|
pushd $ZGEN_PARENT_DIR
|
||||||
|
git clone git@github.com:tarjoilija/zgen.git ./.zgen
|
||||||
|
popd
|
||||||
|
fi
|
||||||
|
source $ZGEN_PARENT_DIR/.zgen/zgen.zsh
|
||||||
|
unset ZGEN_PARENT_DIR
|
||||||
|
|
||||||
|
|
||||||
|
load-starter-plugin-list() {
|
||||||
|
echo "Creating a zgen save"
|
||||||
|
ZGEN_LOADED=()
|
||||||
|
ZGEN_COMPLETIONS=()
|
||||||
|
|
||||||
|
zgen oh-my-zsh
|
||||||
|
|
||||||
|
# If you want to customize your plugin list, create a file named
|
||||||
|
# .zgen-local-plugins in your home directory. That file will be sourced
|
||||||
|
# during startup *instead* of running this load-starter-plugin-list function,
|
||||||
|
# so make sure to include everything from this function that you want to keep.
|
||||||
|
|
||||||
|
# If zsh-syntax-highlighting is bundled after zsh-history-substring-search,
|
||||||
|
# they break, so get the order right.
|
||||||
|
zgen load zdharma/fast-syntax-highlighting
|
||||||
|
zgen load zsh-users/zsh-history-substring-search
|
||||||
|
|
||||||
|
# Set keystrokes for substring searching
|
||||||
|
zmodload zsh/terminfo
|
||||||
|
bindkey "$terminfo[kcuu1]" history-substring-search-up
|
||||||
|
bindkey "$terminfo[kcud1]" history-substring-search-down
|
||||||
|
|
||||||
|
# Tab complete rakefile targets.
|
||||||
|
zgen load unixorn/rake-completion.zshplugin
|
||||||
|
|
||||||
|
# Automatically run zgen update and zgen selfupdate every 7 days.
|
||||||
|
zgen load unixorn/autoupdate-zgen
|
||||||
|
|
||||||
|
# Add my collection of miscellaneous utility functions.
|
||||||
|
#zgen load unixorn/jpb.zshplugin
|
||||||
|
|
||||||
|
# Colorize the things if you have grc installed. Well, some of the
|
||||||
|
# things, anyway.
|
||||||
|
zgen load unixorn/warhol.plugin.zsh
|
||||||
|
|
||||||
|
# macOS helpers. This plugin is smart enough to detect when it isn't running
|
||||||
|
# on macOS and not load itself, so you can safely share the same plugin list
|
||||||
|
# across macOS and Linux/BSD.
|
||||||
|
#zgen load unixorn/tumult.plugin.zsh
|
||||||
|
|
||||||
|
# Warn you when you run a command that you've set an alias for without
|
||||||
|
# using the alias.
|
||||||
|
zgen load djui/alias-tips
|
||||||
|
|
||||||
|
# Add my collection of git helper scripts.
|
||||||
|
zgen load unixorn/git-extra-commands
|
||||||
|
|
||||||
|
# Add my bitbucket git helpers plugin.
|
||||||
|
#zgen load unixorn/bitbucket-git-helpers.plugin.zsh
|
||||||
|
|
||||||
|
# A collection of scripts that might be useful to sysadmins.
|
||||||
|
# zgen load skx/sysadmin-util
|
||||||
|
|
||||||
|
# Adds aliases to open your current repo & branch on github.
|
||||||
|
zgen load peterhurford/git-it-on.zsh
|
||||||
|
|
||||||
|
# Tom Limoncelli's tooling for storing private information (keys, etc)
|
||||||
|
# in a repository securely by encrypting them with gnupg.
|
||||||
|
zgen load StackExchange/blackbox
|
||||||
|
|
||||||
|
# Load some oh-my-zsh plugins
|
||||||
|
zgen oh-my-zsh plugins/pip
|
||||||
|
zgen oh-my-zsh plugins/sudo
|
||||||
|
zgen oh-my-zsh plugins/aws
|
||||||
|
zgen oh-my-zsh plugins/chruby
|
||||||
|
zgen oh-my-zsh plugins/colored-man-pages
|
||||||
|
zgen oh-my-zsh plugins/git
|
||||||
|
zgen oh-my-zsh plugins/github
|
||||||
|
zgen oh-my-zsh plugins/python
|
||||||
|
zgen oh-my-zsh plugins/rsync
|
||||||
|
zgen oh-my-zsh plugins/screen
|
||||||
|
zgen oh-my-zsh plugins/vagrant
|
||||||
|
zgen oh-my-zsh plugins/autojump
|
||||||
|
|
||||||
|
if [ $(uname -a | grep -ci Darwin) = 1 ]; then
|
||||||
|
# Load macOS-specific plugins
|
||||||
|
zgen oh-my-zsh plugins/brew
|
||||||
|
zgen oh-my-zsh plugins/osx
|
||||||
|
fi
|
||||||
|
|
||||||
|
# A set of shell functions to make it easy to install small apps and
|
||||||
|
# utilities distributed with pip.
|
||||||
|
zgen load sharat87/pip-app
|
||||||
|
|
||||||
|
zgen load chrissicool/zsh-256color
|
||||||
|
|
||||||
|
# Load more completion files for zsh from the zsh-lovers github repo.
|
||||||
|
zgen load zsh-users/zsh-completions src
|
||||||
|
|
||||||
|
# Docker completion
|
||||||
|
zgen load srijanshetty/docker-zsh
|
||||||
|
|
||||||
|
# Load me last
|
||||||
|
GENCOMPL_FPATH=$HOME/.zsh/complete
|
||||||
|
|
||||||
|
# Very cool plugin that generates zsh completion functions for commands
|
||||||
|
# if they have getopt-style help text. It doesn't generate them on the fly,
|
||||||
|
# you'll have to explicitly generate a completion, but it's still quite cool.
|
||||||
|
zgen load RobSis/zsh-completion-generator
|
||||||
|
|
||||||
|
# Add Fish-like autosuggestions to your ZSH.
|
||||||
|
zgen load zsh-users/zsh-autosuggestions
|
||||||
|
|
||||||
|
# k is a zsh script / plugin to make directory listings more readable,
|
||||||
|
# adding a bit of color and some git status information on files and
|
||||||
|
# directories.
|
||||||
|
zgen load supercrabtree/k
|
||||||
|
|
||||||
|
# Bullet train prompt setup.
|
||||||
|
zgen load bhilburn/powerlevel9k powerlevel9k
|
||||||
|
|
||||||
|
# when in a directory with vagrant/docker files can use start, stop, up, down
|
||||||
|
zgen load Cloudstek/zsh-plugin-appup
|
||||||
|
|
||||||
|
# automatically add .env contents to environment vars, as long as you're in the folder
|
||||||
|
zgen load zpm-zsh/autoenv
|
||||||
|
|
||||||
|
# radically enhanced cd command, all sorts of options
|
||||||
|
zgen load b4b4r07/enhancd
|
||||||
|
|
||||||
|
zgen load lukechilds/zsh-nvm
|
||||||
|
|
||||||
|
# Save it all to init script.
|
||||||
|
zgen save
|
||||||
|
}
|
||||||
|
|
||||||
|
setup-zgen-repos() {
|
||||||
|
if [[ -f ~/.zgen-local-plugins ]]; then
|
||||||
|
source ~/.zgen-local-plugins
|
||||||
|
else
|
||||||
|
load-starter-plugin-list
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# This comes from https://stackoverflow.com/questions/17878684/best-way-to-get-file-modified-time-in-seconds
|
||||||
|
# This works on both Linux with GNU fileutils and macOS with BSD stat.
|
||||||
|
|
||||||
|
# Naturally BSD/macOS and Linux can't share the same options to stat.
|
||||||
|
if [[ $(uname | grep -ci -e Darwin -e BSD) = 1 ]]; then
|
||||||
|
|
||||||
|
# macOS version.
|
||||||
|
get_file_modification_time() {
|
||||||
|
modified_time=$(stat -f %m "$1" 2> /dev/null) || modified_time=0
|
||||||
|
echo "${modified_time}"
|
||||||
|
}
|
||||||
|
|
||||||
|
elif [[ $(uname | grep -ci Linux) = 1 ]]; then
|
||||||
|
|
||||||
|
# Linux version.
|
||||||
|
get_file_modification_time() {
|
||||||
|
modified_time=$(stat -c %Y "$1" 2> /dev/null) || modified_time=0
|
||||||
|
echo "${modified_time}"
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# check if there's an init.zsh file for zgen and generate one if not.
|
||||||
|
if ! zgen saved; then
|
||||||
|
setup-zgen-repos
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Our installation instructions get the user to make a symlink
|
||||||
|
# from ~/.zgen-setup to wherever they checked out the zsh-quickstart-kit
|
||||||
|
# repository.
|
||||||
|
#
|
||||||
|
# Unfortunately, stat will return the modification time of the
|
||||||
|
# symlink instead of the target file, so construct a full path to hand off
|
||||||
|
# to stat so it returns the modification time of the actual .zgen-setup file.
|
||||||
|
if [[ -f ~/.zgen-setup ]]; then
|
||||||
|
REAL_ZGEN_SETUP=~/.zgen-setup
|
||||||
|
fi
|
||||||
|
if [[ -L ~/.zgen-setup ]]; then
|
||||||
|
REAL_ZGEN_SETUP="$(readlink ~/.zgen-setup)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If you don't want my standard starter set of plugins, create a file named
|
||||||
|
# .zgen-local-plugins and add your zgen load commands there. Don't forget to
|
||||||
|
# run `zgen save` at the end of your .zgen-local-plugins file.
|
||||||
|
#
|
||||||
|
# Warning: .zgen-local-plugins REPLACES the starter list setup, it doesn't
|
||||||
|
# add to it.
|
||||||
|
#
|
||||||
|
# Use readlink in case the user is symlinking from another repo checkout, so
|
||||||
|
# they can use a personal dotfiles repository cleanly.
|
||||||
|
if [[ -f ~/.zgen-local-plugins ]]; then
|
||||||
|
REAL_ZGEN_SETUP=~/.zgen-local-plugins
|
||||||
|
fi
|
||||||
|
if [[ -L ~/.zgen-local-plugins ]]; then
|
||||||
|
REAL_ZGEN_SETUP="${HOME}/$(readlink ~/.zgen-local-plugins)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If .zgen-setup is newer than init.zsh, regenerate init.zsh
|
||||||
|
if [ $(get_file_modification_time ${REAL_ZGEN_SETUP}) -gt $(get_file_modification_time ~/.zgen/init.zsh) ]; then
|
||||||
|
echo "$(basename ${REAL_ZGEN_SETUP}) updated; creating a new init.zsh from plugin list in ${REAL_ZGEN_SETUP}"
|
||||||
|
setup-zgen-repos
|
||||||
|
fi
|
||||||
|
unset REAL_ZGEN_SETUP
|
27
.zsh_aliases
Normal file
27
.zsh_aliases
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
if [[ "$(uname -s)" == "Linux" ]]; then
|
||||||
|
# we're on linux
|
||||||
|
alias l-d="ls -lFad"
|
||||||
|
alias l="ls -lAhF"
|
||||||
|
alias ll="ls -lFa | TERM=vt100 less"
|
||||||
|
alias ls='ls --color=auto'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# enables git management through dotfiles command
|
||||||
|
alias dotfiles='/usr/bin/git --git-dir=/home/marty/.dotfiles/ --work-tree=/home/marty'
|
||||||
|
|
||||||
|
alias n='nnn'
|
||||||
|
alias m='micro'
|
||||||
|
|
||||||
|
alias zshconf='m ~/.zshrc'
|
||||||
|
|
||||||
|
|
||||||
|
alias historysummary="history | awk '{a[\$2]++} END{for(i in a){printf \"%5d\t%s\n\",a[i],i}}' | sort -rn | head"
|
||||||
|
alias myip="curl -s icanhazip.com"
|
||||||
|
|
||||||
|
alias reattach="screen -r"
|
||||||
|
alias zh="fc -l -d -D"
|
||||||
|
|
||||||
|
alias ..="cd .."
|
||||||
|
alias ...="cd ../.."
|
||||||
|
alias ~="cd $HOME"
|
||||||
|
|
331
.zshrc
331
.zshrc
|
@ -1,123 +1,185 @@
|
||||||
# If you come from bash you might have to change your $PATH.
|
# Correct spelling for commands
|
||||||
# export PATH=$HOME/bin:/usr/local/bin:$PATH
|
setopt correct
|
||||||
|
|
||||||
# Path to your oh-my-zsh installation.
|
# turn off the infernal correctall for filenames
|
||||||
export ZSH="/home/marty/.oh-my-zsh"
|
unsetopt correctall
|
||||||
|
|
||||||
# Set name of the theme to load --- if set to "random", it will
|
# start zgen
|
||||||
# load a random theme each time oh-my-zsh is loaded, in which case,
|
if [ -f ~/.zgenrc ]; then
|
||||||
# to know which specific one was loaded, run: echo $RANDOM_THEME
|
source ~/.zgenrc
|
||||||
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
|
|
||||||
ZSH_THEME="powerlevel9k/powerlevel9k"
|
|
||||||
|
|
||||||
# Set list of themes to pick from when loading at random
|
|
||||||
# Setting this variable when ZSH_THEME=random will cause zsh to load
|
|
||||||
# a theme from this variable instead of looking in ~/.oh-my-zsh/themes/
|
|
||||||
# If set to an empty array, this variable will 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.
|
|
||||||
# You can set one of the optional three formats:
|
|
||||||
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
|
|
||||||
# or set a custom format using the strftime function format specifications,
|
|
||||||
# see 'man strftime' for details.
|
|
||||||
# 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?
|
|
||||||
# Standard 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
|
|
||||||
colored-man-pages
|
|
||||||
zsh-completions
|
|
||||||
zsh-autosuggestions
|
|
||||||
zsh-syntax-highlighting
|
|
||||||
fzf
|
|
||||||
)
|
|
||||||
|
|
||||||
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"
|
|
||||||
source $HOME/.aliases
|
|
||||||
|
|
||||||
PS1='[\u@\h \W]\$ '
|
|
||||||
# >>> Added by cnchi installer
|
|
||||||
BROWSER=/usr/bin/chromium
|
|
||||||
EDITOR=/usr/bin/micro
|
|
||||||
|
|
||||||
. ~/.ssh/.ssh-find-agent.sh
|
|
||||||
ssh-find-agent -a
|
|
||||||
if [ -z "$SSH_AUTH_SOCK" ]
|
|
||||||
then
|
|
||||||
eval $(ssh-agent) > /dev/null
|
|
||||||
ssh-add -l >/dev/null || alias ssh='ssh-add -l >/dev/null || ssh-add && unalias ssh; ssh'
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export GOPATH="$HOME/Code/go"
|
# set some history options
|
||||||
export PATH="$PATH:$GOPATH/bin"
|
setopt append_history
|
||||||
|
setopt extended_history
|
||||||
|
setopt hist_expire_dups_first
|
||||||
|
setopt hist_ignore_all_dups
|
||||||
|
setopt hist_ignore_dups
|
||||||
|
setopt hist_ignore_space
|
||||||
|
setopt hist_reduce_blanks
|
||||||
|
setopt hist_save_no_dups
|
||||||
|
setopt hist_verify
|
||||||
|
|
||||||
|
# Share your history across all your terminal windows
|
||||||
|
setopt share_history
|
||||||
|
#setopt noclobber
|
||||||
|
|
||||||
|
# set some more options
|
||||||
|
setopt pushd_ignore_dups
|
||||||
|
#setopt pushd_silent
|
||||||
|
|
||||||
|
# Keep a ton of history.
|
||||||
|
HISTSIZE=100000
|
||||||
|
SAVEHIST=100000
|
||||||
|
HISTFILE=~/.zsh_history
|
||||||
|
export HISTIGNORE="ls:cd:cd -:pwd:exit:date:* --help"
|
||||||
|
|
||||||
|
# Long running processes should return time after they complete. Specified
|
||||||
|
# in seconds.
|
||||||
|
REPORTTIME=2
|
||||||
|
TIMEFMT="%U user %S system %P cpu %*Es total"
|
||||||
|
|
||||||
|
# How often to check for an update. If you want to override this, the
|
||||||
|
# easiest way is to add a script fragment in ~/.zshrc.d that unsets
|
||||||
|
# QUICKSTART_KIT_REFRESH_IN_DAYS.
|
||||||
|
QUICKSTART_KIT_REFRESH_IN_DAYS=7
|
||||||
|
|
||||||
|
# Expand aliases inline - see http://blog.patshead.com/2012/11/automatically-expaning-zsh-global-aliases---simplified.html
|
||||||
|
globalias() {
|
||||||
|
if [[ $LBUFFER =~ ' [A-Z0-9]+$' ]]; then
|
||||||
|
zle _expand_alias
|
||||||
|
zle expand-word
|
||||||
|
fi
|
||||||
|
zle self-insert
|
||||||
|
}
|
||||||
|
|
||||||
|
zle -N globalias
|
||||||
|
|
||||||
|
bindkey " " globalias
|
||||||
|
bindkey "^ " magic-space # control-space to bypass completion
|
||||||
|
bindkey -M isearch " " magic-space # normal space during searches
|
||||||
|
|
||||||
|
# Stuff only tested on zsh, or explicitly zsh-specific
|
||||||
|
if [ -r ~/.zsh_aliases ]; then
|
||||||
|
source ~/.zsh_aliases
|
||||||
|
fi
|
||||||
|
|
||||||
|
# deal with screen, if we're using it - courtesy MacOSXHints.com
|
||||||
|
# Login greeting ------------------
|
||||||
|
if [ "$TERM" = "screen" -a ! "$SHOWED_SCREEN_MESSAGE" = "true" ]; then
|
||||||
|
detached_screens=$(screen -list | grep Detached)
|
||||||
|
if [ ! -z "$detached_screens" ]; then
|
||||||
|
echo "+---------------------------------------+"
|
||||||
|
echo "| Detached screens are available: |"
|
||||||
|
echo "$detached_screens"
|
||||||
|
echo "+---------------------------------------+"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Speed up autocomplete, force prefix mapping
|
||||||
|
zstyle ':completion:*' accept-exact '*(N)'
|
||||||
|
zstyle ':completion:*' use-cache on
|
||||||
|
zstyle ':completion:*' cache-path ~/.zsh/cache
|
||||||
|
zstyle -e ':completion:*:default' list-colors 'reply=("${PREFIX:+=(#bi)($PREFIX:t)*==34=34}:${(s.:.)LS_COLORS}")';
|
||||||
|
|
||||||
|
# Load any custom zsh completions we've installed
|
||||||
|
if [ -d ~/.zsh-completions ]; then
|
||||||
|
for completion in ~/.zsh-completions/*
|
||||||
|
do
|
||||||
|
source "$completion"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Make it easy to append your own customizations that override the above by
|
||||||
|
# loading all files from the ~/.zshrc.d directory
|
||||||
|
mkdir -p ~/.zshrc.d
|
||||||
|
if [ -n "$(/bin/ls ~/.zshrc.d)" ]; then
|
||||||
|
for dotfile in ~/.zshrc.d/*
|
||||||
|
do
|
||||||
|
if [ -r "${dotfile}" ]; then
|
||||||
|
source "${dotfile}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# In case a plugin adds a redundant path entry, remove duplicate entries
|
||||||
|
# from PATH
|
||||||
|
#
|
||||||
|
# This snippet is from Mislav Marohnić <mislav.marohnic@gmail.com>'s
|
||||||
|
# dotfiles repo at https://github.com/mislav/dotfiles
|
||||||
|
dedupe_path() {
|
||||||
|
typeset -a paths result
|
||||||
|
paths=($path)
|
||||||
|
|
||||||
|
while [[ ${#paths} -gt 0 ]]; do
|
||||||
|
p="${paths[1]}"
|
||||||
|
shift paths
|
||||||
|
[[ -z ${paths[(r)$p]} ]] && result+="$p"
|
||||||
|
done
|
||||||
|
|
||||||
|
export PATH=${(j+:+)result}
|
||||||
|
}
|
||||||
|
|
||||||
|
dedupe_path
|
||||||
|
|
||||||
|
# Do selfupdate checking. We do this after processing ~/.zshrc.d to make the
|
||||||
|
# refresh check interval easier to customize.
|
||||||
|
#
|
||||||
|
# If they unset QUICKSTART_KIT_REFRESH_IN_DAYS in one of the fragments
|
||||||
|
# in ~/.zshrc.d, then we don't do any selfupdate checking at all.
|
||||||
|
|
||||||
|
_load-lastupdate-from-file() {
|
||||||
|
local now=$(date +%s)
|
||||||
|
if [[ -f "${1}" ]]; then
|
||||||
|
local last_update=$(cat "${1}")
|
||||||
|
else
|
||||||
|
local last_update=0
|
||||||
|
fi
|
||||||
|
local interval="$(expr ${now} - ${last_update})"
|
||||||
|
echo "${interval}"
|
||||||
|
}
|
||||||
|
|
||||||
|
_update-zsh-quickstart() {
|
||||||
|
if [[ ! -L ~/.zshrc ]]; then
|
||||||
|
echo ".zshrc is not a symlink, skipping zsh-quickstart-kit update"
|
||||||
|
else
|
||||||
|
local _link_loc=$(readlink ~/.zshrc);
|
||||||
|
if [[ "${_link_loc/${HOME}}" == "${_link_loc}" ]] then
|
||||||
|
pushd $(dirname "${HOME}/$(readlink ~/.zshrc)");
|
||||||
|
else
|
||||||
|
pushd $(dirname ${_link_loc});
|
||||||
|
fi;
|
||||||
|
local gitroot=$(git rev-parse --show-toplevel)
|
||||||
|
if [[ -f "${gitroot}/.gitignore" ]]; then
|
||||||
|
if [[ $(grep -c zsh-quickstart-kit "${gitroot}/.gitignore") -ne 0 ]]; then
|
||||||
|
echo "---- updating ----"
|
||||||
|
git pull
|
||||||
|
date +%s >! ~/.zsh-quickstart-last-update
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo 'No quickstart marker found, is your quickstart a valid git checkout?'
|
||||||
|
fi
|
||||||
|
popd
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
_check-for-zsh-quickstart-update() {
|
||||||
|
local day_seconds=$(expr 24 \* 60 \* 60)
|
||||||
|
local refresh_seconds=$(expr "${day_seconds}" \* "${QUICKSTART_KIT_REFRESH_IN_DAYS}")
|
||||||
|
local last_quickstart_update=$(_load-lastupdate-from-file ~/.zsh-quickstart-last-update)
|
||||||
|
|
||||||
|
if [ ${last_quickstart_update} -gt ${refresh_seconds} ]; then
|
||||||
|
echo "It has been $(expr ${last_quickstart_update} / ${day_seconds}) days since your zsh quickstart kit was updated"
|
||||||
|
echo "Checking for zsh-quickstart-kit updates..."
|
||||||
|
_update-zsh-quickstart
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
#
|
||||||
|
# if [[ ! -z "$QUICKSTART_KIT_REFRESH_IN_DAYS" ]]; then
|
||||||
|
# _check-for-zsh-quickstart-update
|
||||||
|
# unset QUICKSTART_KIT_REFRESH_IN_DAYS
|
||||||
|
# fi
|
||||||
|
|
||||||
POWERLEVEL9K_MODE='nerdfont-complete'
|
POWERLEVEL9K_MODE='nerdfont-complete'
|
||||||
#POWERLEVEL9K_SHORTEN_DIR_LENGTH=1
|
#POWERLEVEL9K_SHORTEN_DIR_LENGTH=1
|
||||||
|
@ -159,3 +221,40 @@ POWERLEVEL9K_BACKGROUND_JOBS_BACKGROUND='clear'
|
||||||
POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND='green'
|
POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND='green'
|
||||||
|
|
||||||
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=250"
|
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=250"
|
||||||
|
|
||||||
|
# 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"
|
||||||
|
|
||||||
|
# You may need to manually set your language environment
|
||||||
|
#export LANG=en_US.UTF-8
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# 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"
|
||||||
|
source $HOME/.zsh_aliases
|
||||||
|
|
||||||
|
#PS1='[\u@\h \W]\$ '
|
||||||
|
# >>> Added by cnchi installer
|
||||||
|
BROWSER=/usr/bin/chromium
|
||||||
|
EDITOR=/usr/bin/micro
|
||||||
|
|
||||||
|
. ~/.ssh/.ssh-find-agent.sh
|
||||||
|
ssh-find-agent -a
|
||||||
|
if [ -z "$SSH_AUTH_SOCK" ]
|
||||||
|
then
|
||||||
|
eval $(ssh-agent) > /dev/null
|
||||||
|
ssh-add -l >/dev/null || alias ssh='ssh-add -l >/dev/null || ssh-add && unalias ssh; ssh'
|
||||||
|
fi
|
||||||
|
|
||||||
|
export GOPATH="$HOME/Code/go"
|
||||||
|
export PATH="$PATH:$GOPATH/bin"
|
||||||
|
|
4
.zshrc.d/001-mkcd
Normal file
4
.zshrc.d/001-mkcd
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
# mkdir & cd
|
||||||
|
function mkcd {
|
||||||
|
mkdir -p "$@" && cd $_
|
||||||
|
}
|
9
.zshrc.d/002-newf
Normal file
9
.zshrc.d/002-newf
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
# show newest files
|
||||||
|
# http://www.commandlinefu.com/commands/view/9015/find-the-most-recently-changed-files-recursively
|
||||||
|
newest (){
|
||||||
|
find . -type f -printf '%TY-%Tm-%Td %TT %p\n' | \
|
||||||
|
grep -v cache | \
|
||||||
|
grep -v '.hg' | grep -v '.git' | \
|
||||||
|
sort -r | \
|
||||||
|
less
|
||||||
|
}
|
25
.zshrc.d/003-zurl
Normal file
25
.zshrc.d/003-zurl
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
# Create short urls via http://goo.gl using curl(1).
|
||||||
|
# Contributed back to grml zshrc
|
||||||
|
# API reference: https://code.google.com/apis/urlshortener/
|
||||||
|
function zurl {
|
||||||
|
if [[ -z $1 ]]; then
|
||||||
|
print "USAGE: $0 <URL>"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
local url=$1
|
||||||
|
local api='https://www.googleapis.com/urlshortener/v1/url'
|
||||||
|
local data
|
||||||
|
|
||||||
|
# Prepend "http://" to given URL where necessary for later output.
|
||||||
|
if [[ $url != http(s|)://* ]]; then
|
||||||
|
url="http://$url"
|
||||||
|
fi
|
||||||
|
local json="{\"longUrl\": \"$url\"}"
|
||||||
|
|
||||||
|
data=$(curl --silent -H "Content-Type: application/json" -d $json $api)
|
||||||
|
# Match against a regex and print it
|
||||||
|
if [[ $data =~ '"id": "(http://goo.gl/[[:alnum:]]+)"' ]]; then
|
||||||
|
print $match
|
||||||
|
fi
|
||||||
|
}
|
2
.zshrc.d/004-aliasing-k
Normal file
2
.zshrc.d/004-aliasing-k
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
alias k="k -h"
|
||||||
|
alias l="k -h"
|
Loading…
Reference in a new issue