-
Notifications
You must be signed in to change notification settings - Fork 0
/
zshrc.zsh
170 lines (121 loc) · 3.83 KB
/
zshrc.zsh
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
157
158
159
160
161
162
163
164
165
166
167
168
169
170
#!/bin/zsh
export DOTFILES="$HOME/dotfiles"
if [[ "$OSTYPE" == darwin* ]]; then
export BROWSER="open"
fi
export EDITOR="code" # code is the default editor
export CLICOLOR=1 # color in terminal
export ITERM_ENABLE_SHELL_INTEGRATION_WITH_TMUX=YES # enable tmux integration
setopt auto_cd # automatically change directory when dir name is typed
PATH="/usr/local/bin:/usr/local/sbin:$PATH" # add local bin to PATH
PATH="$PATH:$HOME/.cargo/bin" # cargo
export PATH
# History config
setopt append_history # append to the history file, don't overwrite it
setopt hist_expire_dups_first # expire duplicate entries first
setopt hist_fcntl_lock # lock the history file with fcntl()
setopt hist_ignore_all_dups # don't record all duplicates
setopt hist_lex_words # treat words as a lexical unit
setopt hist_reduce_blanks # remove repeated blank entries
setopt hist_save_no_dups # don't record all duplicates
setopt share_history # share history between sessions
# Homebrew config
#if [[ "$OSTYPE" == darwin* ]]; then
# export BROWSER="open"
#fi
export HOMEBREW_BREWFILE="$DOTFILES/system/Brewfile"
export HOMEBREW_NO_ANALYTICS=1 # disable analytics
export HOMEBREW_NO_INSECURE_REDIRECT=1 # disable insecure redirects
if type brew &>/dev/null; then
FPATH="$(brew --prefix)/share/zsh/site-functions:${FPATH}" # add brew's zsh functions
fi
# Load antigen & plugins
ANTIGEN_HOME=$(brew --prefix antigen)
source "$ANTIGEN_HOME/share/antigen/antigen.zsh"
antigen bundles <<EOBUNDLES
zsh-users/zsh-syntax-highlighting # syntax highlighting bundle
zsh-users/zsh-completions # additional completion definitions
zsh-users/zsh-autosuggestions # additional suggestions
EOBUNDLES
#antigen theme spaceship-prompt/spaceship-prompt
antigen apply
# Load prompt
autoload -Uz promptinit
promptinit
export PURE_PROMPT_SYMBOL="λ"
export PURE_PROMPT_VICMD_SYMBOL="λ"
zstyle ':prompt:pure:prompt:success' color green
prompt pure
# Configure completion
zstyle ':completion:*' completer _complete _ignored _approximate
zstyle ':completion:*' menu select
zstyle ':completion:*' group-name ''
#zstyle ':completion:*' list-colors ''
zstyle ':completion:*' matcher-list 'm:{[:lower:]}={[:upper:]} m:{[:lower:][:upper:]}={[:upper:][:lower:]}'
zstyle ':completion:*' verbose yes
#zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s
zstyle ':completion:*:descriptions' format $'\n%F{blue}Completing %d%f ✨\n'
zstyle ':completion:*:users' ignored-patterns '_*'
zstyle ':completion:functions' ignored-patterns '_*'
zstyle ':compinstall' filename "$HOME/.zshrc"
autoload -Uz compinit
compinit
# Lazy loading NVM
export NVM_DIR="$HOME/.nvm"
export NVM_SYMLINK_CURRENT=1 # use nvm's current version
NVM_HOME=$(brew --prefix nvm)
__lazynvm() {
unset -f nvm node npm npx > /dev/null 2>&1
source "$NVM_HOME/nvm.sh" # This loads nvm
source "$NVM_HOME/etc/bash_completion.d/nvm" # This loads nvm bash_completion
}
nvm() {
__lazynvm
nvm "$@"
}
node() {
__lazynvm
node "$@"
}
npm() {
__lazynvm
npm "$@"
}
npm() {
__lazynvm
npx "$@"
}
# Configure aliases
alias ll="ls -lhFG" # list all files in long format
alias la="ls -lahFG" # list all files
alias -s {json,js,ts,html}="$EDITOR" # open files with default editor
alias d="docker"
alias g="git"
bubu () {
echo "Updating homebrew packages..."
brew update
brew upgrade
brew cleanup
echo "Updating nvm & npm..."
if [ -s "$NVM_HOME/nvm.sh" ]; then
nvm install stable --reinstall-packages-from=current
nvm install-latest-npm
fi
echo "Updating global npm packages.."
npm update -g
}
pid () {
ps -fe | grep "$1" | awk '{print $2}'
}
flushdns () {
sudo killall -HUP mDNSResponder
sudo killall mDNSResponderHelper
sudo dscacheutil -flushcache
}
m () {
node "$DOTFILES/bin/mail.js" "$1"
}
ctx () {
echo "🐳 $(docker context show)"
echo "⬢ version is $(node --version)"
}