]> git.netwichtig.de Git - user/henk/vcsh/zsh.git/blob - .zshrc
add section comment
[user/henk/vcsh/zsh.git] / .zshrc
1 # zprof only makes sense at the very top
2 # zmodload zsh/zprof
3
4
5 # settings for the zsh don’t get exported
6
7 # where to write history
8 HISTFILE=~/.zsh_history
9 HISTSIZE=1000000000
10 SAVEHIST=1000000000
11
12 # print time needed for execution when it takes longer than this value
13 REPORTTIME=10
14
15
16 ## define word characters (for stuff like backward-word, forward-word, backward-kill-word,..)
17 ## these are NOT separators but chars considered part of a word
18 #WORDCHARS='*?_-.[]~=/&;!#$%^(){}<>' # the default
19
20
21 # where zsh looks for functions
22
23 # add my own functions
24 fpath=(~/.zsh_functions $fpath)
25
26
27 # hashed directories are usually independent and standalone
28 # so they can stay at the top
29 hash -d diary=~/Data/henksfiles/workinprogress/Dokumente/diary
30 hash -d lifedocs=~/Data/henksfiles/workinprogress/Dokumente/Leben
31 hash -d bewerbung=~/Data/personal/henk/workinprogress/Dokumente/Arbeit/bewerbung
32 hash -d rezepte=~/Data/henksfiles/workinprogress/Dokumente/rezepte/cuisine
33 hash -d templates=~/Data/henksfiles/workinprogress/templates
34 hash -d gitignore=~/Data/public/software/gitignore
35 hash -d doc=/usr/share/doc
36 hash -d TODO=~/Data/henksfiles/TODO/
37 hash -d fortunes=~/Data/henksfiles/workinprogress/Dokumente/fortunes/
38
39
40 # aliases are usually independent and standalone
41 source ~/.zsh_aliases
42
43
44 # load plugin manager after all 'static' stuff is done
45 # source ~/Data/public/software/zinit/zinit.zsh
46 source "${HOME}/.zgenom/zgenom.zsh"
47 # Check for plugin and zgenom updates every 7 days
48 # This does not increase the startup time.
49 zgenom autoupdate
50
51
52 # mostly static stuff, env vars
53 # zinit load 'https://github.com/joel-porquet/zsh-dircolors-solarized'
54 # zinit load "https://github.com/greymd/tmux-xpanes"
55 zgenom load 'https://github.com/joel-porquet/zsh-dircolors-solarized'
56 zgenom load "https://github.com/greymd/tmux-xpanes"
57
58
59 # options are usually independent and standalone
60 # so they can stay at the top
61 setopt AUTO_CD
62 setopt CHASE_LINKS
63
64 setopt AUTO_NAME_DIRS
65
66 setopt BRACE_CCL
67 setopt EXTENDED_GLOB
68 setopt MARK_DIRS
69 setopt NUMERIC_GLOB_SORT
70 setopt RC_EXPAND_PARAM
71 #setopt WARN_CREATE_GLOBAL
72 setopt GLOB_DOTS
73
74 # remove previous entries from history
75 setopt HIST_IGNORE_ALL_DUPS
76 # do not write lines starting with a space to history file
77 setopt HIST_IGNORE_SPACE
78 # Remove superfluous blanks
79 setopt HIST_REDUCE_BLANKS
80 # expand history expansion for verification
81 setopt HIST_VERIFY
82 # save timestamp and runtime as well
83 setopt EXTENDED_HISTORY
84 # write line to history file when finished, not when started, to have correct runtime
85 setopt INC_APPEND_HISTORY_TIME
86
87 setopt NO_CLOBBER
88 setopt CORRECT
89 setopt CORRECT_ALL
90 #unsetopt NOMATCH
91 setopt PRINT_EXIT_VALUE
92
93 setopt AUTO_CONTINUE
94 setopt NO_BG_NICE
95 # display PID when suspending processes as well
96 setopt LONG_LIST_JOBS
97 # Report the status of background jobs immediately, rather than waiting until just before printing a prompt.
98 setopt NOTIFY
99 # 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.
100 setopt HASH_LIST_ALL
101 # 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.
102 setopt COMPLETE_IN_WORD
103 # use zsh field splitting
104 setopt NO_SH_WORD_SPLIT
105 # unset parameters should cause an error
106 # CONFLICTS WITH ZINIT
107 # CONFLICTS WITH ZGENOM
108 # setopt NO_UNSET
109
110
111 # load before completion system initialization
112 # zinit load 'https://github.com/zsh-users/zsh-completions'
113 zgenom load 'https://github.com/zsh-users/zsh-completions'
114
115 # initialize completion system before loading plugins and external configs
116 source ~/.zsh_comprc
117
118
119 # TODO reconsider this
120 # source /usr/share/autojump/autojump.sh
121
122
123 # autoload all functions defined by me
124 # since only filenames are required we
125 # * follow symlinks
126 # * work only on plainfiles
127 # * take only the filename part without dir
128 autoload ~/.zsh_functions/[^_]*(-.:t)
129
130
131 autoload -Uz vcs_info
132 autoload -Uz zcalc
133 autoload -Uz zargs
134
135
136 # spawn editor on current command line
137 autoload -Uz edit-command-line
138 zle -N edit-command-line
139 bindkey -M vicmd '^X^E' edit-command-line
140 bindkey -M viins '^X^E' edit-command-line
141
142
143 #this mainly sets vars, binds keys, does zle stuff
144 # zinit load 'https://github.com/laurenkt/zsh-vimto'
145 zgenom load 'https://github.com/laurenkt/zsh-vimto'
146
147 # functions and an autoload, should be fine here
148 # zinit load 'https://github.com/MichaelAquilina/zsh-you-should-use'
149 zgenom load 'https://github.com/MichaelAquilina/zsh-you-should-use'
150
151
152 # source ~/.zsh_taskwarrior
153 # source ~/.zsh_functions
154 # source ~/.zsh_functions_media
155 # source ~/.zsh_functions_taskwarrior
156
157
158 for f in ~/.zsh_local*(N)
159 do
160         source $f
161 done
162
163
164 #zle -N zle-line-init
165 #zle -N zle-keymap-select
166
167
168 # keybindings might have been changed by plugins, etc.
169 # so they go more to the bottom
170
171
172 # should probably be closer to the bottom than the top?
173 # zinit load 'https://github.com/nojhan/liquidprompt'
174 zgenom load 'https://github.com/nojhan/liquidprompt'
175
176
177 # needs to be loaded close to the end because it hooks into other stuff
178 # see https://github.com/zsh-users/zsh-syntax-highlighting
179 source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
180
181 source /usr/share/doc/fzf/examples/key-bindings.zsh
182 source /usr/share/doc/fzf/examples/completion.zsh
183
184 # Use fd (https://github.com/sharkdp/fd) instead of the default find
185 # command for listing path candidates.
186 # - The first argument to the function ($1) is the base path to start traversal
187 # - See the source code (completion.{bash,zsh}) for the details.
188 _fzf_compgen_path() {
189   fdfind --hidden --follow --exclude ".git" . "$1"
190 }
191
192 # Use fd to generate the list for directory completion
193 _fzf_compgen_dir() {
194   fdfind --type d --hidden --follow --exclude ".git" . "$1"
195 }
196
197 # commands to run after initialization is complete
198 #task awaiting
199 cat ~/.motd
200 # zprof