كيفية تخصيص كيبيندينغس ريدلاين من GHCi؟
سؤال
وأنا أعلم GHCi يدعم ريدلاين، وكيبيندينغس مثل ^W
والعمل ^U
كما هو متوقع.
وأنا لا أتساءل ما إذا كان الدعم ghci التخصيص من كيبيندينغس الصفقات طريقة باش مع inputrc.
المحلول
ما هو الإصدار GHC الخاصة بك؟ توقف GHCi استخدام Readline وبدأت باستخدام libedit حول 6.10 و <لأ href = "HTTP: // hackage. haskell.org/cgi-bin/hackage-scripts/package/haskeline "يختلط =" noreferrer "> 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 في الجواب أعلاه أيضا يساعد مع تبني أحدث الخلية التي تحولت من يقوم readline إلى libedit. اعتدت
$ ~/.editrc:
bind ^[[A ed-search-prev-history
bind ^[[B ed-search-next-history
ولمباراة نسختي القديمة التي كان يعمل داخل الخلية:
$ ~/.inputrc:
"\e[A":history-search-backward
"\e[B":history-search-forward
و(بلدي الوحيد الانزعاج الآن هو أنه إذا أريد فقط للتمرير وليس البحث، لا بد لي من كتابة "." لأول مرة لتتناسب مع كل سطر).