summarylogtreecommitdiffstats
path: root/sample.kshrc
blob: ae6834b370d9b4da5579a4855e0b9d9d1483107e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# This file contains examples of some of the things you may want to
# include in a user startup file.

# 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 [!]\$ '