bug fix for srm alias
[distro-setup] / .bashrc
diff --git a/.bashrc b/.bashrc
index c88a065bfed4fbcf0238a9dc16cbcb9a6fbc04e3..5b4c3d102a87cd05aad2dfa66dc6b5a9190bc989 100644 (file)
--- a/.bashrc
+++ b/.bashrc
@@ -88,6 +88,7 @@ shopt -s checkwinsize
 # attempt to save multiline single commands as single history entries.
 shopt -s cmdhist
 
+
 # inside emacs fixes
 if [[ $INSIDE_EMACS ]]; then
     export INSIDE_EMACS
@@ -103,7 +104,6 @@ if [[ $- == *i* ]]; then
     if [[ $INSIDE_EMACS ]]; then
         bind 'set horizontal-scroll-mode on'
         bind 'set print-completions-horizontally on'
-        bind '"\C-i": self-insert'
     else
         # arrow keys. for other terminals, see http://unix.stackexchange.com/questions/10806/how-to-change-previous-next-word-shortcut-in-bash
         if [[ $TERM == "xterm" ]]; then
@@ -179,7 +179,7 @@ mkdir() {
 alias d='builtin bg'
 complete -A stopped -P '"%' -S '"' d
 
-alias his='history'
+alias hi='history'
 
 
 # note: gksudo is recommended for X apps because it does not set the
@@ -576,7 +576,30 @@ q() { # start / launch a program in the backround and redir output to null
 
 
 r() {
-    exit "$@"
+    exit "$@" 2>/dev/null
+}
+
+# trash-restore lists everything that has been trashed at or below CWD
+# This picks out files just in CWD, not subdirectories,
+# which also match grep $1, usually use $1 for a time string
+# which you get from running restore-trash once first
+pick-trash() {
+    local name x ask
+    local nth=1
+    # last condition is to not ask again for ones we skipped
+    while name="$( echo | restore-trash | gr "$PWD/[^/]\+$" | gr "$1" )" \
+          && [[ $name ]] && (( $(wc -l <<<"$name") >= nth )); do
+        name="$(echo "$name" | head -n $nth | tail -n 1 )"
+        read -p "$name [Y/n] " ask
+        if [[ ! $ask || $ask == [Yy] ]]; then
+            x=$( echo "$name"  | gr -o "^\s*[0-9]*" )
+            echo $x | restore-trash > /dev/null
+        elif [[ $ask == [Nn] ]]; then
+            nth=$((nth+1))
+        else
+            return
+        fi
+    done
 }
 
 # rsync, root is required to keep permissions right.
@@ -602,7 +625,7 @@ complete -F _root_command s sb
 
 # use -ll, less secure but faster.
 srm () {
-    srm -ll "$@"
+    command srm -ll "$@"
 }
 
 # sudo redo. be aware, this command may not work right on strange distros or earlier software
@@ -883,10 +906,10 @@ if [[ $- == *i* ]]; then
                ps_char='\$'
                ;;
            1) ps_color="$(get_term_color green)"
-               ps_char=$return
+               ps_char="$return \\$"
                ;;
            *) ps_color="$(get_term_color yellow)"
-               ps_char=$return
+               ps_char="$return \\$"
                ;;
         esac
         if [[ ! -O . ]]; then # not owner
@@ -896,7 +919,7 @@ if [[ $- == *i* ]]; then
                ps_color="$(get_term_color bold green)"
             fi
         fi
-        PS1="${PS1/%!(*[wW]*)}$(__git_ps1 ' (%s)') \[$ps_color\]$ps_char\[$(get_term_color nocolor)\] "
+        PS1="${PS1%"${PS1#*[wW]}"}$(__git_ps1 ' (%s)') \[$ps_color\]$ps_char\[$(get_term_color nocolor)\] "
     }
     PROMPT_COMMAND=prompt_command
 fi