typeset -ga ls_options
typeset -ga grep_options
+
+# Colors on GNU ls(1)
if ls --color=auto / >/dev/null 2>&1; then
ls_options+=( --color=auto )
+# Colors on FreeBSD and OSX ls(1)
elif ls -G / >/dev/null 2>&1; then
ls_options+=( -G )
fi
+
+# Natural sorting order on GNU ls(1)
+# OSX and IllumOS have a -v option that is not natural sorting
+if ls --version |& grep -q 'GNU' >/dev/null 2>&1 && ls -v / >/dev/null 2>&1; then
+ ls_options+=( -v )
+fi
+
+# Color on GNU and FreeBSD grep(1)
if grep --color=auto -q "a" <<< "a" >/dev/null 2>&1; then
grep_options+=( --color=auto )
fi
zle -N help-show-abk
-# press "ctrl-e d" to insert the actual date in the form yyyy-mm-dd
+# press "ctrl-x d" to insert the actual date in the form yyyy-mm-dd
function insert-datestamp () { LBUFFER+=${(%):-'%D{%Y-%m-%d}'}; }
zle -N insert-datestamp
[[ $load_cache -eq 0 ]] && . $HELP_ZLE_CACHE_FILE && return
fi
- #fill with default keybindings, possibly to be overwriten in a file later
+ #fill with default keybindings, possibly to be overwritten in a file later
#Note that due to zsh inconsistency on escaping assoc array keys, we encase the key in '' which we will remove later
local -A help_zle_keybindings
help_zle_keybindings['<Ctrl>@']="set MARK"
# ignores lines that are commentend out
# grabs first in '' or "" enclosed string with length between 1 and 6 characters
elif [[ "$cline" == [^#]#(bind2maps[[:space:]](*)-s|bindkey|compdef -k)[[:space:]](*)(#b)(\"((?)(#c1,6))\"|\'((?)(#c1,6))\')(#B)(*) ]]; then
- #description prevously found ? description not more than 2 lines away ? keybinding not empty ?
+ #description previously found ? description not more than 2 lines away ? keybinding not empty ?
if [[ -n $lastkeybind_desc && $num_lines_elapsed -lt 2 && -n $match[1] ]]; then
#substitute keybinding string with something readable
k=${${${${${${${match[1]/\\e\^h/<Alt><BS>}/\\e\^\?/<Alt><BS>}/\\e\[5~/<PageUp>}/\\e\[6~/<PageDown>}//(\\e|\^\[)/<Alt>}//\^/<Ctrl>}/3~/<Alt><Del>}
#k# Trigger menu-complete
bind2maps emacs viins -- -s '\ei' menu-complete # menu completion via esc-i
#k# Insert a timestamp on the command line (yyyy-mm-dd)
-bind2maps emacs viins -- -s '\ed' insert-datestamp
+bind2maps emacs viins -- -s '^xd' insert-datestamp
#k# Insert last typed word
bind2maps emacs viins -- -s "\em" insert-last-typed-word
#k# A smart shortcut for \kbd{fg<enter>}
# history
#v#
-HISTFILE=${ZDOTDIR:-${HOME}}/.zsh_history
+HISTFILE=${HISTFILE:-${ZDOTDIR:-${HOME}}/.zsh_history}
isgrmlcd && HISTSIZE=500 || HISTSIZE=5000
isgrmlcd && SAVEHIST=1000 || SAVEHIST=10000 # useful for setopt append_history
autoload -Uz vcs_info
# The following autoload is disabled for now, since this setup includes a
# static version of the ‘add-zsh-hook’ function above. It needs to be
- # reenabled as soon as that static definition is removed again.
+ # re-enabled as soon as that static definition is removed again.
#autoload -Uz add-zsh-hook
add-zsh-hook precmd prompt_$1_precmd
}
# The following autoload is disabled for now, since this setup includes a
# static version of the ‘add-zsh-hook’ function above. It needs to be
-# reenabled as soon as that static definition is removed again.
+# re-enabled as soon as that static definition is removed again.
#zrcautoload add-zsh-hook || add-zsh-hook () { :; }
if [[ $NOPRECMD -eq 0 ]]; then
add-zsh-hook precmd grml_reset_screen_title
# debian stuff
if [[ -r /etc/debian_version ]] ; then
if [[ -z "$GRML_NO_APT_ALIASES" ]]; then
- #a3# Execute \kbd{apt-cache search}
- alias acs='apt-cache search'
- #a3# Execute \kbd{apt-cache show}
- alias acsh='apt-cache show'
#a3# Execute \kbd{apt-cache policy}
alias acp='apt-cache policy'
if check_com -c apt ; then
+ #a3# Execute \kbd{apt search}
+ alias acs='apt search'
+ #a3# Execute \kbd{apt show}
+ alias acsh='apt show'
#a3# Execute \kbd{apt dist-upgrade}
salias adg="apt dist-upgrade"
#a3# Execute \kbd{apt upgrade}
salias ag="apt upgrade"
#a3# Execute \kbd{apt install}
salias agi="apt install"
- #a3# Execute \kbd{apt-get update}
+ #a3# Execute \kbd{apt update}
salias au="apt update"
else
+ alias acs='apt-cache search'
+ alias acsh='apt-cache show'
salias adg="apt-get dist-upgrade"
salias ag="apt-get upgrade"
salias agi="apt-get install"
# Module zstat is loaded by default in grml zshrc, no extra action needed for that.
#
# Known bugs:
-# If you happen to come accross a symlink that points to a destination on an other partition
+# If you happen to come across a symlink that points to a destination on another partition
# with the same inode number, that will be marked as symlink loop though it is not.
# Two hints for this situation:
# I) Play lottery the same day, as you seem to be rather lucky right now.
return $result
}
-#f5# cd to directoy and list files
+#f5# cd to directory and list files
function cl () {
emulate -L zsh
cd $1 && ls -a
fi
}
-#f5# Create Directoy and \kbd{cd} to it
+#f5# Create Directory and \kbd{cd} to it
function mkcd () {
if (( ARGC != 1 )); then
printf 'usage: mkcd <new-directory>\n'