aboutsummaryrefslogtreecommitdiff
path: root/edit-menu
blob: ed180a2704a7a7c45756671e8ddc58faecda5687 (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
#!/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

Generated with cgit - Back to sebastiano.tronto.net