]> ruderich.org/simon Gitweb - config/dotfiles.git/commitdiff
bash/rc, zsh/rc: Move aliases to shell/aliases.
authorSimon Ruderich <simon@ruderich.org>
Mon, 8 Mar 2010 16:49:54 +0000 (17:49 +0100)
committerSimon Ruderich <simon@ruderich.org>
Mon, 8 Mar 2010 16:49:54 +0000 (17:49 +0100)
Also make them more compatible with less capable shells/ls.

bash/rc
shell/aliases [new file with mode: 0644]
zsh/rc

diff --git a/bash/rc b/bash/rc
index 7c1a6e7914bdda727e3105bbeb90e338c9fbb124..a1ac587a8f5d0815bfb43d8cb2f1578137c02c44 100644 (file)
--- a/bash/rc
+++ b/bash/rc
@@ -38,6 +38,11 @@ PS1='\[\033[01;32m\]\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\] \$ '
 # Use Vi(m) style in bash.
 set -o vi
 
+# Load aliases and similar functions also used by other shells.
+if [[ -f ~/.shell/aliases ]]; then
+    . ~/.shell/aliases
+fi
+
 
 # Load rc file for current hostname (first part before a dot) or rc.local.
 source_config ~/.bash host rc $host
diff --git a/shell/aliases b/shell/aliases
new file mode 100644 (file)
index 0000000..cb2af4b
--- /dev/null
@@ -0,0 +1,87 @@
+# Aliases and similar functions which can be used by all shells (supporting
+# them).
+
+
+# Shortcuts for often used programs.
+alias c='clear'
+alias e='elinks'
+alias g='git'
+alias m='mutt'
+alias v='vim'
+alias vi='vim'
+
+
+# Improved ls which displays the files in columns (-C), visualizes
+# directories, links and other special files (-F) and pages everything through
+# less.
+#
+# If available use GNU ls with colorized output. If it isn't available try
+# normal ls which needs CLICOLOR_FORCE so it displays colors when used with a
+# pager. If none work no colors are used.
+
+# Check if colors are available.
+ls --color > /dev/null 2>&1
+if [ $? -eq 0 ]; then
+    ls_color=gnu
+else
+    ls -G > /dev/null 2>&1
+    if [ $? -eq 0 ]; then
+        ls_color=cli
+    else
+        ls_color=
+    fi
+fi
+
+# Main ls function, separated to prevent code duplication.
+ls_path=`which ls`
+my_ls() {
+    "$ls_path" -C -F $* 2>&1 | less
+}
+# 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
+# GNU ls with colors.
+if [ x$ls_color = xgnu ]; then
+    ls() {
+        my_ls --color $*
+    }
+# Normal ls with colors.
+elif [ x$ls_color = xcli ]; then
+    ls() {
+        CLICOLOR_FORCE=1 my_ls $*
+    }
+# Simple ls with no colors.
+else
+    ls() {
+        my_ls $*
+    }
+fi
+unset ls_color
+# Helper function to list all files.
+la() {
+    ls -a $*
+}
+# Helper function to list all files in list format with access rights, etc.
+ll() {
+    la -l $*
+}
+
+
+# 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'
+
+# 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"'
+
+# vim: ft=sh
diff --git a/zsh/rc b/zsh/rc
index f01c5ff2e3b93c6eb8871a07485372ece8253caf..9a413fade98d3c286731e336bac438d61720ca50 100644 (file)
--- a/zsh/rc
+++ b/zsh/rc
@@ -375,6 +375,11 @@ exec 2>>(while read -r line; do
     print -n $'\0';
 done &)
 
+# Load aliases and similar functions also used by other shells.
+if [[ -f ~/.shell/aliases ]]; then
+    . ~/.shell/aliases
+fi
+
 # Make sure aliases are expanded when using sudo.
 alias sudo='sudo '
 
@@ -391,40 +396,6 @@ alias -g ...='../..'
 alias -g ....='../../..'
 alias -g .....='../../../..'
 
-# Shortcuts for often used programs.
-alias c='clear'
-alias e='elinks'
-alias g='git'
-alias m='mutt'
-alias v='vim'
-alias vi='vim'
-
-# Improved ls which displays the files in columns (-C), visualizes
-# directories, links and other special files (-F) and pages everything through
-# less (L).
-#
-# If available use GNU ls with colorized output. If it isn't available use
-# normal ls which needs CLICOLOR_FORCE so it displays colors when used with a
-# pager.
-ls --color &> /dev/null
-if [[ $? -eq 0 ]]; then
-    alias ls='ls --color'
-else
-    alias ls='CLICOLOR_FORCE=1 ls -G'
-fi
-# Main ls function.
-function ls() {
-    command ls -C -F $* L
-}
-# Helper function to list all files.
-function la() {
-    ls -a $*
-}
-# Helper function to list all files in list format with access rights, etc.
-function ll() {
-    la -l $*
-}
-
 # If the window naming feature is used (see above) then use ".zsh" (leading
 # dot) as title name after running clear so it's clear to me that the window
 # is empty. I open so much windows that I don't know in which I have something
@@ -434,24 +405,6 @@ if [[ -n $window_reset ]]; then
     alias clear='clear; window_reset=yes; window_precmd reset'
 fi
 
-# 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'
-
-# 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 branches (except stash) in gitk but only 200 commits as this is
 # much faster. Also put in the background and disown. Thanks to sitaram in
 # #git on Freenode (2009-04-20 15:51).