diff options
-rw-r--r-- | .kshrc | 88 |
1 files changed, 88 insertions, 0 deletions
@@ -0,0 +1,88 @@ +# +# .kshrc - ksh - Korn shell startup file +# +# See also ksh(1) + +# Set vi mode +set -o vi + +# If helpers exist +_exists() { + type $1 > /dev/null 2>&1 +} + +# Don't let \^{}d logout +set -o ignoreeof + +# Export all +set -o allexport + +# Setup history +HISTFILE=$HOME/.ksh_history +HISTSIZE=10000 +HISTCONTROL=ignoredups:ignorespace:erasedups + +# Some useful aliases + +# If btop is installed then alias top to btop +_exists btop && alias top='/usr/local/bin/btop' + +# If bat exists then alias cat to bat +_exists bat && alias cat='bat --paging=never' + +# Use colorls if it's installed, plain old ls otherwise +_exists colorls && alias ls='colorls -G' + +alias config='/usr/local/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME' + +# Simple, lightweight git prompt for oksh: if inside a git repo, adds the +# branch name to PS1. +__get_current_git_branch_name() { + branch_name="$(git rev-parse --abbrev-ref HEAD 2>/dev/null)" && \ + [ -n "$branch_name" ] && \ + echo -en " $branch_name" +} + +# Set prompt: ``username@hostname directory $ '' +PS1="\[\e[1;32m\]\u@\h \[\e[1;34m\]\w\[\e[0m\] \[\e[1;31m\]\$(__get_current_git_branch_name)\[\e[0m\] $ " + +export LANG="en_US.UTF-8" +export LC_ALL="en_US.UTF-8" + +# Pager +if _exists less; then + PAGER=less + LESSHISTFILE=- + # -I ignore case + # -R colored output + # -X don't clear on exit + # -Ps string prompt + # LESS='-IRXPs %lt-%lb (%Pt-%Pb \%) ░ %bt-%bbb ░ %f ░▒▓' + LESS='-IRX' + export PAGER LESSHISTFILE LESS +fi + +#coloured man pages +man() { + sh -c "man '$@' | col -bx | bat -l man" +} + +# Completions + +# Display possible interfaces on this machine for ifconfig +set -A complete_ifconfig_1 -- $(ifconfig | grep ^[a-z] | cut -d: -f1) + +# Remote access +_SSH_HOSTS=$(awk '/^host/{ print $2 }' ~/.ssh/config) +set -A complete_ssh -- $_SSH_HOSTS + +# Git completion +set -A complete_git -- \ + $(git --list-cmds=main) \ + $(git config --get-regexp ^alias\. | awk -F '[\. ]' '{ print $2 }') + +# OpenBSD rc scripts and rc commands +set -A complete_rcctl_1 -- disable enable get ls order set restart start stop +set -A complete_rcctl_2 -- $(rcctl ls all) + + |