67 lines
1.6 KiB
Bash
67 lines
1.6 KiB
Bash
|
# ~/.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<strlen; pos++ )); do
|
||
|
c=${PWD:$pos:1}
|
||
|
case "$c" in
|
||
|
[-/:_.!\'\(\)~[:alnum:]] ) o="${c}" ;;
|
||
|
* ) printf -v o '%%%02X' "'${c}" ;;
|
||
|
esac
|
||
|
encoded+="${o}"
|
||
|
done
|
||
|
printf '\e]7;file://%s%s\e\\' "${HOSTNAME}" "${encoded}"
|
||
|
}
|
||
|
PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND}osc7_cwd
|