Skip to content


Taylor Fausak edited this page Nov 7, 2017 · 4 revisions

User preferences

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
completionPaging Bool True
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.
listCompletionsImmediately Bool True
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.