Rigardante post mi, al la griza iso, unu bedaŭro rimarkeble staras super
la aliaj: Ke longe, mi preferis la Lisp-interpretilon CLISP. Fakte, mi rifuzis
uzi
Du kapabloj de bona enigo
Tamen, mia obstino ne estis sen ajna logiko! Mi havis iom da sperto, kiu difektis la brilecon de SBCL, laŭ miaj okuloj. Specife, ĝia manko de du kapabloj. Uzante terminalan programon, kiuj estas la du plej bonvenigaj kapabloj, kiujn ĝi povus subteni?
Unue, potenca linioregado. Se oni ne povus uzi C-b
, C-w
(t.e. stirklavo+b aŭ +w), aŭ almenaŭ la
sagojn por movi la tajpmontrilon inter vortoj, uzi la programon tuj iĝas ĝeno.
Subite, la uzanto ekricevas piketojn de la komputilo, kaj sentas sin senkapabla
je ajna tajperaro. La komputilo ŝajnas esti malica riproĉanto. »Kial,« aŭdiĝas
krioj de la uzantoj, »mi devas diable reskribi tutan linion pro unu erareto?!«
Jenaj plendoj ofte aŭguras la detruon de ekrano. Sed kun forta linioregado, la
sistemo, laŭ la uzanto, sentiĝas pli fortikakaj gracia. Eraroj estas ne agacaĵo, sed
nezorginda ĉiutagaĵo.
Due estas TAB-finigsistemo. Se oni, tajpante ordonon, premus meze la deŝovan klavon TAB, listiĝu eblaj finoj por tiu vorto. Ĝi estas iom malpli grava ol la antaŭa postulo, sed mi opinias ĝin tamen nepra. Ofte, novuloj ne vere scias ĉion fareblan per novaj sistemoj aŭ programoj. Do, ili simple tajpas literon kaj tuj premas TAB; tiel, listiĝas aferoj fareblaj per la sistemo. Oftas, ankaŭ, ke novuloj forgesas ordononomojn, sed tamen memoras eble du aŭ tri literojn. Sed per la TAB sistemo, tio ne ĉagrenas la ruĝvagna novulo. Tamen, tiu novulo je ia punkto ne plu novos. Post tagoj, semajnoj, kaj monatoj, ĝi iĝas lertulo. La utilo de la TAB-sistemo kreskas kun ĝi! Nun, ĝi ne estas esplorilo, sed ŝparklavilo. Kun ĝi, la lertulo devas nur duontajpi vortojn, kaj ĝia laboro rapidiĝas. Kaj tiu rapidiĝo kreskiĝas kaj kreskiĝas, laŭ tempo.
Tiun kapabloparon subtenas multaj programoj enig-kaptemaj, inkz. ĉiun ŝelon:
ksh
, bash
, zsh
, fish
, kaj eĉ mysql
,
s-nail
, python
, ktp.
Ili estas tre bazaj kapabloj, kiujn ĉiu programo subtenu! Sed, bedaŭrinde, ne ĉiu programo atentas miajn konsilojn. :^)
Subteno de SBCL
Kaj tiel ni revenas al SBCL. Ĝia »ŝelo«, la REPL entute estas fiasko. Laŭ ĉiu, ĝi ĝenas kvazaŭ la plej dika dorno, ĝi kaptas kvazaŭ sireno sen ajna beleco, ĝi detruas esperojn de komencantoj, ĝi fuŝas vian apetiton, ĝi… ĝi…!
Nu, t.e., ĝi ne subtenas tiujn du kapablojn. Oni povas forigi
literojn, sed ne movi la montrilon. Oni povas premi la deŝovan klavon, sed nenio okazas
krom fuŝeto de enigo. Uzante ĝin, oni estas perdota. Pro tioj abomenaj problemaĉoj, mi
uzis sbcl
unuafoje, vidis ĉi tion…
$ ▶ sbcl
This is SBCL 1.4.8.openbsd, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.
SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses. See the CREDITS and COPYING files in the
distribution for more information.
* (ql:qu^[[D^[[D^[[A^[[C
… kaj tuj rekuris al la varma ĉirkaŭbrako de CLISP, kun rompita koro.
… kaj subteno de CLISP
CLISP havas plurajn ĝenajn problemojn kaj kontraŭkutimaĵoj, sed ĝi almenaŭ ne kontraŭas la plej gravajn leĝojn de enig-kaptaj programoj. Nu, bone, ĝi ne subtenas HTTPS’on. Nu, jes, ĝi ne subtenas plurajn fadenojn. Nu, mi cedas, ke ĝi ne subtenas bone ligojn al C-bibliotekoj. Jes, bone, multmultaj programoj el Quicklisp ne funkcias je ĝi. Sed tamen, tamen! Ĝia TAB-sistemo bonegas, fideblas, kaj tre utilegas. Ĝi estas forlasita, sed oni ankoraŭ povas tuŝi la spurojn de fantomoj kodrompistaj, sub la malombro de la plej brilanta programista Lumo.
$ ▶ clisp
i i i i i i i ooooo o ooooooo ooooo ooooo
I I I I I I I 8 8 8 8 8 o 8 8
I \ `+' / I 8 8 8 8 8 8
\ `-+-' / 8 8 8 ooooo 8oooo
`-__|__-' 8 8 8 8 8
| 8 o 8 8 o 8 8
------+------ ooooo 8oooooo ooo8ooo ooooo 8
Welcome to GNU CLISP 2.49 (2010-07-07) <http://clisp.cons.org/>
Copyright (c) Bruno Haible, Michael Stoll 1992, 1993
Copyright (c) Bruno Haible, Marcus Daniels 1994-1997
Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998
Copyright (c) Bruno Haible, Sam Steingold 1999-2000
Copyright (c) Sam Steingold, Bruno Haible 2001-2010
Type :h and hit Enter for context help.
;; Loading file /home/jaidyn/.clisprc ...
;; Loading file /home/jaidyn/quicklisp/setup.lisp ...
;; Loaded file /home/jaidyn/quicklisp/setup.lisp
;; Loaded file /home/jaidyn/.clisprc
[1]>
… »Tajpu :h kaj premu enigan klavon por helpo«?! Kiaj afablaj fantomoj, tiom bonkoraj!
Plibonigante la REPL’on
Instalante »linedit«
Tiu frazo elmontras klare bonvenigemon al komencantoj, kiun plene mankas SBCL. Nu, oni ne simple lamentu kaj plendu, ĉu ne? Mi montru al vi, kiel oni povas salti trans la breĉtruoj kun simpla grimpmasto.
Per la simpla biblioteko linedit
, mi povis transloĝiĝi al SBCL komforte.
Ĝi akireblas per la biblioteko-administrilo Quicklisp. Se ne havas vi
quicklisp
, simple aliru la ĉefretpaĝon, elŝutu
quicklisp.lisp, kaj rulu (load "quicklisp.lisp")
,
(quicklisp:install)
, k
(quicklisp:add-to-init-file)
.
Instalinte Quicklispon, rulu (ql:quickload :linedit)
pro instali
linedit
. Post tio, simple rulu (linedit:install-repl :wrap-current t :eof-quits t)
!
Per tio, via REPL estas renovigita! Jen kiel aspektu:
(:LINEDIT)
* (linedit:install-repl :wrap-current t :eof-quits t)
T
Linedit version 0.17.6, smart mode, ESC-h for help.
* ;; jen TAB-plenigo!
(ql:
ql:*quickload-prompt* ql:client-version
ql:*proxy-url* ql:local-projects-searcher
… kaj tiel plu. Mi prenis la deŝovan klavon je la unua ql:
.
Ĝi belas, ĉu ne? Nun, SBCL vere uzeblas! :D
Beligo kaj stilo
Ĝi uzeblas, bone. Sed ĉu ĝi belas? Ne aparte! Ni ĝustigu tion, ĉu ne?
Jen, ekzistas monteta (kaj… stultega) vojo irebla. Tiu vojo estas
rekta redakto de la biblioteko! Hura! Faru novan kopion de la
biblioteko, kaj ekredaktu ĝin
($ cp ~/quicklisp/dist/quicklisp/software/linedit ~/quicklisp/local-projects/
).
Redaktu la doserion tiean ports/sbcl.lisp
, kaj ĉe linio 61ª, redaktu la prompt
al io ajn dezirota. Bonan laboron, bonŝancon! ^-^
💬 Comments
💬 Komentoj
Nobody here but us chickens! 🐔
Neniu kometo jam! 🌠
Komentu per via ✦federuja✦ konto! Respondu:
Comment with your ✦fediverse✦ account! Reply to:
https://jam.xwx.moe/notice/AcL5ELthJmhqKvqh5k