Как настроить привязку клавиш Readline в GHCi?
Вопрос
Я знаю, что GHCi поддерживает Readline, и сочетания клавиш, такие как ^ W
и ^ U
, работают должным образом.
Мне интересно, поддерживает ли ghci настройку сочетаний клавиш, как Bash работает с inputrc.
Решение
Какая у вас версия GHC? GHCi прекратил использовать readline и начал использовать libedit около 6.10 и haskeline около 6.12.
libedit можно настроить в ~ / .editrc код>
; аналогично, на Haskeline есть ~ / .haskeline
. Например, у меня есть
# ~/.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
чтобы соответствовать моему
# ~/.inputrc (for readline) "\e[5~": history-search-backward "\e[6~": history-search-forward
Другие советы
@ ephemient выше также помогает с более новыми сборками MySQL, которые переключились с readline на libedit. Я использовал
$ ~/.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
(единственное, что меня сейчас раздражает, так это то, что если я просто хочу прокрутить, а не искать, я сначала должен ввести ". " в каждой строке).