开发者

How to customize Readline keybindings of GHCi?

开发者 https://www.devze.com 2022-12-12 19:19 出处:网络
I know GHCi supports Readline, and keybindings such as ^Wand ^U开发者_运维知识库 work as expected.

I know GHCi supports Readline, and keybindings such as ^W and ^U开发者_运维知识库 work as expected.

I do wonder whether ghci support customization of keybindings the way Bash deals with inputrc.


What is your GHC version? GHCi stopped using readline and started using libedit around 6.10 and haskeline around 6.12.

libedit can be configured in ~/.editrc; similarly, Haskeline has ~/.haskeline. For example, I have

# ~/.editrc (for libedit)
edit on
bind ^R em-inc-search-prev
bind ^S em-inc-search-next
bind ^[[5~ ed-search-prev-history
bind ^[[6~ ed-search-next-history

to match my

# ~/.inputrc (for readline)
"\e[5~": history-search-backward
"\e[6~": history-search-forward


@ephemient's answer above also helps with newer builds of MySQL which have switched from readline to libedit. I used

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

to match my old version which used to work inside MySQL:

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

(my only annoyance now is that if I just want to scroll and not search, I have to type a "." first to match every line).

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号