89 lines
2.0 KiB
Bash
89 lines
2.0 KiB
Bash
# skip this setup for non-interactive shells
|
|
[[ -o interactive && -t 0 ]] || return
|
|
|
|
# disable core dumps
|
|
ulimit -c 0
|
|
|
|
# Environment variables. These could go in .profile if you prefer
|
|
export VISUAL=vi
|
|
export EDITOR=$VISUAL
|
|
export PAGER=less
|
|
export GZIP=-9
|
|
|
|
# set some shell options
|
|
set -o emacs -o trackall -o globstar
|
|
|
|
# specify search path for autoloadable functions
|
|
FPATH=/usr/share/ksh/functions:~/.func
|
|
|
|
# avoid certain file types in completion
|
|
FIGNORE='@(*.o|~*)'
|
|
|
|
# save more commands in history
|
|
HISTSIZE=500
|
|
HISTEDIT=$EDITOR
|
|
|
|
# aliases for various command shortcuts
|
|
alias ll='ls -lFb'
|
|
alias la='ls -LaFb'
|
|
alias pu='ps -fu $USER'
|
|
alias md=mkdir
|
|
alias rd=rmdir
|
|
|
|
# avoid problems with long argument lists for some commands (like xargs)
|
|
alias cp='command -x cp' mv='command -x mv' grep='command -x grep'
|
|
|
|
# some short functions
|
|
|
|
# empty line
|
|
empty() { echo $'\e[3J'; }
|
|
|
|
# man page viewer
|
|
mere() { nroff -man -Tman $1 | ${MANPAGER:-less}; }
|
|
|
|
# view/manipulate and export environment variables
|
|
setenv() {
|
|
case $# in
|
|
0) export ;;
|
|
1) export "$1"= ;;
|
|
*) export "$1"="$2" ;;
|
|
esac
|
|
}
|
|
|
|
# Use keyboard trap to map keys to other keys
|
|
# note that escape sequences vary for different terminals so these
|
|
# may not work for you
|
|
trap '.sh.edchar=${keymap[${.sh.edchar}]:-${.sh.edchar}}' KEYBD
|
|
keymap=(
|
|
[$'\eOD']=$'\eb' # Ctrl-Left -> move word left
|
|
[$'\eOC']=$'\ef' # Ctrl-Right -> move word right
|
|
[$'\e[3~']=$'\cd' # Delete -> delete to right
|
|
[$'\e[1~']=$'\ca' # Home -> move to beginning of line
|
|
[$'\e[4~']=$'\ce' # End -> move to end of line
|
|
)
|
|
|
|
# keep a shortened version of the current directory for the prompt
|
|
function _cd {
|
|
typeset -n dir=HOME
|
|
|
|
"cd" "$@"
|
|
|
|
if [[ $PWD = $HOME* && $HOME != / ]]; then
|
|
_pwd=\~${PWD#$HOME}
|
|
return
|
|
fi
|
|
|
|
for dir in JAVA_HOME GNOMEDIR; do
|
|
if [[ -n $dir && $PWD = $dir* ]]; then
|
|
_pwd="\$${!dir}${PWD#$dir}"
|
|
return
|
|
fi
|
|
done
|
|
_pwd="$PWD"
|
|
}
|
|
alias cd=_cd
|
|
_cd .
|
|
|
|
# put the current directory and history number in the prompt
|
|
PS1='$_pwd [!]\$ '
|