我知道 GHCi 支持 Readline,以及诸如^W
和^U
按预期工作的键绑定。
我确实想知道 ghci 是否支持自定义键绑定,就像 Bash 处理 inputrc 一样。
你的 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~": 历史搜索-转发
@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
(我现在唯一的烦恼是,如果我只想滚动而不是搜索,我必须先输入一个“。”来匹配每一行)。