-
Notifications
You must be signed in to change notification settings - Fork 1
/
.settings
145 lines (111 loc) · 3.55 KB
/
.settings
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
# configure tmux
export LC_ALL="en_US.UTF-8"
tm() {
[[ -n "$TMUX" ]] && change="switch-client" || change="attach-session"
if [ $1 ]; then
tmux $change -t "$1" 2>/dev/null || (tmux new-session -d -s $1 && tmux $change -t "$1"); return
fi
session=$(tmux list-sessions -F "#{session_name}" 2>/dev/null | fzf --exit-0) && tmux $change -t "$session" || echo "No sessions found."
}
# configure opam
[ -d ~/.opam ] && . $HOME/.opam/opam-init/init.zsh > /dev/null 2> /dev/null || true
# configure haskell
export PATH="$HOME/.local/bin:$PATH"
# configure rust
PATH="$HOME/.cargo/bin:$PATH"
source $HOME/.cargo/env
# configure go
export GOPATH="$HOME/go"
export GOROOT="$(brew --prefix golang)/libexec"
export PATH="$GOPATH/bin:$PATH"
export PATH="$GOROOT/bin:$PATH"
# configure fzf
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
export FZF_DEFAULT_COMMAND='rg --files --hidden --no-ignore --follow -g "!**/{.git,node_modules}/*" 2> /dev/null'
export FZF_DEFAULT_OPTS='--color fg:231,fg+:231,bg:16,bg+:236,hl:212,hl+:212,info:84,prompt:231,pointer:117,spinner:141,marker:215'
export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
# fbr - checkout git branch (including remote branches), sorted by most recent commit, limit 30 last branches
fbr() {
local branches branch
branches=$(git for-each-ref --count=50 --sort=-committerdate refs/heads/ --format="%(refname:short)") &&
branch=$(echo "$branches" |
fzf-tmux -d $(( 2 + $(wc -l <<< "$branches") )) +m) &&
git checkout $(echo "$branch" | sed "s/.* //" | sed "s#remotes/[^/]*/##")
}
# enable color constants
autoload -U colors
colors
export BACKGROUND="#282a36"
export FOREGROUND="#f8f8f2"
export SELECTION="#44475a"
export COMMENT="#6272a4"
export CYAN="#8be9fd"
export GREEN="#50fa7b"
export ORANGE="#ffb86c"
export PINK="#ff79c6"
export PURPLE="#bd93f9"
export RED="#ff5555"
export YELLOW="#f1fa8c"
# vi mode keybindings
bindkey -v
bindkey "^F" vi-cmd-mode
bindkey "^[b" backward-word
bindkey "^[f" forward-word
bindkey "^[a" beginning-of-line
bindkey "^[e" end-of-line
bindkey '^[[A' history-substring-search-up
bindkey '^[[B' history-substring-search-down
bindkey '^[d' backward-kill-word
bindkey '^U' kill-whole-line
# options
setopt autopushd pushdminus pushdsilent pushdtohome cdablevars
DIRSTACKSIZE=5
setopt extendedglob
setopt IGNORE_EOF
unsetopt nomatch
# editor
if command_exists "nvim"; then
VISUAL="nvim"
elif command_exists "mvim"; then
VISUAL="mvim -v"
else
VISUAL="vim"
fi
# history
export VISUAL="$VISUAL"
export EDITOR="$VISUAL"
setopt hist_ignore_all_dups inc_append_history
HISTFILE=~/.zhistory
HISTSIZE=4096
SAVEHIST=4096
export ERL_AFLAGS="-kernel shell_history enabled"
# completions
fpath=(~/.zsh/completion /usr/local/share/zsh/site-functions $fpath)
autoload -Uz compinit
if [[ -n $HOME/.zcompdump(#qN.mh+24) ]]; then
compinit -d $HOME/.zcompdump
else
compinit -C
fi
compdef -d mcd
# path stuff
# ensure dotfiles bin directory is loaded first
PATH="$HOME/.bin:$PATH"
# mkdir .git/safe in the root of repos I trust
# adds node_modules/.bin to PATH
PATH=".git/safe/../../node_modules/.bin:$PATH"
export -U PATH
# enable rvm
[[ -s "$HOME/.rvm/scripts/rvm" ]] && \. "$HOME/.rvm/scripts/rvm"
# configure wordchars
export WORDCHARS='*?_[]~=&;!#$%^(){}'
# configure homebrew
export HOMEBREW_AUTO_UPDATE_SECS=600000 # once/week
export PATH="/usr/local/bin:$PATH"
# fnm
eval "$(fnm env --use-on-cd)"
# /fnm
# configure openssl
export PATH="/usr/local/opt/[email protected]/bin:$PATH"
# run tabtab for package auto-completions
[[ -f ~/.config/tabtab/zsh/__tabtab.zsh ]] && . ~/.config/tabtab/zsh/__tabtab.zsh || true