From 5b25c5155312f626813e0d36b7933f5eba801dd2 Mon Sep 17 00:00:00 2001 From: Mitchell Riedstra Date: Fri, 29 Oct 2021 21:53:53 -0400 Subject: Major dotfile cleanup --- yashrc | 272 ----------------------------------------------------------------- 1 file changed, 272 deletions(-) delete mode 100644 yashrc (limited to 'yashrc') diff --git a/yashrc b/yashrc deleted file mode 100644 index c989764..0000000 --- a/yashrc +++ /dev/null @@ -1,272 +0,0 @@ -##### Common Yashrc ##### -# This file is in the public domain. - -# enable bash-like extended expansion -set --brace-expand - -# enable recursive pathname expansion -set --extended-glob - -# prevent redirections from overwriting existing files -set --no-clobber - -# don't implicitly expand non-existent variables to empty strings -set --no-unset - -# if yash is built with command history enabled... -if command --identify --builtin-command history >/dev/null; then - - # don't save commands starting with a space in history - set --hist-space - - # prevent clearing history by accident - history() - if [ -t 0 ] && ( - for arg do - case "${arg}" in - (-[drsw]?* | --*=*) ;; - (-*c*) exit;; - esac - done - false - ) then - printf 'history: seems you are trying to clear the whole history.\n' >&2 - printf 'are you sure? (yes/no) ' >&2 - case "$(head -n 1)" in - ([Yy]*) command history "$@";; - (*) printf 'history: cancelled.\n' >&2;; - esac - else - command history "$@" - fi - -fi - -# if yash is built with line-editing enabled... -if command --identify --builtin-command bindkey >/dev/null; then - - # print job status update ASAP, but only while line-editing - set --notify-le - - # some terminfo data are broken; meta flags have to be ignored for UTF-8 - set --le-no-conv-meta - - # enable command line prediction - set --le-predict - - set --emacs - - # some useful key bindings - bindkey --emacs '\^N' beginning-search-forward - bindkey --emacs '\^O' clear-candidates - bindkey --emacs '\^P' beginning-search-backward - bindkey --emacs '\N' complete-next-column - bindkey --emacs '\P' complete-prev-column - -fi - -# some useful shortcuts -alias -- -='cd -' -alias la='ls -a' ll='ls -l' lla='ll -a' -alias r='fc -s' - -# avoid removing/overwriting existing files by accident -cp() if [ -t 0 ]; then command cp -i "$@"; else command cp "$@"; fi -mv() if [ -t 0 ]; then command mv -i "$@"; else command mv "$@"; fi -rm() if [ -t 0 ]; then command rm -i "$@"; else command rm "$@"; fi - -# normally yash is more POSIX-compliant than /bin/sh :-) -sh() { yash --posix "$@"; } -yash() { command yash "$@"; } -# By re-defining 'yash' using the 'command' built-in, the 'jobs' built-in -# prints a command name that exposes the arguments like -# 'yash --posix -n foo.sh' rather than a command name that hides the -# arguments like 'yash --posix "${@}"'. This applies to the 'yash' command -# invoked via the 'sh' function. - -# ensure job control works as expected -case $- in (*m*) - trap - TSTP TTIN TTOU -esac - -# if the terminal supports color... -if [ "$(tput colors 2>/dev/null || echo 0)" -ge 8 ]; then - - # make command output colorful - if ls --color=auto -d / >/dev/null 2>&1; then - ls() { command ls --color=auto "$@"; } - fi - if grep --color=auto -q X <</dev/null; then - grep() { command grep --color=auto "$@"; } - fi - if ggrep --color=auto -q X <</dev/null; then - ggrep() { command ggrep --color=auto "$@"; } - fi - -fi - -# if vim is available... -if command --identify vim >/dev/null 2>&1; then - - # prefer vim over vi - vi() { vim "$@"; } - view() { vim -R "$@"; } - vim() { command vim "$@"; } # Re-definition hack. See above. - -fi - -# avoid removing existing crontab by accident -crontab() -if [ -t 0 ] && ( - for arg do - case "${arg}" in - (-*r*) exit;; - esac - done - false -) then - printf 'crontab: seems you are trying to clear your crontab.\n' >&2 - printf 'are you sure? (yes/no) ' >&2 - case "$(head -n 1)" in - ([Yy]*) command crontab "$@";; - (*) printf 'crontab: cancelled.\n' >&2;; - esac -else - command crontab "$@" -fi - -# an alias that opens a file -if command --identify xdg-open >/dev/null 2>&1; then - alias o='xdg-open' -elif command --identify cygstart >/dev/null 2>&1; then - alias o='cygstart' -elif [ "$(uname)" = Darwin ] 2>/dev/null; then - alias o='open' -fi - -# define some basic variables if missing -: ${PAGER:=less} ${EDITOR:=vi} ${FCEDIT:=$EDITOR} -: ${LOGNAME:=$(logname)} ${HOSTNAME:=$(uname -n)} - -# disable confusing treatment of arguments in the echo command -: ${ECHO_STYLE:=RAW} - -# variables needed for command history -HISTFILE=~/.yash_history HISTSIZE=5000 -# HISTRMDUP makes prediction less accurate -# HISTRMDUP=500 - -# default mail check interval is too long -MAILCHECK=0 - -# emulate bash's $SHLVL -if [ "${_old_shlvl+set}" != set ]; then - _old_shlvl=${SHLVL-} -fi -SHLVL=$((_old_shlvl+1)) 2>/dev/null || SHLVL=1 -export SHLVL - -# initialize event handlers -COMMAND_NOT_FOUND_HANDLER=() -PROMPT_COMMAND=() -YASH_AFTER_CD=() - -# define prompt -if [ -n "${SSH_CONNECTION-}" ]; then - _hc='\fy.' # yellow hostname for SSH remote -else - _hc='\fg.' # green hostname for local -fi -if [ "$(id -u)" -eq 0 ]; then - _uc='\fr.' # red username for root - _2c='\fr.' # red PS2 for root -else - _uc=$_hc _hc= # same username color as hostname for non-root user - _2c= # PS2 in normal color for non-root user -fi -# The main prompt ($YASH_PS1) contains the username, hostname, working -# directory, last exit status (only if non-zero), and $SHLVL (only if -# non-one). -_un="${LOGNAME//mitch/}"; [ -n "$_un" ] && _un="${_un}@" -YASH_PS1=$_uc'${_un}'$_hc'${HOSTNAME%%.*}\fd. '\ -'${${${PWD:/~/\~}##*/}:-$PWD} ${{?:/0/}:+\\fr.$?\\fd. }\$ ' -# YASH_PS1R='\fc.${_vcs_info}' -# YASH_PS1R='\fc.${HOSTNAME%%.*} ${${${PWD:/~/\~}##*/}:-$PWD}' -YASH_PS1R= -YASH_PS1S='\fo.' -YASH_PS2=$_2c'> ' -YASH_PS2R= -YASH_PS2S=$YASH_PS1S -YASH_PS4='\fm.+ ' -YASH_PS4S='\fmo.' -unset _hc _uc _2c _un -# No escape sequences allowed in the POSIXly-correct mode. -PS1='${LOGNAME}@${HOSTNAME%%.*} '$PS1 -YASH_PS1="${?:/0/}$ " - -# find escape sequence to change terminal window title -case "$TERM" in - (xterm|xterm[+-]*|gnome|gnome[+-]*|putty|putty[+-]*|cygwin) - _tsl='\033];' _fsl='\a' ;; - (*) - _tsl=$( (tput tsl 0; echo) 2>/dev/null | - sed -e 's;\\;\\\\;g' -e 's;;\\033;g' -e 's;;\\a;g' -e 's;%;%%;g') - _fsl=$( (tput fsl ; echo) 2>/dev/null | - sed -e 's;\\;\\\\;g' -e 's;;\\033;g' -e 's;;\\a;g' -e 's;%;%%;g') ;; -esac -# if terminal window title can be changed... -if [ "$_tsl" ] && [ "$_fsl" ]; then - - # set terminal window title on each prompt - _set_term_title() - if [ -t 2 ]; then - printf "$_tsl"'%s@%s:%s'"$_fsl" "${LOGNAME}" "${HOSTNAME%%.*}" \ - "${${PWD:/$HOME/\~}/#$HOME\//\~\/}" >&2 - fi - PROMPT_COMMAND=("$PROMPT_COMMAND" '_set_term_title') - - # reset window title when changing host or user - ssh() { - if [ -t 2 ]; then printf "$_tsl"'ssh %s'"$_fsl" "$*" >&2; fi - command ssh "$@" - } - su() { - if [ -t 2 ]; then printf "$_tsl"'su %s'"$_fsl" "$*" >&2; fi - command su "$@" - } - sudo() { - if [ -t 2 ]; then printf "$_tsl"'sudo %s'"$_fsl" "$*" >&2; fi - command sudo "$@" - } - -fi - -# 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 "$@"') - -# treat command names starting with % as "fg" -_autofg() -if [ $# -eq 1 ]; then - case $1 in (%*) - HANDLED=true - fg "$1" - break -i - esac -fi -COMMAND_NOT_FOUND_HANDLER=("$COMMAND_NOT_FOUND_HANDLER" '_autofg "$@"') - -# 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 "$@"') - - -. ~/.kshrc -- cgit v1.2.3