60 lines
1.4 KiB
Plaintext
60 lines
1.4 KiB
Plaintext
# enable bash-like extended expansion
|
|
set --brace-expand
|
|
|
|
# enable completion of hidden files
|
|
set --dot-glob
|
|
|
|
# enable recursive pathname expansion
|
|
set --extended-glob
|
|
|
|
# don't implicitly expand non-existent variables to empty strings
|
|
set --no-unset
|
|
|
|
# don't save commands starting with a space in history
|
|
set --hist-space
|
|
|
|
# emacs bindings
|
|
set --emacs
|
|
|
|
# Load aliases
|
|
[ -f "$HOME/.config/yash/aliasrc" ] && . "$HOME/.config/yash/aliasrc"
|
|
|
|
# define some basic variables if missing
|
|
SHELL=$(command -v yash)
|
|
: ${PAGER:=less} ${EDITOR:=nvim}
|
|
: ${LOGNAME:=$(logname)} ${HOSTNAME:=$(uname -n)}
|
|
|
|
# variables needed for command history
|
|
if ! [ "${HISTFILE-}" ]; then
|
|
HISTFILE=$HOME/.local/state/yash/history
|
|
fi
|
|
|
|
# create HISTFILE parent directory if missing
|
|
! [ -d "${HISTFILE%/*}" ] && mkdir -p "${HISTFILE%/*}"
|
|
|
|
HISTSIZE=5000
|
|
|
|
# initialize event handlers
|
|
COMMAND_NOT_FOUND_HANDLER=()
|
|
PROMPT_COMMAND=()
|
|
POST_PROMPT_COMMAND=()
|
|
YASH_AFTER_CD=()
|
|
|
|
YASH_PS1='\fg.$(whoami)\fc. ${PWD/#$HOME/\~} \fD.\$ '
|
|
|
|
# when a directory name is entered as a command, treat as "cd"
|
|
_autocd()
|
|
if [ -d "$1" ]; then
|
|
HANDLED=true
|
|
cd -- "$@"
|
|
break -i
|
|
fi
|
|
COMMAND_NOT_FOUND_HANDLER=("$COMMAND_NOT_FOUND_HANDLER" '_autocd "$@"')
|
|
|
|
# print file type when executing non-executable files
|
|
_file_type()
|
|
if [ -e "$1" ] && ! [ -d "$1" ]; then
|
|
file -- "$1"
|
|
fi
|
|
COMMAND_NOT_FOUND_HANDLER=("$COMMAND_NOT_FOUND_HANDLER" '_file_type "$@"')
|