]> git.madduck.net Git - etc/zsh.git/blobdiff - .zsh/zshrc/30_aliases

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

update URL and copyright
[etc/zsh.git] / .zsh / zshrc / 30_aliases
index fd47bc9f8d80ba23d176a762c30509a9ee8b39ed..9614b2555d8bc91a5e35db1778df40eec41e365d 100644 (file)
@@ -2,12 +2,14 @@
 #
 # Defines command shortcuts
 #
 #
 # Defines command shortcuts
 #
-# Copyright © 1994–2008 martin f. krafft <madduck@madduck.net>
+# Copyright © 1994–2017 martin f. krafft <madduck@madduck.net>
 # Released under the terms of the Artistic Licence 2.0
 #
 # Source repository: http://git.madduck.net/v/etc/zsh.git
 #
 
 # Released under the terms of the Artistic Licence 2.0
 #
 # Source repository: http://git.madduck.net/v/etc/zsh.git
 #
 
+function trace() { eval "set -x; $@" }
+
 alias mv='nocorrect mv'
 alias cp='nocorrect cp'
 alias ln='nocorrect ln'
 alias mv='nocorrect mv'
 alias cp='nocorrect cp'
 alias ln='nocorrect ln'
@@ -23,27 +25,40 @@ alias curl='noglob curl'
 alias apt-cache='noglob apt-cache'
 alias locate='noglob locate'
 
 alias apt-cache='noglob apt-cache'
 alias locate='noglob locate'
 
-_LS_OPTS='-bCF --color=auto'
-ls --group-directories-first >/dev/null 2>&1 \
-  && _LS_OPTS="$_LS_OPTS --group-directories-first"
+local _USER_AGENT="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.14) Gecko/20080404 Iceweasel/2.0.0.14 (Debian-2.0.0.14-2)"
+alias swget="noglob wget --user-agent='$USER_AGENT'"
+
+typeset -a _ls_opts; _ls_opts=(-bC --color=auto)
+command ls --group-directories-first >/dev/null 2>&1 \
+  && _ls_opts+=--group-directories-first
 # I prefer POSIX collation for ls
 # I prefer POSIX collation for ls
-alias ls="LC_COLLATE=POSIX ls $_LS_OPTS"
-unset _LS_OPTS
+alias ls="LC_COLLATE=POSIX ls $_ls_opts"
 
 
+alias l='ls --time-style=+%Y-%m-%d-%H:%M -gG'
 alias ll='ls -l'
 alias la='ls -a'
 alias lla='ls -la'
 alias ll='ls -l'
 alias la='ls -a'
 alias lla='ls -la'
+alias lt='ls -lt'
+alias lrt='ls -lrt'
+alias lat='ls -lat'
+alias lart='ls -lart'
 # List only directories and symbolic links that point to directories
 # List only directories and symbolic links that point to directories
-alias lsd='ls -ld *(-/DN)'
+alias lsd='ll -d *(-/DN)'
+
+alias lscontext=ls
+cd () { __CHPWD_RUN_FIRST=lscontext && builtin cd "$@" && unset __CHPWD_RUN_FIRST }
+#_cd_l() { ll }
+#chpwd_functions+=_cd_l
+
+# #183394
+alias w='w|cat'
 
 
-alias lsbig="ls -flh *(.OL[1,10])"
-alias lssmall="ls -Srl *(.oL[1,10])"
-alias lsnew="ls -rl *(D.om[1,10])"
-alias lsold="ls -rtlh *(D.om[1,10])"
+alias -g ND='*(/om[1])' # newest directory
+alias -g NF='*(.om[1])' # newest file
 
 
-alias egrep='egrep --color=auto -d skip'
-alias fgrep='fgrep --color=auto -d skip'
-alias grep='grep --color=auto -d skip'
+alias egrep='egrep --color=auto -d skip -D skip'
+alias fgrep='fgrep --color=auto -d skip -D skip'
+alias grep='grep --color=auto -d skip -D skip'
 
 alias mmv='noglob zmv -W'
 alias zcp='zmv -C'
 
 alias mmv='noglob zmv -W'
 alias zcp='zmv -C'
@@ -56,28 +71,73 @@ alias ftp=lftp
 alias mbug='bts show --mbox'
 alias bug='BROWSER=www-browser bts show'
 
 alias mbug='bts show --mbox'
 alias bug='BROWSER=www-browser bts show'
 
