Context Navigation

Key Bindings

Haskeline provides a line-editing user interface with many interactivity commands. Currently the user may choose either Emacs or Vi style bindings by editing the ~/.haskeline file; see System.Console.Haskeline.Prefs for more details.

Emacs-specific bindings

^D is treated as an EOF if the input line is empty and the last character pressed was not also ^D.

M-F

move forwards one word

M-B

move backward one word

M-W

delete backwards one "big word"

M-Backspace

delete backwards one word

M-D

delete forwards one word

^K

delete until the end of the line

Vi-specific bindings

The Vi bindings start in "insert mode" allowing all of the shared commands listed above. If ^D is typed when the line is empty, it is treated as an EOF; otherwise, it is ignored. Pressing ESCAPE enters the "command mode" which provides all of the shared commands except
for [printable char] and Tab, allowing instead the following commands:

i

enter insert mode

I

enter insert mode at the start of the line

a

enter insert mode after the current character

A

enter insert mode at end of the line

s

delete the char under the cursor and enter insert mode

S

clear the line and enter insert mode

r

replace one character

R

replace many characters

u

undo

. or ^R

redo

[n][movement]

do a movement, repeated n times

[n]d[movement]

delete the characters the movement would move past

[n]c[movement]

delete the characters the movement would move past, and enter insert mode