# Aliases and similar functions which can be used by all shells (supporting
# them).
-# Copyright (C) 2011-2012 Simon Ruderich
+# Copyright (C) 2011-2014 Simon Ruderich
#
# This file is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
alias e=elinks
alias g=git
alias l=ls
-alias m=mutt
+alias m=make
alias p=less # p for pager
-alias s=mpc # s for sound, m is already used
+alias t=tig
alias v=vim
+# Shortcuts for a little less used programs.
+alias mu=mutt
+
+
+unalias mv cp 2> /dev/null
+# Ask for confirmation before overwriting files. Especially useful when moving
+# to a different directory. No alias for `rm` because I specify the files to
+# remove directly, so I know what will happen.
+alias mv='mv -i'
+# Additionally preserve all file attributes when copying, this includes
+# copying symbolic links as is without dereferencing them.
+alias cp='cp -i -a'
# Make sure there is no alias named ls as it causes problems with the
# following ls function on (at least) bash 4.0.35.
-unalias ls 2> /dev/null
+unalias ls 2>/dev/null
# Improved ls which displays the files in columns (-C), visualizes
# directories, links and other special files (-F) and pages everything through
# less.
# normal ls which needs CLICOLOR_FORCE so it displays colors when used with a
# pager. If none work no colors are used.
#
-# See `setup.sh` for details. LS_ENV, LS_PATH, LS_COLOR are replaced with the
+# See `setup.sh` for details. LS_ENV and LS_COLOR are replaced with the
# correct values when this file is generated.
ls() {
- LS_ENV LS_PATH LS_COLOR -C -F "$@" 2>&1 | less
+ LS_ENV command ls LS_COLOR -C -F "$@" 2>&1 | less
}
-# Helper function to list all files.
-la() {
- ls -a "$@"
-}
-# Helper function to list the files in list format with access rights, etc.
-ll() {
- ls -l "$@"
-}
-# Helper function to list all files in list format with access rights, etc.
-lal() {
- la -l "$@"
-}
+unalias ll lt la lal lat 2>/dev/null
+# List the files in list format with access rights, etc.
+alias ll='ls -l'
+# List the files sorted by last modification date.
+alias lt='ls -l -t'
+# List all files.
+alias la='ls -a'
+# List all files in list format with access rights, etc.
+alias lal='ls -al'
+# List all files sorted by last modification date.
+alias lat='ls -al -t'
# Make going up directories simple.
alias ....='cd ../../..'
alias .....='cd ../../../..'
-# I sometimes confuse editor and shell, print a warning to prevent I exit the
-# shell.
-alias :q='echo "This is not Vim!" >&2'
-
# Automatically use unified diffs.
alias diff='diff -u'
-# Display all files and use human readable sizes.
-alias du='du -sh'
-# Use human readable sizes.
-alias df='df -h'
+# COLUMN is set to `| column -t` if it's available, empty otherwise.
-# Edit the mercurial patch queue series file for the current mercurial
-# repository in Vim. Also change Vim's pwd to the patches directory so other
-# patches can easily be opened.
-alias vqs='vim -c "cd `hg root`/.hg/patches/" "`hg root`/.hg/patches/series"'
+# Display all files (-s), use human readable sizes (-h) and display the
+# complete size (-c).
+alias du='du -shc'
+# Use human readable sizes and format it nicely, thanks to climagic
+# (http://twitter.com/climagic/status/49623386762129408).
+df() {
+ command df -hP "$@" COLUMN
+}
+
+# Highlight matched strings. Doesn't work with a pager!
+alias grep='grep --color=auto'
+
+# Pipe output through less.
+tree() {
+ command tree -C "$@" | less
+}
+
+# Better viewer for info pages .. just pipe everything into less.
+info() {
+ command info "$@" 2>/dev/null | less
+}
# vim: ft=sh