X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=etc%2Fzsh%2Fzshrc;h=a3deefedcb5e06def3625142a631f0bcedae5bd7;hb=82c0c4a13a452d5f6581fa8b9863409f9a1afc64;hp=94420c73b57fdf37c983c01713fbb2da3d2cf32e;hpb=6a512b0c54fdc39142b1015386992387d68aab86;p=grml-etc-core.git diff --git a/etc/zsh/zshrc b/etc/zsh/zshrc index 94420c7..a3deefe 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-chroot': + + - 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 @@ -1410,66 +1443,66 @@ typeset -gA grml_prompt_pre_default \ grml_prompt_token_default grml_prompt_pre_default=( - rc '%F{red}' - rc-always '' - change-root '' - user '%B%F{blue}' at '' + battery ' ' + change-root '' + date '%F{blue}' + grml-chroot '%F{red}' + history '%F{green}' host '' - path '%b' - vcs '' + jobs '%F{cyan}' + newline '' + path '%B' percent '' + rc '%F{red}' + rc-always '' sad-smiley '' - battery ' ' - newline '' - jobs '%F{cyan}' - history '%F{green}' - date '%F{blue}' - time '%F{blue}' shell-level '%F{red}' - grml-chroot '%F{red}' + time '%F{blue}' + user '%B%F{blue}' + vcs '' ) grml_prompt_post_default=( - rc '%f' - rc-always '' - change-root '' - user '%f%b' at '' + battery '' + change-root '' + date '%f' + grml-chroot '%f ' + history '%f' host '' - path '%B' - vcs '' + jobs '%f' + newline '' + path '%b' percent '' + rc '%f' + rc-always '' sad-smiley '' - battery '' - newline '' - jobs '%f' - history '%f' - date '%f' - time '%f' shell-level '%f' - grml-chroot '%f ' + time '%f' + user '%f%b' + vcs '' ) grml_prompt_token_default=( - rc '%(?..%? )' - rc-always '%?' - change-root 'debian_chroot' - user '%n' at '@' + battery 'PERCENT' + change-root 'debian_chroot' + date '%D{%Y-%m-%d}' + grml-chroot 'GRML_CHROOT' + history '{history#%!} ' host '%m ' + jobs '[%j running job(s)] ' + newline $'\n' path '%40<..<%~%<< ' - vcs '0' - percent '%% ' + percent '% # ' + rc '%(?..%? )' + rc-always '%?' sad-smiley '%(?..:()' - battery 'PERCENT' - newline $'\n' - jobs '[%j running job(s)] ' - history '{history#%!} ' - date '%D{%Y-%m-%d}' - time '%D{%H:%M:%S} ' shell-level '%(3L.+ .)' - grml-chroot 'GRML_CHROOT' + time '%D{%H:%M:%S} ' + user '%n' + vcs '0' ) function grml_typeset_and_wrap () { @@ -2163,7 +2196,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 +2220,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 +2237,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 +2250,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 @@ -2588,7 +2621,7 @@ 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 @@ -2661,11 +2694,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 +2725,7 @@ inplaceMkDirs() { zle end-of-line fi } + #k# mkdir -p from string under cursor or marked area zle -N inplaceMkDirs && bindkey '^xM' inplaceMkDirs