-
Notifications
You must be signed in to change notification settings - Fork 8
/
README
executable file
·55 lines (40 loc) · 1.63 KB
/
README
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
ML-editline, version 0.1
Copyright (c) 2007 David Herman
http://www.ccs.neu.edu/home/dherman/editline.html
See the LICENSE file for legal information.
ML-editline is a Standard ML library for adding command-line editing
functionality to applications akin to GNU Readline. ML-editline does not link
statically to or redistribute any GPL software, however, and is provided with a
permissive MIT license.
See the files in example/ for an example of how to write and build a program
that uses ml-editline.
Features:
- arrow keys
- emacs keybindings (currently hard-wired):
* ctrl-a, ctrl-b, ctrl-d, ctrl-e, ctrl-f, ctrl-k, ctrl-n, ctrl-p, ctrl-y
* meta-backspace, meta-b, meta-d, meta-f
- EOF (on empty input): ctrl-d, ctrl-z (native Windows only)
- Unix signals (all platforms but native Windows): ctrl-c (SIGINT), ctrl-z (SIGSTOP)
Platforms:
- Cygwin, native Windows console, Linux, MacOS X
- quite possibly others
Terminals:
- native Windows console
- xterm, xterm-color, vt100, cygwin
- quite possibly others
Known bugs and limitations:
- resizing console window currently wreaks havoc
- suspending (SIGSTOP) and restoring (SIGCONT) a process
does not redraw the current prompt and input
- rxvt support appears to be hopeless, at least in Windows
To do:
- audit all uses of flush
- bell e.g. when attempting to fall off the end the line
- transpose (ctrl-t, alt-t)
- undo (ctrl-/)
- transform case (alt-c, alt-l, alt-u)
- API for merging top history entries
- optimize refresh logic to avoid unnecessary redrawing
Long term wishes:
- .inputrc support
- history commands (see GNU History)