#!/bin/sh # A "filter", based on your favorite editor. # It reads lines from stdin, opens a file containing these lines # with your favorite editor, and then prints the content of the file # $EDITMENU to stdout. I have configured my editor to write the # current line to $EDITMENU when pressing ;; (semicolon twice) like this # map ;; !!tee -a $EDITMENU^M " For nvi # It can be used to replace dmenu or similar menu applications in # constrained environment. It works even without any (n)curses library, # assuming you use a suitable editor (like ed). editor=${EDITOR:-vi} export EDITMENU=$(mktemp) in=$(mktemp) cat > "$in" # This is a dirty trick to "help" the editor (vi) understand that it can # take over the tty to get its input. $editor "$in" < /dev/tty cat $EDITMENU