X-Git-Url: https://git.distorted.org.uk/~mdw/profile/blobdiff_plain/6213a6b7c3b85d242846878244bd016392164949..5e662c38a0d6c72be80f68b06c4ad973b67ffd1a:/dot/bashrc diff --git a/dot/bashrc b/dot/bashrc index c39392a..1ed4aa0 100644 --- a/dot/bashrc +++ b/dot/bashrc @@ -1,4 +1,4 @@ -### -*-sh-*- +### -*-bash-*- ### ### Bash session things @@ -13,6 +13,10 @@ __mdw_bashrc=done [ -z "$__mdw_profile" -a -r $HOME/.bash_profile ] && . $HOME/.bash_profile [ -r /etc/bashrc ] && . /etc/bashrc +## Completion. +[ -r /etc/bash_completion ] && . /etc/bash_completion +[ -r $HOME/.bash_completion ] && . $HOME/.bash_completion + ## Set the temporary directory again. (If we've switched users, we'll want a ## different temporary directory.) [ "${TMPDIR+yes}" ] || eval `tmpdir -b` @@ -24,9 +28,15 @@ __mdw_bashrc=done if [ -t 0 ]; then ## Fancy highlighting in some terminals. + marker=${STY+'\[k\\\]'} case "$TERM" in linux*|screen*|xterm*|vt100*|eterm*) - bold="\[$(tput bold)\]" unbold="\[$(tput sgr0)\]" nl="\[ \]" ;; + case "$(tput bold)" in + "") bold="\[$(tput md)\]" unbold="\[$(tput me)\]" ;; + *) bold="\[$(tput bold)\]" unbold="\[$(tput sgr0)\]" ;; + esac + nl="\[ \]" + ;; *) bold='' unbold='' nl='' ;; esac @@ -35,11 +45,11 @@ if [ -t 0 ]; then ## highlight when I'm running as some other user. Highlight when this ## isn't the outermost shell on the terminal. if (( EUID == 0 )); then - left=`echo « | iconv -f utf8 -t //translit` - right=`echo » | iconv -f utf8 -t //translit` + left=`echo « | iconv -f UTF-8 -t //translit` + right=`echo » | iconv -f UTF-8 -t //translit` else case $USER in - mdw|mwooding) u="" left="[" right="]" ;; + mdw|mwooding|nemo) u="" left="[" right="]" ;; *) u="\\u@" left="{" right="}" ;; esac if [ "$__mdw_tty" = "`tty`" ]; then @@ -57,7 +67,7 @@ if [ -t 0 ]; then fi ## Build the prompt string. - PS1="$nl$bold$left$sec_l$u\\h$sec_r \\w$right$unbold" + PS1="$nl$bold$left$sec_l$u\\h$sec_r \\w$marker$right$unbold" PS2="$PS1 $bold>$unbold " fi @@ -76,7 +86,7 @@ shopt -s cmdhist shopt -u dotglob shopt -s expand_aliases shopt -s extglob -shopt -s globstar +if (( ${BASH_VERSINFO[0]} >= 4 )); then shopt -s globstar; fi shopt -s gnu_errfmt shopt -s histappend shopt -s histreedit @@ -98,7 +108,10 @@ alias cx='chmod a+x' alias which="command -v" alias rc="rc -l" alias ssync="rsync -e ssh" -alias rootly=$__MDW_ROOTLY +rootly () { + case $# in 0) set -- "${SHELL-/bin/sh}" ;; esac + $__MDW_ROOTLY "$@" +} alias r=rootly alias re="rootly $EDITOR" alias pstree="pstree -hl" @@ -108,10 +121,6 @@ alias e="$EDITOR" alias svn="svnwrap svn" alias @="ssh" -## Completion. -[ -r /etc/bash_completion ] && . /etc/bash_completion -[ -r $HOME/.bash_completion ] && . $HOME/.bash_completion - ###-------------------------------------------------------------------------- ### Colour output. @@ -122,7 +131,7 @@ else unset LS_COLORS fi -ls () { +unalias ls 2>/dev/null || :; function ls () { if [ -t 1 ]; then command ls $LS_OPTIONS ${LS_COLORS+--color=auto} "$@" else @@ -148,7 +157,7 @@ alias zgrep="greplike zgrep" ## Turn off pagers inside Emacs shell buffers. case "$INSIDE_EMACS" in - 22.*,comint) export PAGER=cat ;; + 2[2-9].*,comint | [3-9][0-9].*,comint) export PAGER=cat ;; esac ###--------------------------------------------------------------------------