. "$HOME"/.shellrc
-# append to the history file, don't overwrite it
-shopt -s histappend
+if [ "$HISTFILE" = "$HOME/.bash_history" ]; then
+ history -r
+ # This is the default value set by interactive bash
+ # when the global value was unset. Unset it here too.
+ unset HISTFILE
+fi
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
# match all files and zero or more directories and subdirectories.
#shopt -s globstar
+# append to the history file, don't overwrite it
+shopt -s histappend
+
[ "`type -t ls`" = alias ] && unalias ls
[ "`type -t ll`" = alias ] && unalias ll
programs="$@"
eval "_${prog}_completion_loader() {
_completion_loader $prog
- if [ x"$DELEGARE_NOSPACE" = x1 ]; then
+ if [ x"$DELEGATE_NOSPACE" = x1 ]; then
complete -o nospace -F _$prog $programs
else
complete -F _$prog $programs
delegate_completion make m
delegate_completion ping p
-delegate_completion python python2.7 python3.4 python3.5 python3.6 python3.7 python3.8 python3.9 python3.10
-DELEGARE_NOSPACE=1 delegate_completion rsync r rsync_cgmn rsync_cgmn_recode rsync_cgmn_recode2
+delegate_completion python python2.7 python3.4 python3.5 python3.6 python3.7 python3.8 python3.9 python3.10 python3.11
+DELEGATE_NOSPACE=1 delegate_completion rsync r rsync_cgmn rsync_cgmn_recode rsync_cgmn_recode2
delegate_completion ssh s
delegate_completion wget wget-m wget-wrapper ww
if type -p pip >/dev/null 2>&1 || type -p pip3 >/dev/null 2>&1; then
_pip_completion_loader() {
- eval "`pip$PY_VER completion --bash`"
- complete -F _pip_completion pip pip2 pip2.7 pip3 pip3.4 pip3.5 pip3.6 pip3.7 pip3.8 pip3.9 pip3.10
+ eval "`pip completion --bash`"
+ complete -F _pip_completion pip pip2 pip2.7 pip3 pip3.4 pip3.5 pip3.6 pip3.7 pip3.8 pip3.9 pip3.10 pip3.11
unset _pip_completion_loader
return 124
}
- complete -F _pip_completion_loader pip pip2 pip2.7 pip3 pip3.4 pip3.5 pip3.6 pip3.7 pip3.8 pip3.9 pip3.10
+ complete -F _pip_completion_loader pip pip2 pip2.7 pip3 pip3.4 pip3.5 pip3.6 pip3.7 pip3.8 pip3.9 pip3.10 pip3.11
fi
#if which pyenv >/dev/null 2>&1; then
if [ -n "$remote" ] && git config --get remote.$remote.url |
grep -q '^\(file:/\|/\|\.\./\)'; then # (file:/ or / or ../ at the beginning)
cdgitpath remote.$remote.url
- else
+ return
+ fi
- if [ -n "$1" ]; then
- echo "Cannot find directory for remote $1" >&2
- echo "Usage: cdremote [remote_name]" >&2
- return 1
- fi
+ if [ -n "$1" ]; then
+ echo "Cannot find directory for remote $1" >&2
+ echo "Usage: cdremote [remote_name]" >&2
+ return 1
+ fi
- _list_remotes '^\(file:/\|/\|\.\./\)' # (file:/ or / or ../ at the beginning)
- if [ ${#GIT_REMOTES[*]} -eq 1 ]; then
- remote=${GIT_REMOTES[0]}
- unset GIT_REMOTES
- cdgitpath remote.$remote.url
- else
- unset GIT_REMOTES
- echo "Cannot find directory for any remote" >&2
- echo "Usage: cdremote [remote_name]" >&2
- return 1
- fi
+ _list_remotes '^\(file:/\|/\|\.\./\)' # (file:/ or / or ../ at the beginning)
+ if [ ${#GIT_REMOTES[*]} -eq 1 ]; then
+ remote=${GIT_REMOTES[0]}
+ unset GIT_REMOTES
+ cdgitpath remote.$remote.url
+ else
+ unset GIT_REMOTES
+ echo "Cannot find directory for any remote" >&2
+ echo "Usage: cdremote [remote_name]" >&2
+ return 1
fi
}
complete -F _git_open_remote git-open-remote
fi
+
+
+if [ "$SHLVL" -eq 1 -a "`type -t X`" = function ] && which startx >/dev/null 2>&1; then
+ # From https://stackoverflow.com/a/18839557
+
+ copy_function() {
+ test -n "$(declare -f "$1")" || return
+ eval "${_/$1/$2}"
+ }
+
+ rename_function() {
+ copy_function "$@" || return
+ unset -f "$1"
+ }
+
+ rename_function X _non_bash_X
+
+ X() { history -a; _non_bash_X; history -r; }
+fi