Haskeline's user interface may be customized by editing a ~/.haskeline file.
Each line of a .haskeline file sets one preference field; field names are case insensitive and unparseable lines are ignored. For example:
editMode: Vi completionType: MenuCompletion maxhistorysize: Just 40
|field name||values||default value|
|bellStyle||NoBell | VisualBell | AudibleBell||AudibleBell|
|maxHistorySize||Maybe Int||Just 100|
|editMode||Vi | Emacs||Emacs|
|completionType||ListCompletion | MenuCompletion||ListCompletion|
|When listing completion alternatives, only display one screen of possibilities at a time.|
|completionPromptLimit||Maybe Int||Just 100|
|If more than this number of completion possibilities are found, ask before listing them.|
|If False, completions with multiple possibilities will ring the bell and only display them if the user presses TAB again.|
|historyDuplicates||AlwaysAdd | IgnoreConsecutive | IgnoreAll||AlwaysAdd|
|If this is set to IgnoreConsecutive, a line will not be added to the history if it matches the previous entry. If it is set to IgnoreAll, all previous entries matching the current line will be removed.|
|This preference is available in haskeline>=0.6.2.|
See also CustomKeyBindings.