]> git.netwichtig.de Git - user/henk/vcsh/zsh.git/blob - .zshrc
92f61c17ef928c42170d7fa1cc5a930d88ae6fca
[user/henk/vcsh/zsh.git] / .zshrc
1 # zprof only makes sense at the very top
2 # zmodload zsh/zprof
3
4
5 # exports are usually independent and standalone
6 # so they can stay at the top
7
8 # where to write history
9 export HISTFILE=~/.zsh_history
10 export HISTSIZE=1000000000
11 export SAVEHIST=1000000000
12
13 export ANSIBLE_NOCOWS=1
14 export ANSIBLE_STRATEGY=mitogen_linear
15
16 # what is that for exactly? maybe taskwarrior? or timewarrior?
17 REPORTTIME=10
18
19 ## define word characters (for stuff like backward-word, forward-word, backward-kill-word,..)
20 ## these are NOT separators but chars considered part of a word
21 #WORDCHARS='*?_-.[]~=/&;!#$%^(){}<>' # the default
22
23 # zsh you-should-use
24 export YSU_MODE=ALL
25
26 # I want sbin executables available
27 export PATH=${PATH}:/usr/local/sbin:/sbin:/usr/sbin
28 export PATH=${PATH}:~/bin
29
30 # colors for newt/whiptail (for debconf, needrestart, etc.)
31 # works better with selenized colorscheme
32 export NEWT_COLORS='checkbox=yellow,;roottext=yellow,'
33
34 # where zsh looks for functions
35 fpath=(~/.zsh_functions $fpath)
36
37
38 # hashed directories are usually independent and standalone
39 # so they can stay at the top
40 hash -d diary=~/Data/henksfiles/workinprogress/Dokumente/diary
41 hash -d lifedocs=~/Data/henksfiles/workinprogress/Dokumente/Leben
42 hash -d bewerbung=~/Data/personal/henk/workinprogress/Dokumente/Arbeit/bewerbung
43 hash -d rezepte=~/Data/henksfiles/workinprogress/Dokumente/rezepte/cuisine
44 hash -d templates=~/Data/henksfiles/workinprogress/templates
45 hash -d gitignore=~/Data/public/software/gitignore
46 hash -d doc=/usr/share/doc
47 hash -d TODO=~/Data/henksfiles/TODO/
48 hash -d fortunes=~/Data/henksfiles/workinprogress/Dokumente/fortunes/
49
50
51 # aliases are usually independent and standalone
52 source ~/.zsh_aliases
53 # TODO break this up or make functions or get rid?
54 source ~/.zsh_qemu
55
56
57 # load plugin manager after all 'static' stuff is done
58 source ~/Data/public/software/zinit/zinit.zsh
59
60
61 # mostly static stuff, env vars
62 zinit load 'https://github.com/joel-porquet/zsh-dircolors-solarized'
63 zinit load "https://github.com/greymd/tmux-xpanes"
64
65
66 # options are usually independent and standalone
67 # so they can stay at the top
68 setopt AUTO_CD
69 setopt CHASE_LINKS
70
71 setopt AUTO_NAME_DIRS
72
73 setopt BRACE_CCL
74 #setopt EXTENDED_GLOB
75 setopt MARK_DIRS
76 setopt NUMERIC_GLOB_SORT
77 setopt RC_EXPAND_PARAM
78 #setopt WARN_CREATE_GLOBAL
79 setopt GLOB_DOTS
80
81 # remove previous entries from history
82 setopt HIST_IGNORE_ALL_DUPS
83 # do not write lines starting with a space to history file
84 setopt HIST_IGNORE_SPACE
85 # Remove superfluous blanks
86 setopt HIST_REDUCE_BLANKS
87 # expand history expansion for verification
88 setopt HIST_VERIFY
89 # save timestamp and runtime as well
90 setopt EXTENDED_HISTORY
91 # write line to history file when finished, not when started, to have correct runtime
92 setopt INC_APPEND_HISTORY_TIME
93
94 setopt NO_CLOBBER
95 setopt CORRECT
96 setopt CORRECT_ALL
97 #unsetopt NOMATCH
98 setopt PRINT_EXIT_VALUE
99
100 setopt AUTO_CONTINUE
101 setopt NO_BG_NICE
102 # display PID when suspending processes as well
103 setopt LONG_LIST_JOBS
104 # Report the status of background jobs immediately, rather than waiting until just before printing a prompt.
105 setopt NOTIFY
106 # Whenever  a  command completion or spelling correction is attempted, make sure the entire command path is hashed first.  This makes the first completion slower but avoids false reports of spelling errors.
107 setopt HASH_LIST_ALL
108 # If unset, the cursor is set to the end of the word if completion is started. Otherwise it stays there and completion is done from both ends.
109 setopt COMPLETE_IN_WORD
110 # use zsh field splitting
111 setopt NO_SH_WORD_SPLIT
112 # unset parameters should cause an error
113 # CONFLICTS WITH ZINIT
114 # setopt NO_UNSET
115
116
117 # load before completion system initialization
118 zinit load 'https://github.com/zsh-users/zsh-completions'
119
120 # initialize completion system before loading plugins and external configs
121 source ~/.zsh_comprc
122
123
124 # TODO reconsider this
125 # source /usr/share/autojump/autojump.sh
126
127
128 # autoload all functions defined by me
129 # since only filenames are required we
130 # * follow symlinks
131 # * work only on plainfiles
132 # * take only the filename part without dir
133 autoload ~/.zsh_functions/[^_]*(-.:t)
134
135
136 autoload -Uz vcs_info
137 autoload -Uz zcalc
138 autoload -Uz zargs
139
140
141 # spawn editor on current command line
142 autoload -Uz edit-command-line
143 zle -N edit-command-line
144 bindkey -M vicmd '^X^E' edit-command-line
145 bindkey -M viins '^X^E' edit-command-line
146
147
148 #this mainly sets vars, binds keys, does zle stuff
149 zinit load 'https://github.com/laurenkt/zsh-vimto'
150
151 # functions and an autoload, should be fine here
152 zinit load 'https://github.com/MichaelAquilina/zsh-you-should-use'
153
154
155 # source ~/.zsh_taskwarrior
156 # source ~/.zsh_functions
157 # source ~/.zsh_functions_media
158 # source ~/.zsh_functions_taskwarrior
159
160
161 # TODO break this up
162 source ~/.zsh_local
163
164 # TODO break this up
165 source ~/.env_*
166
167
168 typeset -U path
169
170 #zle -N zle-line-init
171 #zle -N zle-keymap-select
172
173
174 # keybindings might have been changed by plugins, etc.
175 # so they go more to the bottom
176
177
178 # should probably be closer to the bottom than the top?
179 zinit load 'https://github.com/nojhan/liquidprompt'
180
181
182 # needs to be loaded close to the end because it hooks into other stuff
183 # see https://github.com/zsh-users/zsh-syntax-highlighting
184 source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
185
186
187 # commands to run after initialization is complete
188 #task awaiting
189 cat ~/.motd
190 # zprof