272 lines
6.9 KiB
Text
272 lines
6.9 KiB
Text
# {{{ Keybindings
|
|
# a function to
|
|
# Use ^v to find out the keynames
|
|
|
|
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
|
|
}
|
|
|
|
add-accept-keywords ()
|
|
{
|
|
if [ -n "$BUFFER" ]
|
|
then
|
|
BUFFER="ACCEPT_KEYWORDS=\"\" $BUFFER"
|
|
CURSOR=17
|
|
fi
|
|
}
|
|
|
|
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
|
|
zle -N add-accept-keywords
|
|
|
|
#bindkey -v # vi key bindings
|
|
bindkey -e # emacs key bindings
|
|
bindkey '^[[2~' overwrite-mode # [Insert]
|
|
bindkey '^[[3~' delete-char # [Delete]
|
|
bindkey '^[[5~' up-line-or-history # [Page Up]
|
|
bindkey '^[[6~' down-line-or-history # [Page Down]
|
|
bindkey '^[[1~' beginning-of-line # [Begin]
|
|
bindkey '^[[4~' end-of-line # [End]
|
|
bindkey '^[[A' history-search-backward # [Up]
|
|
bindkey '^[[B' history-search-forward # [Down]
|
|
bindkey '^[Oa' history-incremental-search-backward # [Ctrl+Up]
|
|
bindkey '^[Ob' history-incremental-search-forward # [Ctrl+Down]
|
|
bindkey '^[Oc' move-pointer-to-next-arg
|
|
bindkey '^[Od' move-pointer-after-command
|
|
bindkey '^Z' which-command
|
|
bindkey '^N' man-command
|
|
bindkey '^S' sudo-command
|
|
bindkey '^Y' add-accept-keywords
|
|
bindkey '^U' kill-whole-line
|
|
bindkey '^Q' push-input
|
|
bindkey '^P' yank
|
|
bindkey '^f' forward-word
|
|
bindkey '^b' backward-word
|
|
|
|
# Unbind c-s and c-q
|
|
stty -ixon
|
|
|
|
#}}}
|
|
|
|
# {{{ aliases and functions
|
|
#funktions
|
|
|
|
# help for aliases
|
|
aliashelp()
|
|
{
|
|
echo '
|
|
ALIAS DESCRIPTION
|
|
cl goto and list directory
|
|
leo search/translate per leo with '$BROWSER'
|
|
wikipedia search per wikipedia with '$BROWSER'
|
|
disassemble disassemble given files
|
|
da Show the diskusage of the file/directory
|
|
daL same as above but with symlink-dereferencing
|
|
j show the runned (background-)jobs
|
|
CM `./configure && make`
|
|
CMI `./configure && make && make install`
|
|
cl go to $1 and show the contents
|
|
ls `ls --color=always`
|
|
lh `ls -lh`
|
|
ls_sizesorted long self explaining name... thx to the tabcompletion ^^
|
|
lad only show dot-directories
|
|
lsa only show dot-files
|
|
lss only files with setgid/setuid/sticky flag
|
|
lsl only symlinks
|
|
lsx only executables
|
|
lsw world-{readable,writable,executable} files
|
|
lsbig display the biggest files
|
|
lsd only show directories
|
|
lse only show empty directories
|
|
lsnew display the newest files
|
|
lsold display the oldest files
|
|
lssmall display the smallest files
|
|
sortfast http://www.commandlinefu.com/commands/view/10313/fastest-sort
|
|
'
|
|
}
|
|
|
|
cl() { cd $1 && ls -a } # cd and ls
|
|
leo() { ${BROWSER} "http://dict.leo.org/?search=$*" } # gimmie leo results
|
|
wikipedia() { ${BROWSER} "http://de.wikipedia.org/wiki/Spezial:Search/${(C)1}" }
|
|
disassemble() { gcc -pipe -S -o - -O -g $* | as -aldh -o /dev/null } # self-explaining
|
|
regexp() {
|
|
pcre_compile $1 && \
|
|
pcre_match $2 && echo "regex matches" || echo "regex does not match"
|
|
}
|
|
|
|
sleepuntil() { #TODO
|
|
usage="Usage: $0 Stunden [Minuten [Sekunden]]\nBeispiel:\n $0 6\n(schlaeft bis um 6)"
|
|
if [ "$1" = "" ]; then echo $usage
|
|
else
|
|
h="`date '+%H'`"
|
|
m="`date '+%M'`"
|
|
s="`date '+%S'`"
|
|
|
|
if [ "$1" = "" ]; then echo $usage; exit 1; fi
|
|
if [ "$2" = "" ]; then 2=0; fi
|
|
if [ "$3" = "" ]; then 3=0; fi
|
|
|
|
if [ $h -gt $1 ]; then
|
|
echo "24-($1-$h)"
|
|
let "hdiff=24-($1-$h)"
|
|
else
|
|
echo "$h-$1"
|
|
let "hdiff=$h-$1"
|
|
fi
|
|
|
|
if [ $m -gt $2 ]; then
|
|
echo "60-($m-$2)"
|
|
let "mdiff=60-($m-$2)"
|
|
else
|
|
echo "$m-$2"
|
|
let "mdiff=$m-$1"
|
|
fi
|
|
|
|
if [ $s -gt $3 ]; then
|
|
echo "60-($s-$3)"
|
|
let "sdiff=24-($s-$3)"
|
|
else
|
|
echo "$s-$3"
|
|
let "sdiff=$s-$3"
|
|
fi
|
|
|
|
diff=$[$hdiff*3600+$mdiff*60+$sdiff]
|
|
echo "... schlafe fuer ${diff}s (${hdiff}h${mdiff}m${sdiff}s) ..."
|
|
sleep 1
|
|
fi
|
|
}
|
|
|
|
test-for-ftp-mv ()
|
|
{
|
|
z=0
|
|
orig=$@
|
|
dateien=""
|
|
ordner=""
|
|
goal=""
|
|
|
|
while [ $# -gt 0 ]
|
|
do
|
|
let z++
|
|
if [ $# -ne 1 ]
|
|
then
|
|
[ -f "$1" ] && dateien="$dateien\n$1"
|
|
[ -d "$1" ] && ordner="$ordner\n$1"
|
|
[ -d "$1" -o -f "$1" ] || echo "\"$1\" existiert nicht und wird ignoriert!"
|
|
else
|
|
goal=$1
|
|
fi
|
|
shift
|
|
done
|
|
|
|
zmodload -i zsh/pcre
|
|
if pcre_compile "^/home/ftp" && pcre_match $goal
|
|
then
|
|
for o in `echo -e $ordner`
|
|
do
|
|
sudo mv $o $goal
|
|
sudo chmod 555 $goal$o
|
|
sudo chown ftp:ftp $goal$o
|
|
done
|
|
for d in `echo -e $dateien`
|
|
do
|
|
sudo mv $d $goal
|
|
sudo chmod 444 $goal`basename $d`
|
|
sudo chown ftp:ftp $goal`basename $d`
|
|
done
|
|
else
|
|
arg=""
|
|
for x in `echo -e $ordner $dateien $goal`
|
|
do
|
|
arg="$arg $x"
|
|
done
|
|
mv $arg
|
|
fi
|
|
}
|
|
|
|
# normal aliases
|
|
alias da='du -sch'
|
|
alias daL='du -schL'
|
|
alias j='jobs -l'
|
|
alias CM='./configure && make'
|
|
alias CMI='./configure && make && make install'
|
|
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 mtr="mtr -t" # a better traceroute (no gtk please)
|
|
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
|
|
alias sortfast="sort -S$(($(sed '/MemT/!d;s/[^0-9]*//g' /proc/meminfo)/1024-200)) --parallel=$(($(grep -c '^proc' /proc/cpuinfo)*2))"
|
|
alias gitpush="hipchat-notify.sh && git push $@"
|
|
#alias mv="test-for-ftp-mv";
|
|
# TODO!!!
|
|
|
|
# global aliases
|
|
alias -g BG='& exit'
|
|
alias -g C='|wc -l'
|
|
alias -g G='|grep'
|
|
alias -g H='|head'
|
|
alias -g Hl=' --help |& less -r'
|
|
alias -g L='|less'
|
|
alias -g LL='|& less -r'
|
|
alias -g M='|most'
|
|
alias -g N='&>/dev/null'
|
|
alias -g R='| tr A-z N-za-m'
|
|
alias -g SL='| sort | less'
|
|
alias -g S='| sort'
|
|
alias -g T='|tail'
|
|
# }}}
|
|
|
|
# vim: set foldmethod=marker tabstop=8
|