-# handy documentation lookup on Debian
-# from http://www.michael-prokop.at/computer/config/.zshrc
-doc() { cd /usr/share/doc/$1 && ls }
-_doc() { _files -W /usr/share/doc -/ }
-compdef _doc doc
+edalias() {
+  [[ -z "$1" ]] && { echo "Usage: edalias <alias_to_edit>" ; return 1 } || vared aliases'[$1]' ;
+}
+compdef _aliases edalias
 
 
-alias giti='git init && git add . && git commit -minitial\ checkin'
+edfunc() {
+  [[ -z "$1" ]] && { echo "Usage: edfunc <function_to_edit>" ; return 1 } || zed -f "$1" ;
+}
+compdef _functions edfunc
 
 
-if whence tailf >/dev/null; then
+doc() { cd /usr/share/doc/$1 }
+compdef '_files -W /usr/share/doc -/' doc
+
+alias giti='git init && git add . && git commit -minitial\ checkin && git tag orig'
+gbs() {
+  local branch; branch="$(git symbolic-ref -q HEAD)"; branch="${branch##*/}"
+  git config branch.${branch}.remote ${1:-origin}
+  git config branch.${branch}.merge refs/heads/${branch}
+  git config branch.${branch}.rebase true
+}
+
+if whence mtail >/dev/null; then
+  alias t=mtail
+elif whence tailf >/dev/null; then
   alias t=tailf
 else
   alias t='tail -f'
 fi
   alias t=tailf
 else
   alias t='tail -f'
 fi
-alias tsl='t /var/log/syslog'
-alias tml='t /var/log/mail.log'
-alias tal='t /var/log/auth.log'
-alias tdl='t /var/log/daemon.log'
-alias tkl='t /var/log/kern.log'
+compdef _files t
+
+function ltail() { t ~log/$1 }
+compdef '_files -W ~log' ltail
+
+function lless() { sensible-pager ~log/$1 }
+compdef '_files -W ~log' lless
+
+alias tsl='ltail syslog'
+alias lsl='lless syslog'
+alias tml='ltail mail.log'
+alias lml='lless mail.log'
+alias tal='ltail auth.log'
+alias lal='lless auth.log'
+alias tdl='ltail daemon.log'
+alias ldl='lless daemon.log'
+alias tkl='ltail kern.log'
+alias lkl='lless kern.log'
+
+function lgrep() {
+  local pattern="$1"; shift
+  eval egrep "'$pattern'" "~log/${(j: ~log/:)@}"
+}
 
 alias px='ps afux'
 alias mps='ps -ao user,pcpu,start,command'
 
 
 alias px='ps afux'
 alias mps='ps -ao user,pcpu,start,command'
 
+function of() { lsof -np "$1" }
+compdef _pids of
+
+function psgrep() { ps aux | grep "[${1[1]}]${1[2,-1]}" }
+
+alias rw-='chmod 600'
+alias rwx='chmod 700'
+alias r--='chmod 644'
+alias r-x='chmod 755'
+alias r-s='chmod 2755'
+alias rws='chmod 2775'
+
 alias bofh='fortune bofh-excuses'
 
 autoload -U baseconv
 alias bofh='fortune bofh-excuses'
 
 autoload -U baseconv
@@ -86,12 +146,9 @@ alias d2b='baseconv 10 2'
 alias d2h='baseconv 10 16'
 alias h2d='baseconv 16 10'
 alias d2o='baseconv 10 8'
 alias d2h='baseconv 10 16'
 alias h2d='baseconv 16 10'
 alias d2o='baseconv 10 8'
-alias o2d='baseconv 8 10'
-
-alias sshnew='ssh -o "StrictHostKeyChecking no"'
-alias scpnew='scp -o "StrictHostKeyChecking no"'
-alias sshtmp='sshnew -o "UserKnownHostsFile /dev/null"'
-alias scptmp='scpnew -o "UserKnownHostsFile /dev/null"'
+alias d2o='baseconv 10 8'
+alias h2b='baseconv 16 2'
+alias b2h='baseconv 2 16'
 
 alias sendmail=/usr/sbin/sendmail
 
 
 alias sendmail=/usr/sbin/sendmail
 
@@ -104,17 +161,98 @@ _LANGUAGES[de]=deu
 _LANGUAGES[es]=spa
 _LANGUAGES[fr]=fra
 _LANGUAGES[it]=ita
 _LANGUAGES[es]=spa
 _LANGUAGES[fr]=fra
 _LANGUAGES[it]=ita
-_LANGUAGES[lt]=lat
+_LANGUAGES[tn]=lat
 for l0 in ${(k)_LANGUAGES}; do
   for l1 in ${(k)_LANGUAGES}; do
 for l0 in ${(k)_LANGUAGES}; do
   for l1 in ${(k)_LANGUAGES}; do
