X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=.zshrc;h=a801df5b3131abacb5b0ed77d480833ff91d5e34;hb=79e0daa0ba0e120f19f6fae04b7d3c876b0d9ca5;hp=ac34f10d33ab5721964c74330ba09b248707eb3e;hpb=d443352c96f036858b34c4827d8690ed69c04709;p=user%2Fhenk%2Fvcsh%2Fzsh.git diff --git a/.zshrc b/.zshrc index ac34f10..a801df5 100644 --- a/.zshrc +++ b/.zshrc @@ -1,70 +1,154 @@ -autoload -Uz vcs_info -autoload -U edit-command-line +# zprof only makes sense at the very top +# zmodload zsh/zprof -. ~/.zsh_comprc -. ~/.zsh_functions -. ~/.zsh_functions_media -. ~/.zsh_functions_taskwarrior -. ~/.zsh_aliases -. ~/.zsh_local -zle -N zle-line-init -zle -N zle-keymap-select -zle -N edit-command-line +# exports are usually independent and standalone +# so they can stay at the top + +# where to write history +export HISTFILE=~/.zsh_history +export HISTSIZE=1000000000 +export SAVEHIST=1000000000 -HISTFILE=~/.zsh_history -HISTSIZE=5000 -SAVEHIST=3000 +export ANSIBLE_NOCOWS=1 +export ANSIBLE_STRATEGY=mitogen_linear +# what is that for exactly? maybe taskwarrior? or timewarrior? REPORTTIME=10 -HENKSPROMPTHEADER=$'%F{red}%D{%a}%f %F{green}%D{%F %T Wk %V}%f %F{blue}%D{%s}%f %F{yellow}%n@%m%f\n' +## define word characters (for stuff like backward-word, forward-word, backward-kill-word,..) +## these are NOT separators but chars considered part of a word +#WORDCHARS='*?_-.[]~=/&;!#$%^(){}<>' # the default + +# zsh you-should-use +export YSU_MODE=ALL -PATH=~/bin:~/usr/bin:~/usr/local/bin:$PATH +# I want sbin executables available +export PATH=${PATH}:/usr/local/sbin:/sbin:/usr/sbin +export PATH=${PATH}:~/bin -hash -d diary=~/Data/henksfiles/TODO/henksfiles/documents/private/diary -hash -d bewerbung=~/Data/henksfiles/workinprogress/Dokumente/bewerbung +# colors for newt/whiptail (for debconf, needrestart, etc.) +# works better with selenized colorscheme +export NEWT_COLORS='checkbox=yellow,;roottext=yellow,' + +# where zsh looks for functions +fpath=(~/.zsh_functions $fpath) + + +# hashed directories are usually independent and standalone +# so they can stay at the top +hash -d diary=~/Data/henksfiles/workinprogress/Dokumente/diary +hash -d lifedocs=~/Data/henksfiles/workinprogress/Dokumente/Leben +hash -d bewerbung=~/Data/personal/henk/workinprogress/Dokumente/Arbeit/bewerbung hash -d rezepte=~/Data/henksfiles/workinprogress/Dokumente/rezepte/cuisine hash -d templates=~/Data/henksfiles/workinprogress/templates +hash -d gitignore=~/Data/public/software/gitignore +hash -d doc=/usr/share/doc +hash -d TODO=~/Data/henksfiles/TODO/ +hash -d fortunes=~/Data/henksfiles/workinprogress/Dokumente/fortunes/ -## define word separators (for stuff like backward-word, forward-word, backward-kill-word,..) -#WORDCHARS='*?_-.[]~=/&;!#$%^(){}<>' # the default -#WORDCHARS=. -WORDCHARS='*?_[]~=&;!#$%^(){}' -#WORDCHARS='${WORDCHARS:s@/@}' +# aliases are usually independent and standalone +source ~/.zsh_aliases +# TODO break this up or make functions or get rid? +source ~/.zsh_qemu + + +# options are usually independent and standalone +# so they can stay at the top setopt AUTO_CD setopt CHASE_LINKS setopt AUTO_NAME_DIRS setopt BRACE_CCL -setopt EXTENDED_GLOB +#setopt EXTENDED_GLOB setopt MARK_DIRS setopt NUMERIC_GLOB_SORT setopt RC_EXPAND_PARAM -setopt WARN_CREATE_GLOBAL +#setopt WARN_CREATE_GLOBAL setopt GLOB_DOTS +# remove previous entries from history setopt HIST_IGNORE_ALL_DUPS +# do not write lines starting with a space to history file setopt HIST_IGNORE_SPACE -setopt HIST_NO_STORE +# Remove superfluous blanks setopt HIST_REDUCE_BLANKS +# expand history expansion for verification setopt HIST_VERIFY -setopt INC_APPEND_HISTORY +# save timestamp and runtime as well +setopt EXTENDED_HISTORY +# write line to history file when finished, not when started, to have correct runtime +setopt INC_APPEND_HISTORY_TIME setopt NO_CLOBBER setopt CORRECT setopt CORRECT_ALL -unsetopt NOMATCH +#unsetopt NOMATCH setopt PRINT_EXIT_VALUE setopt AUTO_CONTINUE setopt NO_BG_NICE -setopt LONG_LIST_JOBS +#setopt LONG_LIST_JOBS + + +# initialize completion system before loading plugins and external configs +source ~/.zsh_comprc + + +# TODO break this up +source ~/.zsh_zinit + + +# TODO reconsider this +# source /usr/share/autojump/autojump.sh + + +# autoload all functions defined by me +# since only filenames are required we +# * follow symlinks +# * work only on plainfiles +# * take only the filename part without dir +autoload ~/.zsh_functions/[^_]*(-.:t) + + +autoload -Uz vcs_info +autoload -Uz zcalc +autoload -Uz zargs + + +# spawn editor on current command line +autoload -Uz edit-command-line +zle -N edit-command-line +bindkey -M vicmd '^X^E' edit-command-line +bindkey -M viins '^X^E' edit-command-line + + +# source ~/.zsh_taskwarrior +# source ~/.zsh_functions +# source ~/.zsh_functions_media +# source ~/.zsh_functions_taskwarrior + + +# TODO break this up +source ~/.zsh_local + +# TODO break this up +source ~/.env_* + + +typeset -U path + +#zle -N zle-line-init +#zle -N zle-keymap-select + -bindkey -e +# keybindings might have been changed by plugins, etc. +# so they go more to the bottom -task awaiting +# commands to run after initialization is complete +#task awaiting cat ~/.motd +# zprof