diff --git a/.bashrc b/.bashrc new file mode 100644 index 0000000..de3419b --- /dev/null +++ b/.bashrc @@ -0,0 +1,66 @@ +# ~/.bashrc + +# if not running interactively, don't do anything +[ -z "$PS1" ] && return + +# history +export HISTCONTROL=ignoredups:erasedups +export HISTSIZE=-1 +export HISTFILESIZE=-1 +PROMPT_COMMAND="history -a;history -n;$PROMPT_COMMAND" + +# title +PS1="\[\e]0;\u@\h:\w\a\]$PS1" + +# readline +bind "set editing-mode vi" +bind "set keyseq-timeout 50" +bind "set show-mode-in-prompt on" +bind "set vi-ins-mode-string \1\e[35m\2+\1\e[0m\2" +bind "set vi-cmd-mode-string :" + +bind "set keymap vi-command" +bind "j:history-substring-search-forward" +bind "k:history-substring-search-backward" +bind "set keymap vi-insert" +bind '"\e[A":history-substring-search-backward' +bind '"\e[B":history-substring-search-forward' + +bind "set show-all-if-ambiguous on" +bind "set completion-display-width 0" +bind "set colored-stats on" +bind "set visible-stats on" + +# alias +alias q="exit" +alias e='${EDITOR:-vi}' +alias grep="grep --color=auto" +alias ls="ls --color=auto" +alias ll="ls -AF1" +alias lll="ls -AFlh" + +# bash completion +if ! shopt -oq posix; then + if [ -f /usr/share/bash-completion/bash_completion ]; then + . /usr/share/bash-completion/bash_completion + elif [ -f /etc/bash_completion ]; then + . /etc/bash_completion + fi +fi + +# osc7 +osc7_cwd() { + local strlen=${#PWD} + local encoded="" + local pos c o + for (( pos=0; pos