]> git.netwichtig.de Git - user/henk/vcsh/zsh.git/blobdiff - .zshrc
improve explanations
[user/henk/vcsh/zsh.git] / .zshrc
diff --git a/.zshrc b/.zshrc
index 739dac548b2e6911f9d58f77bacb9357e2c4ede6..336ef765ec4702be2ba44d2a54b8269958cc6fc9 100644 (file)
--- a/.zshrc
+++ b/.zshrc
 # zmodload zsh/zprof
 
 
-# exports are usually independent and standalone
-# so they can stay at the top
+# settings for the zsh don’t get exported
 
 # where to write history
-export HISTFILE=~/.zsh_history
-export HISTSIZE=1000000000
-export SAVEHIST=1000000000
-
-export ANSIBLE_NOCOWS=1
-export ANSIBLE_STRATEGY=mitogen_linear
-
-export TEXMFCNF=${HOME}/.texlive:
-
-export FZF_DEFAULT_COMMAND='fdfind --type f'
+HISTFILE=~/.zsh_history
+HISTSIZE=1000000000
+SAVEHIST=1000000000
 
-# what is that for exactly? maybe taskwarrior? or timewarrior?
+# print time needed for execution when it takes longer than this value
 REPORTTIME=10
 
+
 ## 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
-
-# I want sbin executables available
-export PATH=${PATH}:/usr/local/sbin:/sbin:/usr/sbin
-export PATH=${PATH}:~/bin
-
-# colors for newt/whiptail (for debconf, needrestart, etc.)
-# works better with selenized colorscheme
-# everything that seems irrelevant is set to brown
-NEWT_COLORS=''
-# foreground seems irrelevant
-NEWT_COLORS="${NEWT_COLORS};root=brown,blue"
-# text in the root window
-NEWT_COLORS="${NEWT_COLORS};roottext=yellow,blue"
-
-# box/window/button shadows
-NEWT_COLORS="${NEWT_COLORS};shadow=brown,black"
-
-# boxes/windows themselves
-NEWT_COLORS="${NEWT_COLORS};window=brown,lightgray"
-# box/window titles
-NEWT_COLORS="${NEWT_COLORS};title=yellow,lightgray"
-# box/window borders
-NEWT_COLORS="${NEWT_COLORS};border=gray,lightgray"
-
-# full buttons
-NEWT_COLORS="${NEWT_COLORS};button=black,red"
-# compact buttons
-NEWT_COLORS="${NEWT_COLORS};compactbutton=black,lightgray"
-# selected/active button
-NEWT_COLORS="${NEWT_COLORS};actbutton=green,gray"
-
-# checkbox itself and text
-NEWT_COLORS="${NEWT_COLORS};checkbox=black,blue"
-# selection marker for checkbox
-NEWT_COLORS="${NEWT_COLORS};actcheckbox=yellow,gray"
-
-# TODO FIXME: no clue what that is
-NEWT_COLORS="${NEWT_COLORS};entry=yellow,brown"
-# TODO FIXME: no clue what that is
-NEWT_COLORS="${NEWT_COLORS};disentry=brown,yellow"
-
-# TODO FIXME: no clue what that is
-NEWT_COLORS="${NEWT_COLORS};label=yellow,red"
-
-# unselected entries in menus
-NEWT_COLORS="${NEWT_COLORS};listbox=lightgray,gray"
-# selected entries in menus
-NEWT_COLORS="${NEWT_COLORS};actsellistbox=yellow,blue"
-# TODO FIXME: no clue what that is
-NEWT_COLORS="${NEWT_COLORS};actlistbox=brown,red"
-# TODO FIXME: no clue what that is
-NEWT_COLORS="${NEWT_COLORS};sellistbox=black,brown"
-
-NEWT_COLORS="${NEWT_COLORS};textbox=black,lightgray"
-NEWT_COLORS="${NEWT_COLORS};acttextbox=brown,green"
-
-# TODO FIXME: no clue what that is
-NEWT_COLORS="${NEWT_COLORS};helpline=yellow,brown"
-
-# probably for gauges
-NEWT_COLORS="${NEWT_COLORS};emptyscale=red"
-NEWT_COLORS="${NEWT_COLORS};fullscale=blue"
-
-export NEWT_COLORS
-
-# black
-# darkgray
-# brown
-# yellow
-#
-# blue
-# cyan
-# gray
-# green
-# magenta
-# red
-#
-# lightblue
-# lightcyan
-# lightgray
-# lightgreen
-# lightmagenta
-# lightred
+## these are NOT respected by e.g. vi-backward-kill-word, it seems
+# WORDCHARS='*?_-.[]~=/&;!#$%^(){}<>' # the default
+## see below how to solve this with select-word-style module
 
 
 # where zsh looks for functions
