10

我知道 GHCi 支持 Readline,以及诸如^W^U按预期工作的键绑定。

我确实想知道 ghci 是否支持自定义键绑定,就像 Bash 处理 inputrc 一样。

4

2 回答 2

14

你的 GHC 版本是什么?GHCi在 6.10左右停止使用 readline 并开始使用libedit ,在 6.12 左右开始使用haskeline

libedit 可以配置在~/.editrc; 同样,Haskline 有~/.haskeline. 例如,我有

# ~/.editrc(用于 libedit)
编辑
绑定 ^R em-inc-search-prev
绑定 ^S em-inc-search-next
绑定 ^[[5~ ed-search-prev-history
绑定 ^[[6~ ed-search-next-history

匹配我的

# ~/.inputrc (用于 readline)
"\e[5~": 历史搜索-向后
"\e[6~": 历史搜索-转发
于 2009-12-01T14:32:21.870 回答
1

@ephemient 上面的回答也有助于从 readline 切换到 libedit 的较新版本的 MySQL。我用了

$ ~/.editrc:
bind ^[[A ed-search-prev-history
bind ^[[B ed-search-next-history

匹配我以前在 MySQL 中工作的旧版本:

$ ~/.inputrc:
"\e[A":history-search-backward
"\e[B":history-search-forward

(我现在唯一的烦恼是,如果我只想滚动而不是搜索,我必须先输入一个“。”来匹配每一行)。

于 2017-08-30T05:56:53.933 回答