-
Notifications
You must be signed in to change notification settings - Fork 1
/
.zshrc
156 lines (123 loc) · 4.08 KB
/
.zshrc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
##############################
##### JackyChiu ######
##### zsh Dotfile ######
##############################
### SHELL ###
export ZSH=/Users/jackychiu/.oh-my-zsh
plugins=(
git
github
tmux
zsh-autosuggestions
fast-syntax-highlighting
vi-mode
)
### VISUAL ###
# Look in ~/$ZSH_CUSTOM/themes/
export ZSH_THEME="spaceship"
export SPACESHIP_PROMPT_ORDER=(
time # Time stamps section
user # Username section
dir # Current directory section
host # Hostname section
git # Git section (git_branch + git_status)
exec_time # Execution time
line_sep # Line break
jobs # Backgound jobs indicator
char # Prompt character
)
export SPACESHIP_RPROMPT_ORDER=(
vi_mode # Vi-mode indicator
)
export SPACESHIP_CHAR_SYMBOL="λ "
export SPACESHIP_CHAR_COLOR_FAILURE="green"
export SPACESHIP_VI_MODE_INSERT=""
export SPACESHIP_VI_MODE_NORMAL="[VI-MODE]"
export SPACESHIP_VI_MODE_COLOR="green"
source $ZSH/oh-my-zsh.sh
### PATHS ###
#npm
export PATH=$PATH:$HOME/.npm-packages/bin
#golang
export GOPATH=$HOME
export PATH=$PATH:$GOPATH/bin
#rust
if [ -x "$(command -v rustc)" ]; then
export PATH=$PATH:$HOME/.cargo/bin
export RUST_SRC_PATH="$(rustc --print sysroot)/lib/rustlib/src/rust/src"
fi
# macOS brew MySQL
export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"
# Default vim
export VISUAL=/usr/local/bin/nvim
export EDITOR=$VISUAL
### AUTOCOMPLETE ###
# FZF fuzzy find
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
# --files: List files that would be searched but do not search
# --hidden: Search hidden files and folders
# --follow: Follow symlinks
# --glob: Additional conditions for search (in this case ignore everything in the .git/ folder)
export FZF_DEFAULT_COMMAND='rg --files --hidden --follow --glob "!{.git/*,vendor/*}"'
export FZF_DEFAULT_OPTS="--preview 'head -100 {}' --reverse --height 40%"
### ALIAS ###
# Reset window manager
alias bsry="brew services restart yabai"
# Kubernetes
alias k='kubectl'
# Select and use context
kctx () {
local context
context=$(kubectl config get-contexts -o name | fzf )
kubectl config use-context "$context"
}
# Select and use namespace
kns () {
local context
context=$(kubectl config current-context)
local namespace
namespace=$(kubectl get namespaces | fzf | awk '{ print $1 }')
kubectl config set-context "$context" --namespace "$namespace"
}
# Gets the name of a pod
kpod () {
kubectl get pods | fzf | awk '{ print $1 }'
}
# Select and exec into pod
kexec () {
kubectl exec -it "$(kpod)" -- /bin/sh
}
# Select and describe pod
kdesc () {
kubectl describe pod "$(kpod)"
}
# Review code by loading diff's in vim-buffers
review () {
local default_branch
default_branch=$(git rev-parse --abbrev-ref HEAD)
local branch
branch="${1:-$default_branch}"
git fetch origin "$branch"
git checkout "$branch"
git rebase origin/"$branch"
[[ -a "dev.yml" ]] && dev up
nvim -c "let g:gitgutter_diff_base = 'master'" $(git diff --name-only origin/master)
}
gch() {
local branches branch
branches=$(git branch --all | grep -v HEAD) &&
branch=$(echo "$branches" |
fzf-tmux -d $(( 2 + $(wc -l <<< "$branches") )) +m) &&
git checkout $(echo "$branch" | sed "s/.* //" | sed "s#remotes/[^/]*/##")
}
# Directories (you won't want these)
alias gojc='$GOPATH/src/github.com/JackyChiu'
alias widget='/Users/jackychiu/Library/Application\ Support/Übersicht/widgets/nerdbar.widget'
alias carleton='/Users/jackychiu/Google\ Drive/Carleton'
alias go-play='nvim $GOPATH/src/main.go'
# The next line updates PATH for the Google Cloud SDK.
if [ -f '/Users/jackychiu/src/google-cloud-sdk/path.zsh.inc' ]; then source '/Users/jackychiu/src/google-cloud-sdk/path.zsh.inc'; fi
# The next line enables shell command completion for gcloud.
if [ -f '/Users/jackychiu/src/google-cloud-sdk/completion.zsh.inc' ]; then source '/Users/jackychiu/src/google-cloud-sdk/completion.zsh.inc'; fi
# heroku autocomplete setup
HEROKU_AC_ZSH_SETUP_PATH=/Users/jackychiu/Library/Caches/heroku/autocomplete/zsh_setup && test -f $HEROKU_AC_ZSH_SETUP_PATH && source $HEROKU_AC_ZSH_SETUP_PATH;