Never been to CodeSnippets before?

Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world (or not, you can keep them private!)

1 total

Simple command line editor with Readline support

# for alternatives see http://codesnippets.joyent.com/posts/show/1625
unset -f edit

function edit() {
   declare -a ar
   declare -i i=-1
   while read -e -d $'\n' line; do let i++; ar[$i]="${line}"$'\n'; done   # -e enables readline
   printf "%s\n" "${ar[@]}" >> ~/.bash_history
   #printf "%s\n" "${ar[@]}" | /usr/bin/tr '\n' ' '  >> ~/.bash_history
   #printf "%s\n"  >> ~/.bash_history
   history -n
   eval "${ar[@]}"
   return 0
}

edit
echo "!";
[ctrl-r]
...
[ctrl-d]

edit
if [[ 5 -gt 3 ]]; then
   echo 12345
fi
[ctrl-d]

[ctrl-d]  # quit and execute the command
[ctrl-c]  # do not execute the command and abort
1 total