blob: 771e96dbec7def5317c1fc56dc1a99c0f27ca091 (
plain)
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
|
# -*- mode: sh; -*-
setopt hist_ignore_space
setopt inc_append_history_time
setopt transient_rprompt
WORDCHARS=${${WORDCHARS//[-.=]}//[\/]}
zmodload zsh/terminfo
bindkey '\e[3~' delete-char
bindkey '\C-hd' describe-key-briefly
dc () {
if [[ -x ./docker-compose ]]
then
./docker-compose "$@"
else
docker-compose "$@"
fi
}
compdef '_dispatch docker-compose docker-compose' dc
backward-argument () {
local WORDCHARS="\!\`~#@$%^&*()-_=+[{]}\|;:,<.>/?\'\""
zle backward-word
}
forward-argument () {
local WORDCHARS="\!\`~#@$%^&*()-_=+[{]}\|;:,<.>/?\'\""
zle forward-word
}
backward-kill-argument () {
local WORDCHARS="\!\`~#@$%^&*()-_=+[{]}\|;:,<.>/?\'\""
zle backward-kill-word
}
kill-argument () {
local WORDCHARS="\!\`~#@$%^&*()-_=+[{]}\|;:,<.>/?\'\""
zle kill-word
}
zle -N backward-argument
zle -N forward-argument
zle -N kill-argument
zle -N backward-kill-argument
bindkey '\e^b' backward-argument
bindkey '\e^f' forward-argument
bindkey '\e^d' backward-kill-argument
bindkey '\e^k' kill-argument
sort=${commands[gsort]:-$commands[sort]}
ds () {
du -hd1 "$@" | $sort -h
}
# returns the first ghq root, whereas $GHQ_ROOT returns all
hash -d p=$ghq_root[0]
hash -d go=${GOPATH:-$HOME/go}
zle -C hist-complete complete-word _generic
zstyle ':completion:hist-complete:*' completer _history
bindkey '\e ' hist-complete
zstyle ':completion:*' matcher-list 'm:{a-zA-Z-_}={A-Za-z_-}' 'r:|=*' 'l:|=* r:|=*'
zstyle ':completion:*' completer _expand _complete _match
# General configuration
if [[ $TERM == "dumb" ]]
then
PROMPT='%B%F{green}%n %F{blue}%~%b%f
%# '
unsetopt zle
else
AGKOZAK_USER_HOST_DISPLAY=0
AGKOZAK_SHOW_STASH=0
AGKOZAK_SHOW_VIRTUALENV=0
AGKOZAK_PROMPT_DIRTRIM=0
AGKOZAK_LEFT_PROMPT_ONLY=${+SSH_CLIENT}
check_kubectl_context () {
if [[ "$PWD" =~ /kubernetes || "$PWD" =~ /monorepo ]]
then
kubectl_context=$(kubectl config current-context)
kubectl_namespace=$(kubectl config view -o jsonpath="{.contexts[?(@.name==\"${kubectl_context}\")].context.namespace}")
if [[ $kubectl_context =~ production ]]
then
kubectl_colour=red
kubectl_release=satoshipay-${kubectl_namespace}
else
kubectl_colour=yellow
if [[ -z $mr ]]
then
kubectl_release=satoshipay-${kubectl_namespace}-staging
else
kubectl_release=story-${mr}-${kubectl_namespace}
fi
fi
prompt_context="%F{$kubectl_colour}[${kubectl_context}:${kubectl_namespace}]%f"
else
prompt_context=
fi
}
precmd_functions+=(check_kubectl_context)
AGKOZAK_CUSTOM_RPROMPT='${prompt_context}%(3V.%F{${AGKOZAK_COLORS_BRANCH_STATUS}%3v%f.)'
fi
export FZF_CTRL_T_COMMAND='
(git ls-tree -r --name-only HEAD ||
fd --hidden --follow --exclude ".git" . |
sed s/^..//) 2> /dev/null'
export FZF_ALT_C_COMMAND='fd --type d --hidden --follow --exclude ".git" .'
export FZF_DEFAULT_COMMAND=$FZF_CTRL_T_COMMAND
bindkey '^t' transpose-chars
bindkey '^x^f' fzf-file-widget
zstyle ":anyframe:selector:fzf:" command "fzf --height 40%"
bindkey '\es' anyframe-widget-cd-ghq-repository
bindkey '\ej' anyframe-widget-cd-ghq-repository
bindkey '^x^k' anyframe-widget-kill
unsetopt flow_control # Let me use ^S and ^Q
|