|
|
|
|
man-command ()
|
|
|
|
|
{
|
|
|
|
|
if [ -n "$BUFFER" ]
|
|
|
|
|
then
|
|
|
|
|
local FirstArg=`echo $BUFFER | awk '{print $1}'`
|
|
|
|
|
man $FirstArg
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sudo-command ()
|
|
|
|
|
{
|
|
|
|
|
if [ -n "$BUFFER" ]
|
|
|
|
|
then
|
|
|
|
|
local FirstArg=`echo $BUFFER | awk '{print $1}'`
|
|
|
|
|
if [ "$FirstArg" != "sudo" ]
|
|
|
|
|
then
|
|
|
|
|
BUFFER="sudo $BUFFER"
|
|
|
|
|
zle end-of-line
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
move-pointer-to-next-arg ()
|
|
|
|
|
{
|
|
|
|
|
if [ -n "$BUFFER" ]
|
|
|
|
|
then
|
|
|
|
|
CURSOR=`echo | awk '
|
|
|
|
|
{ curpos=5; arg=$BUFFER; orig=arg;
|
|
|
|
|
arg=substr(arg, curpos);
|
|
|
|
|
if (substr(arg, 1, 1) == "-") arg=substr(arg, 2);
|
|
|
|
|
curpos+=index(arg, "-");
|
|
|
|
|
print curpos; }'`
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
move-pointer-after-command ()
|
|
|
|
|
{
|
|
|
|
|
if [ -n "$BUFFER" ]
|
|
|
|
|
then
|
|
|
|
|
local LenOfFirstArg=`echo $BUFFER | awk '{ print length($1) }'`
|
|
|
|
|
CURSOR=$LenOfFirstArg
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bmi ()
|
|
|
|
|
{
|
|
|
|
|
echo $(($1/$2/$2))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
zle -N man-command # shows the man-page of the written command
|
|
|
|
|
zle -N sudo-command # writes "sudo " in front of the buffer
|
|
|
|
|
zle -N move-pointer-after-command # moves the pointer between command and first parameter
|
|
|
|
|
zle -N move-pointer-to-next-arg
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bindkey -e
|
|
|
|
|
bindkey '\ew' kill-region
|
|
|
|
|
bindkey -s '\el' "ls\n"
|
|
|
|
|
bindkey '^r' history-incremental-search-backward
|
|
|
|
|
|
|
|
|
|
bindkey '^[[1~' beginning-of-line # [Begin]
|
|
|
|
|
bindkey '^[[2~' overwrite-mode # [Insert]
|
|
|
|
|
bindkey '^[[3~' delete-char # [Delete]
|
|
|
|
|
bindkey '^[[4~' end-of-line # [End]
|
|
|
|
|
bindkey "^[[5~" up-line-or-history # [Page-Up]
|
|
|
|
|
bindkey "^[[6~" down-line-or-history # [Page-Down]
|
|
|
|
|
|
|
|
|
|
# make search up and down work, so partially type and hit up/down to find relevant stuff
|
|
|
|
|
bindkey '^[[A' up-line-or-search
|
|
|
|
|
bindkey '^[[B' down-line-or-search
|
|
|
|
|
|
|
|
|
|
bindkey "^[[H" beginning-of-line
|
|
|
|
|
bindkey "^[OH" beginning-of-line
|
|
|
|
|
bindkey "^[[F" end-of-line
|
|
|
|
|
bindkey "^[OF" end-of-line
|
|
|
|
|
bindkey ' ' magic-space # also do history expansion on space
|
|
|
|
|
|
|
|
|
|
#bindkey "^[[1;5C" forward-word
|
|
|
|
|
#bindkey "^[[1;5D" backward-word
|
|
|
|
|
#TODO: make keybindings ctrl+right and ctrl+left work
|
|
|
|
|
bindkey "^[[OC" move-pointer-to-next-arg
|
|
|
|
|
bindkey "^[[OD" move-pointer-after-command
|
|
|
|
|
|
|
|
|
|
bindkey '^[[Z' reverse-menu-complete
|
|
|
|
|
|
|
|
|
|
# Make the delete key (or Fn + Delete on the Mac) work instead of outputting a ~
|
|
|
|
|
bindkey '^?' backward-delete-char
|
|
|
|
|
bindkey "^[[3~" delete-char
|
|
|
|
|
bindkey "^[3;5~" delete-char
|
|
|
|
|
bindkey "\e[3~" delete-char
|
|
|
|
|
|
|
|
|
|
bindkey '^N' man-command
|
|
|
|
|
bindkey '^S' sudo-command
|
|
|
|
|
bindkey '^U' kill-whole-line
|
|
|
|
|
bindkey '^Q' push-input
|
|
|
|
|
bindkey '^P' yank
|
|
|
|
|
bindkey '^f' forward-word
|
|
|
|
|
bindkey '^b' backward-word
|
|
|
|
|
|
|
|
|
|
# some command shortcuts
|
|
|
|
|
alias ls='ls --color=always'
|
|
|
|
|
alias lh='ls -lh'
|
|
|
|
|
alias ls_sizesorted='ls -lSrah'
|
|
|
|
|
alias lad='ls -d .*(/)' # only show dot-directories
|
|
|
|
|
alias lsa='ls -a .*(.)' # only show dot-files
|
|
|
|
|
alias lss='ls -l *(s,S,t)' # only files with setgid/setuid/sticky flag
|
|
|
|
|
alias lsl='ls -l *(@[1,10])' # only symlinks
|
|
|
|
|
alias lsx='ls -l *(*[1,10])' # only executables
|
|
|
|
|
alias lsw='ls -ld *(R,W,X.^ND/)' # world-{readable,writable,executable} files
|
|
|
|
|
alias lsbig="ls -flh *(.OL[1,10])" # display the biggest files
|
|
|
|
|
alias lsd='ls -d ^.*(/)' # only show directories
|
|
|
|
|
alias lse='ls -d *(/^F)' # only show empty directories
|
|
|
|
|
alias lsnew="ls -drl *(Dom[1,10])" # display the newest files and directories
|
|
|
|
|
alias lsold="ls -rtlh *(Dom[1,10])" # display the oldest files and directories
|
|
|
|
|
alias lssmall="ls -Srl *(.oL[1,10])" # display the smallest files
|
|
|
|
|
alias screensaver='clear; for ((;;)); do echo -ne "\033[$((1+RANDOM%LINES));$((1+RANDOM%COLUMNS))H\033[$((RANDOM%2));3$((RANDOM%8))m$((RANDOM%10))"; sleep 0.1 ; done' # credits to lkj@commandlinefu.com
|
|
|
|
|
|
|
|
|
|
# global aliases – like aliases working _behind_ the command
|
|
|
|
|
alias -g _C='|wc -l'
|
|
|
|
|
alias -g _G='|grep'
|
|
|
|
|
alias -g _H='|head'
|
|
|
|
|
alias -g _L='|less'
|
|
|
|
|
alias -g _N='&>/dev/null'
|
|
|
|
|
alias -g _R='| tr A-z N-za-m'
|
|
|
|
|
alias -g _T='|tail'
|
|
|
|
|
#
|
|
|
|
|
# Unbind c-s and c-q
|
|
|
|
|
stty -ixon
|
|
|
|
|
|
|
|
|
|
# consider emacs keybindings:
|
|
|
|
|
|
|
|
|
|
#bindkey -e ## emacs key bindings
|
|
|
|
|
#
|
|
|
|
|
#bindkey '^[[A' up-line-or-search
|
|
|
|
|
#bindkey '^[[B' down-line-or-search
|
|
|
|
|
#bindkey '^[^[[C' emacs-forward-word
|
|
|
|
|
#bindkey '^[^[[D' emacs-backward-word
|
|
|
|
|
#
|
|
|
|
|
#bindkey -s '^X^Z' '%-^M'
|
|
|
|
|
#bindkey '^[e' expand-cmd-path
|
|
|
|
|
#bindkey '^[^I' reverse-menu-complete
|
|
|
|
|
#bindkey '^X^N' accept-and-infer-next-history
|
|
|
|
|
#bindkey '^W' kill-region
|
|
|
|
|
#bindkey '^I' complete-word
|
|
|
|
|
## Fix weird sequence that rxvt produces
|
|
|
|
|
#bindkey -s '^[[Z' '\t'
|
|
|
|
|
#
|