X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=etc%2Fzsh%2Fzshrc;h=d975fbda630faedf4ffb6171bb1f8ca1d55529ae;hb=d9c3851ad99948d96e6faf12142dfcbfd4e0ee61;hp=3fcbfcb2cd0fb36066058ae5b8db4d568116fb7f;hpb=e705ddd7c09db9ed34c0fe7c1e92b86a0fb50519;p=grml-etc-core.git diff --git a/etc/zsh/zshrc b/etc/zsh/zshrc index 3fcbfcb..d975fbd 100644 --- a/etc/zsh/zshrc +++ b/etc/zsh/zshrc @@ -733,8 +733,8 @@ grml_toggle_abbrev() { } #k# Toggle abbreviation expansion on/off -zle -N grml_toggle_abbrev bindkey '^xA' grml_toggle_abbrev +zle -N grml_toggle_abbrev # add a command line to the shells history without executing it commit-to-history() { @@ -1135,7 +1135,7 @@ if check_com -c screen || check_com -c tmux; then _screen_display_wordlist[${_screen_display_wordlist[(i)$PREFIX]}]="" compadd -a _screen_display_wordlist } - #k# complete word from currently visible GNU screen buffer + #m# k CTRL-x\,\,\,S Complete word from GNU screen buffer bindkey -r "^xS" compdef -k _complete_screen_display complete-word '^xS' fi @@ -1348,8 +1348,9 @@ function prompt_grml_help () { - The attributes used with the items are customisable via strings used before and after the actual item. - The available items are: rc, rc-always, change-root, user, at, host, path, - vcs, percent, sad-smiley, battery. + The available items are: at, battery, change-root, date, grml-chroot, + history, host, jobs, newline, path, percent, rc, rc-always, sad-smiley, + shell-level, time, user, vcs The actual configuration is done via zsh's \`zstyle' mechanism. The context, that is used while looking up styles is: @@ -1368,7 +1369,8 @@ function prompt_grml_help () { - items (list): The list of items used in the prompt. If \`vcs' is present in the list, the theme's code invokes \`vcs_info' - accordingly. Default: rc user change-root at host path vcs precent + accordingly. Default (left): rc change-root user at host path vcs + percent; Default (right): sad-smiley Available styles in 'items:' are: pre, post. These are strings that are inserted before (pre) and after (post) the item in question. Thus, the @@ -1383,6 +1385,37 @@ function prompt_grml_help () { __EOF0__ } +function prompt_grml-chroot_help () { + cat <<__EOF0__ + prompt grml-chroot + + This is a variation of the grml prompt, see: prompt -h grml + + The main difference is the default value of the \`items' style. The rest + behaves exactly the same. Here are the defaults for \`grml-chroot': + + - left: grml-chroot user at host path percent + - right: (empty list) +__EOF0__ +} + +function prompt_grml-large_help () { + cat <<__EOF0__ + prompt grml-large + + This is a variation of the grml prompt, see: prompt -h grml + + The main difference is the default value of the \`items' style. In + particular, this theme uses _two_ lines instead of one with the plain + \`grml' theme. The rest behaves exactly the same. Here are the defaults + for \`grml-large': + + - left: rc jobs history shell-level change-root time date newline user + at host path vcs percent + - right: sad-smiley +__EOF0__ +} + function grml_prompt_setup () { emulate -L zsh autoload -Uz vcs_info @@ -1419,7 +1452,7 @@ grml_prompt_pre_default=( host '' jobs '%F{cyan}' newline '' - path '%b' + path '%B' percent '' rc '%F{red}' rc-always '' @@ -1440,7 +1473,7 @@ grml_prompt_post_default=( host '' jobs '%f' newline '' - path '%B' + path '%b' percent '' rc '%f' rc-always '' @@ -1462,7 +1495,7 @@ grml_prompt_token_default=( jobs '[%j running job(s)] ' newline $'\n' path '%40<..<%~%<< ' - percent '%% ' + percent '%# ' rc '%(?..%? )' rc-always '%?' sad-smiley '%(?..:()' @@ -1696,7 +1729,7 @@ function grml_control_xterm_title () { } zrcautoload add-zsh-hook || add-zsh-hook () { :; } -if [[ $NOPRECMD -gt 0 ]]; then +if [[ $NOPRECMD -eq 0 ]]; then add-zsh-hook precmd grml_reset_screen_title add-zsh-hook precmd grml_vcs_to_screen_title add-zsh-hook preexec grml_maintain_name @@ -1740,15 +1773,15 @@ fi # do we have GNU ls with color-support? if [[ "$TERM" != dumb ]]; then - #a1# execute \kbd{@a@}:\quad ls with colors + #a1# List files with colors (\kbd{ls -b -CF \ldots}) alias ls='ls -b -CF '${ls_options:+"${ls_options[*]}"} - #a1# execute \kbd{@a@}:\quad list all files, with colors + #a1# List all files, with colors (\kbd{ls -la \ldots}) alias la='ls -la '${ls_options:+"${ls_options[*]}"} - #a1# long colored list, without dotfiles (@a@) + #a1# List files with long colored list, without dotfiles (\kbd{ls -l \ldots}) alias ll='ls -l '${ls_options:+"${ls_options[*]}"} - #a1# long colored list, human readable sizes (@a@) + #a1# List files with long colored list, human readable sizes (\kbd{ls -hAl \ldots}) alias lh='ls -hAl '${ls_options:+"${ls_options[*]}"} - #a1# List files, append qualifier to filenames \\&\quad(\kbd{/} for directories, \kbd{@} for symlinks ...) + #a1# List files with long colored list, append qualifier to filenames (\kbd{ls -lF \ldots})\\&\quad(\kbd{/} for directories, \kbd{@} for symlinks ...) alias l='ls -lF '${ls_options:+"${ls_options[*]}"} else alias ls='ls -b -CF' @@ -2107,11 +2140,6 @@ graphic chipset." #a1# Output version of running grml alias grml-version='cat /etc/grml_version' - if check_com -c rebuildfstab ; then - #a1# Rebuild /etc/fstab - alias grml-rebuildfstab='rebuildfstab -v -r -config' - fi - if check_com -c grml-debootstrap ; then debian2hd() { echo "Installing debian to harddisk is possible by using grml-debootstrap." @@ -2163,7 +2191,7 @@ sll() { # PAGER='less -Mr' - If so, the use of $PAGER here needs fixing # with respect to wordsplitting. (ie. ${=PAGER}) if check_com -c $PAGER ; then - #f1# View Debian's changelog of a given package + #f3# View Debian's changelog of a given package dchange() { emulate -L zsh if [[ -r /usr/share/doc/$1/changelog.Debian.gz ]] ; then @@ -2187,7 +2215,7 @@ if check_com -c $PAGER ; then _dchange() { _files -W /usr/share/doc -/ } compdef _dchange dchange - #f1# View Debian's NEWS of a given package + #f3# View Debian's NEWS of a given package dnews() { emulate -L zsh if [[ -r /usr/share/doc/$1/NEWS.Debian.gz ]] ; then @@ -2204,7 +2232,7 @@ if check_com -c $PAGER ; then _dnews() { _files -W /usr/share/doc -/ } compdef _dnews dnews - #f1# View Debian's copyright of a given package + #f3# View Debian's copyright of a given package dcopyright() { emulate -L zsh if [[ -r /usr/share/doc/$1/copyright ]] ; then @@ -2217,7 +2245,7 @@ if check_com -c $PAGER ; then _dcopyright() { _files -W /usr/share/doc -/ } compdef _dcopyright dcopyright - #f1# View upstream's changelog of a given package + #f3# View upstream's changelog of a given package uchange() { emulate -L zsh if [[ -r /usr/share/doc/$1/changelog.gz ]] ; then @@ -2337,7 +2365,7 @@ alias help-zshglob=H-Glob HELP_LINES_PER_PAGE=20 #v1# set location of help-zle cache file HELP_ZLE_CACHE_FILE=~/.cache/zsh_help_zle_lines.zsh -#f1# helper function for help-zle, actually generates the help text +# helper function for help-zle, actually generates the help text help_zle_parse_keybindings() { emulate -L zsh @@ -2438,7 +2466,7 @@ help_zle_parse_keybindings() typeset -g help_zle_sln typeset -g -a help_zle_lines -#f1# Provides (partially autogenerated) help on keybindings and the zsh line editor +# Provides (partially autogenerated) help on keybindings and the zsh line editor help-zle() { emulate -L zsh @@ -2452,8 +2480,8 @@ help-zle() help_zle_sln=$((help_zle_sln + HELP_LINES_PER_PAGE)) zle -M "${(F)help_zle_lines[sln,help_zle_sln-1]}" } -#k# display help for keybindings and ZLE (cycle pages with consecutive use) -zle -N help-zle && bindkey '^xz' help-zle +#k# display help for keybindings and ZLE +zle -N help-zle && bindkey '^xz' help-zle # note: cycle pages with consecutive use of '^xz' # grep for running process, like: 'any vim' any() { @@ -2588,11 +2616,12 @@ alias lsnewdir="ls -rthdl *(/om[1,10]) .*(D/om[1,10])" alias lsolddir="ls -rthdl *(/Om[1,10]) .*(D/Om[1,10])" # some useful aliases -#a2# Remove current empty directory. Execute \kbd{cd ..; rmdir $OLDCWD} +#a2# Remove current empty directory. Execute \kbd{cd ..; rmdir \$OLDCWD} alias rmcdir='cd ..; rmdir $OLDPWD || cd $OLDPWD' #a2# ssh with StrictHostKeyChecking=no \\&\quad and UserKnownHostsFile unset alias insecssh='ssh -o "StrictHostKeyChecking=no" -o "UserKnownHostsFile=/dev/null"' +#a2# scp with StrictHostKeyChecking=no \\&\quad and UserKnownHostsFile unset alias insecscp='scp -o "StrictHostKeyChecking=no" -o "UserKnownHostsFile=/dev/null"' # work around non utf8 capable software in utf environment via $LANG and luit @@ -2661,11 +2690,11 @@ cdt() { } #f5# Create directory under cursor or the selected area -# Press ctrl-xM to create the directory under the cursor or the selected area. -# To select an area press ctrl-@ or ctrl-space and use the cursor. -# Use case: you type "mv abc ~/testa/testb/testc/" and remember that the -# directory does not exist yet -> press ctrl-XM and problem solved inplaceMkDirs() { + # Press ctrl-xM to create the directory under the cursor or the selected area. + # To select an area press ctrl-@ or ctrl-space and use the cursor. + # Use case: you type "mv abc ~/testa/testb/testc/" and remember that the + # directory does not exist yet -> press ctrl-XM and problem solved local PATHTOMKDIR if ((REGION_ACTIVE==1)); then local F=$MARK T=$CURSOR @@ -2692,6 +2721,7 @@ inplaceMkDirs() { zle end-of-line fi } + #k# mkdir -p from string under cursor or marked area zle -N inplaceMkDirs && bindkey '^xM' inplaceMkDirs