148 lines
2.8 KiB
Bash
148 lines
2.8 KiB
Bash
# Aliases for sh/dash/ash/bash/ksh/zsh in JOE shell window
|
||
|
||
joehelp () {
|
||
echo "clear - erase buffer"
|
||
echo "joe - edit file"
|
||
echo "math 1+2 - calculator"
|
||
echo "pop - dismiss shell"
|
||
echo "parse [cmd] - grep parse command"
|
||
echo "parserr [cmd] - compile parse command"
|
||
echo "release - drop parsed messages"
|
||
echo "markb - mark beginning of region"
|
||
echo "markk - mark end of region"
|
||
echo "mark cmd - mark output of command"
|
||
}
|
||
|
||
# Clear edit buffer
|
||
joe_clear () {
|
||
echo -n '{'shell_clear'}'
|
||
}
|
||
|
||
# Release errors
|
||
joe_release () {
|
||
echo -n '{'shell_release'}'
|
||
}
|
||
|
||
# Set marked region beginning
|
||
joe_markb () {
|
||
echo -n '{'shell_markb'}'
|
||
}
|
||
|
||
# Set marked region end
|
||
joe_markk () {
|
||
echo -n '{'shell_markk'}'
|
||
}
|
||
|
||
|
||
# Mark command result
|
||
joe_mark () {
|
||
joe_markb
|
||
$*
|
||
joe_markk
|
||
}
|
||
|
||
# Parse command result (or whole buffer if no arg)
|
||
joe_parse () {
|
||
if [ "$1" = "" ]; then
|
||
echo -n '{'shell_gparse'}'
|
||
else
|
||
joe_markb
|
||
$*
|
||
joe_markk
|
||
echo '{'shell_gparse'}'
|
||
fi
|
||
}
|
||
|
||
# Parse command result (or whole buffer if no arg)
|
||
joe_parserr () {
|
||
if [ "$1" = "" ]; then
|
||
echo '{'shell_parse'}'
|
||
else
|
||
joe_markb
|
||
$*
|
||
joe_markk
|
||
echo '{'shell_parse'}'
|
||
fi
|
||
}
|
||
|
||
# Use JOE's calculator
|
||
joe_math () {
|
||
echo -n '{'shell_math,'"'$1'"',shell_rtn!,shell_typemath'}'
|
||
cat >/dev/null
|
||
}
|
||
|
||
# Edit a file
|
||
joe_edit () {
|
||
echo -n '{'shell_edit,'"'$1'"',shell_rtn'}'
|
||
}
|
||
|
||
# Pop shell window
|
||
joe_pop () {
|
||
echo -n '{'shell_pop'}'
|
||
}
|
||
|
||
unalias cd 2>/dev/null
|
||
|
||
# Change directory
|
||
joe_cd () {
|
||
# cd $1 - does not work for directories with spaces in their names
|
||
# cd "$1" - breaks cd with no args (it's supposed to go to home directory)
|
||
# So we have do this...
|
||
if [ "$1" = "" ]; then
|
||
cd
|
||
else
|
||
cd "$1"
|
||
fi
|
||
# Tell JOE our new directory
|
||
echo -n '{'shell_cd,shell_dellin!,'"'`pwd`/'"',shell_rtn'}'
|
||
}
|
||
|
||
alias clear=joe_clear
|
||
alias math=joe_math
|
||
alias edit=joe_edit
|
||
alias joe=joe_edit
|
||
alias pop=joe_pop
|
||
alias cd=joe_cd
|
||
alias parse=joe_parse
|
||
alias parserr=joe_parserr
|
||
alias release=joe_release
|
||
alias markb=joe_markb
|
||
alias markk=joe_markk
|
||
alias mark=joe_mark
|
||
|
||
# Code to automatically mark and parse output from each command
|
||
# - This is bash specific code
|
||
|
||
#joe_markb_pre () {
|
||
# joe_markb
|
||
# MARK_FLAG=1
|
||
#}
|
||
|
||
#joe_markk_post () {
|
||
# if [ "$MARK_FLAG" = "1" ]; then
|
||
# joe_markk
|
||
# MARK_FLAG=0
|
||
# joe_parse
|
||
# fi
|
||
#}
|
||
|
||
#preexec () { :; }
|
||
|
||
#preexec_invoke_exec () {
|
||
# [ -n "$COMP_LINE" ] && return # do nothing if completing
|
||
# [ "$BASH_COMMAND" = "$PROMPT_COMMAND" ] && return # don't cause a preexec for $PROMPT_COMMAND
|
||
# local this_command=`HISTTIMEFORMAT= history 1 | sed -e "s/^[ ]*[0-9]*[ ]*//"`;
|
||
# joe_markb_pre
|
||
# preexec "$this_command"
|
||
#}
|
||
|
||
#trap 'preexec_invoke_exec' DEBUG
|
||
|
||
#PROMPT_COMMAND=joe_markk_post
|
||
|
||
joe_clear
|
||
|
||
echo
|
||
echo Type joehelp for editor shell commands
|
||
echo
|