2009-12-01 12 views
9

Ich weiß, ghci unterstützt readline, und Tastenbelegungen wie^W und^U funktionieren wie erwartet. Aber ich frage mich, ob Ghci die Anpassung von Tastaturbelegungen unterstützt, genauso wie die Art und Weise, wie mit Inputrc umgegangen wird?Wie man die readline keybindings von ghci anpasst

Danke für jede Rückmeldung.

Antwort

14

Was ist Ihre GHC-Version? GHCi hörte auf, readline zu verwenden, und begann mit der Verwendung von libedit um 6,10 und haskeline um 6,12.

libedit kann in ~/.editrc konfiguriert werden; In ähnlicher Weise hat Haskeline ~/.haskeline. Zum Beispiel habe ich

 
# ~/.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 

meiner

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

Vielen Dank für Ihre freundliche Hilfe, ephemient! – Adaptee

1

@ ephemient Antwort übereinstimmen oben hilft auch mit neueren MySQL aufbaut, die von Readline- eingeschaltet haben, um libedit. Ich benutzen

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

zu meiner alten Version zu entsprechen, die innerhalb mysql verwendet zu arbeiten:

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

(mein einziges Ärgernis ist jetzt, dass, wenn ich will nur bewegen und nicht zu suchen, muß ich gibt eine "." zuerst, um zu jeder Zeile zu passen.