+
+# add my own functions
 fpath=(~/.zsh_functions $fpath)
 
 
@@ -130,12 +41,9 @@ hash -d fortunes=~/Data/henksfiles/workinprogress/Dokumente/fortunes/
 
 # aliases are usually independent and standalone
 source ~/.zsh_aliases
-# TODO break this up or make functions or get rid?
-source ~/.zsh_qemu
 
 
 # load plugin manager after all 'static' stuff is done
-# source ~/Data/public/software/zinit/zinit.zsh
 source "${HOME}/.zgenom/zgenom.zsh"
 # Check for plugin and zgenom updates every 7 days
 # This does not increase the startup time.
@@ -143,8 +51,6 @@ zgenom autoupdate
 
 
 # mostly static stuff, env vars
-# zinit load 'https://github.com/joel-porquet/zsh-dircolors-solarized'
-# zinit load "https://github.com/greymd/tmux-xpanes"
 zgenom load 'https://github.com/joel-porquet/zsh-dircolors-solarized'
 zgenom load "https://github.com/greymd/tmux-xpanes"
 
@@ -164,9 +70,9 @@ setopt RC_EXPAND_PARAM
 #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
+# Ignore a duplicate of the previous command
+setopt HIST_IGNORE_DUPS
+# Do not save commands starting with a space to history
 setopt HIST_IGNORE_SPACE
 # Remove superfluous blanks
 setopt HIST_REDUCE_BLANKS
@@ -177,6 +83,7 @@ setopt EXTENDED_HISTORY
 # write line to history file when finished, not when started, to have correct runtime
 setopt INC_APPEND_HISTORY_TIME
 
+# Error on a redirections which would overwrite an existing file
 setopt NO_CLOBBER
 setopt CORRECT
 setopt CORRECT_ALL
@@ -202,7 +109,6 @@ setopt NO_SH_WORD_SPLIT
 
 
 # load before completion system initialization
-# zinit load 'https://github.com/zsh-users/zsh-completions'
 zgenom load 'https://github.com/zsh-users/zsh-completions'
 
 # initialize completion system before loading plugins and external configs
@@ -222,23 +128,35 @@ autoload ~/.zsh_functions/[^_]*(-.:t)
 
 
 autoload -Uz vcs_info
-autoload -Uz zcalc
-autoload -Uz zargs
+zstyle ':vcs_info:*' enable git
+
+# similar to xargs
+autoload -U zargs
+
+# similar to rename or mmv
+autoload -U zmv
+autoload -U zln
+autoload -U zcp
 
 
+# zle customization
+
 # 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
 
+# show globbing results live
+autoload insert-files
+zle -N insert-files
+bindkey '^Xf' insert-files
+
 
 #this mainly sets vars, binds keys, does zle stuff
-# zinit load 'https://github.com/laurenkt/zsh-vimto'
-zgenom load 'https://github.com/laurenkt/zsh-vimto'
+# zgenom load 'https://github.com/laurenkt/zsh-vimto'
 
 # functions and an autoload, should be fine here
-# zinit load 'https://github.com/MichaelAquilina/zsh-you-should-use'
 zgenom load 'https://github.com/MichaelAquilina/zsh-you-should-use'
 
 
@@ -248,18 +166,12 @@ zgenom load 'https://github.com/MichaelAquilina/zsh-you-should-use'
 # source ~/.zsh_functions_taskwarrior
 
 
-# TODO break this up
-source ~/.zsh_local
-
-# TODO break this up
-for f in ~/.env_*(N)
+for f in ~/.zsh_local*(N)
 do
        source $f
 done
 
 
-typeset -U path
-
 #zle -N zle-line-init
 #zle -N zle-keymap-select
 
@@ -267,9 +179,24 @@ typeset -U path
 # keybindings might have been changed by plugins, etc.
 # so they go more to the bottom
 
+# the vi bindings for these do not respect WORDCHARS and are not replaced by the select-word-style functions
+bindkey -M vicmd 'w' forward-word
+bindkey -M vicmd 'b' backward-word
+bindkey -M viins '^W' backward-kill-word
+
+# default vi history search is strange
+bindkey -M viins '^R' history-incremental-search-backward
+
+
+# better word matching
+autoload -U select-word-style
+select-word-style normal
+# these characters do _not_ separate words but are part of words
+zstyle ':zle:*' word-chars '*?[]~;!#$%^(){}<>'
+
 
+LP_ENABLE_TIME=1
 # should probably be closer to the bottom than the top?
-# zinit load 'https://github.com/nojhan/liquidprompt'
 zgenom load 'https://github.com/nojhan/liquidprompt'