-    eval "_${l0}-${l1}() { _d -d fd-${_LANGUAGES[$l0]}-${_LANGUAGES[$l1]} \$* }"
-    eval "${l0}-${l1}() { d -d fd-${_LANGUAGES[$l0]}-${_LANGUAGES[$l1]} \$* }"
+    eval "function _${l0}-${l1}() { _d -d fd-${_LANGUAGES[$l0]}-${_LANGUAGES[$l1]} \$* }"
+    eval "function ${l0}-${l1}() { d -d fd-${_LANGUAGES[$l0]}-${_LANGUAGES[$l1]} \$* }"
   done
 done
 unset '_LANGUAGES[en]'
 for l in ${(k)_LANGUAGES}; do
   done
 done
 unset '_LANGUAGES[en]'
 for l in ${(k)_LANGUAGES}; do
-  eval "${l}() { (_${l}-en \$*; _en-${l} \$*) | more }"
+  eval "function ${l}() { (_${l}-en \$*; _en-${l} \$*) | more }"
 done
 unset _LANGUAGES
 
 done
 unset _LANGUAGES
 
+alias dpkg-buildpackage="dpkg-buildpackage -k$DEBKEYID -rfakeroot"
+
+bugsub() { echo X-debbugs-autosubscribe: madduck | sendmail -f $DEBEMAIL ${1:?No bug number}-subscribe@bugs.debian.org }
+bugunsub() { sendmail -f $DEBEMAIL ${1:?No bug number}-unsubscribe@bugs.debian.org </dev/null }
+ptssub() { echo subscribe ${1:?E: no package name given.} | sendmail -f ${2:-$DEBEMAIL} pts@qa.debian.org }
+ptsunsub() { echo unsubscribe ${1:?E: no package name given.} | sendmail -f ${2:-$DEBEMAIL} pts@qa.debian.org }
+qasub() { echo subscribe ${1:?E: no package name given.} ${2:-unspecifed} | sendmail -f $DEBEMAIL ddpo@qa.debian.org }
+qaunsub() { echo unsubscribe ${1:?E: no package name given.} ${2:-unspecifed} | sendmail -f $DEBEMAIL ddpo@qa.debian.org }
+listsub() { echo Subject: subscribe | sendmail -f ${1%@*}=${1#*@}@mass.madduck.net ${1%@*}-request@${1#*@} }
+listunsub() { echo Subject: unsubscribe | sendmail -f ${1%@*}=${1#*@}@mass.madduck.net ${1%@*}-request@${1#*@} }
+
+uc() { unicode --max=0 --colour=off "$@" | sensible-pager }
+
+alias ipr='ip r'
+alias ipa='ip a'
+alias ipl='ip l'
+
+alias btd='btdownloadheadless'
+
+function asc () { autossh -t "$@" 'screen -qxp= || screen -qdRR' }
+compdef asc=ssh
+
+alias mdtest='swaks -s localhost -t'
+
+if whence devtodo >/dev/null; then
+  _devtodo_on_chpwd() {
+    local out; out="$(devtodo)"
+    [[ -n $out ]] && print "todo:\n$out"
+  }
+  [[ -z ${(M)chpwd_functions:#_devtodo_on_chpwd} ]] && chpwd_functions+=_devtodo_on_chpwd
+fi
+
+pdfextract() {
+  local i=$1
+  local o=$2
+  shift 2
+  pdftk "$i" cat "${@:-1-end}" output "${o%.pdf}.pdf"
+  if [ -n "$1" ]; then
+    local tmpfile
+    tmpfile=$(tempfile -p pdftk -s .pdf)
+    cleanup() { rm -f $tmpfile; trap - EXIT; }
+    trap cleanup EXIT
+    pdftk "$i" cat "1-end~${(j:~:)@}" output $tmpfile
+    mv $tmpfile "$i"
+    cleanup
+  fi
+}
+compdef _files pdfextract
+
+gittestfile() {
+  local annex; annex=false
+  local file
+
+  case "$1" in
+    (-a) annex=true;;
+    (*)
+      if [ -n "$file" ]; then
+        echo >&2 "E: filename already given"
+        return 1
+      fi
+      file="$1";;
+  esac
+
+  if [ -z "$file" ]; then
+    file=$(TMPDIR=${PWD} tempfile -ptest. -s.txt)
+  fi
+
+  echo "Test file created $(date)" >| $file
+
+  case "$annex" in
+    true)
+      git annex add $file
+      git commit -m"Add test file $file to annex"
+      ;;
+    false)
+      git add $file
+      git commit -m"Add test file $file"
+      ;;
+  esac
+}
+
 # vim:ft=zsh
 # vim:ft=zsh