Nun, kiam retrorigardis mi la pasintajn tempojn, nur unu bedaŭro rimarkeble
brilas supre la aliaj— ke iutempe, ĉefe mi uzis CLISP
‘on. Fakte, mi rifuzis
uzi sbcl
'on vigle ĸ perforte, malgraŭ la bonsencaj krioj de miaj amikoj! Nun
akordus mi, entute, ke CLISP
estas polvkovrita, neuzinda fekaĵo. Se oni
skribas Lispajn programojn, si bezonas sbcl
'on.
Sed, mia rifuzado ne estis entute sensenca! Mi havis iometan da sperto, kiu
malpurigis la aspekton de sbcl
, laŭ miaj okuloj.
Kiam oni uzas la terminalon, kiuj estas la plej utilaj, plej uzataj, plej bonvenigaj ebloj de la konko?
Unue, funkcia kaj forta linioregado. Se oni ne povus uzi CTRL-b,
(eble vi-klavsistemo), CTRL-w, aŭ eĉ la direktklavoj por movi trans vortoj, la
uzado tuj geniĝas. Subite, la uzanto ekricevis kontraŭfrapojn el la komputilo,
kaj sentas sin neregema— la komputilo ŝajnas esti la reĝo. »Kial,« voĉas
kriegaĉoj de la uzantoj, »mi ne povas movi?! Mi devas faru novan linion
entute pro unu tajperaro?!« Jenaj plendoj ofte antaŭas la detruo de ekranoj.
Sed kun forta linioregado, la sistemo, laŭ la uzanto, aspektas plie
malfacilrompa— eraroj estas bonvenata, kaj ri plirapide spertiĝas pri la sistemo
k konko mem.
Due estas TAB-finigsistemo. Ĝi ne estas grava, je la sama alto de la lasta, sed kvankam grava. Ofte, novaj uzantoj ne vere scias ĉion fareblan per novaj sistemoj, aŭ programoj. Do, ili simple tajpas literon kaj tuj »TAB«— kaj montriĝas kelkajn eblojn de la sistemo. Estas komune, ankaŭ, ke novanoj forgesas plenajn nomojn, kun nur du aŭ tri literoj memorata. Kun la »TAB« sistemo, tio sufiĉas, kaj ne ĉagrenas la ruĝvagna novano. Iutempe, poste kelkaj semajnoj, la ruĝvagnulo ne plu novas— ili spertiĝas. La utilo de la TAB-finigsistemo kreskas kun ri. Nun, ĝi ne estas esplorilo, sed rapidilo. Kun ĝi, taskoj plirapidegiĝas— kaj la alto de plirapidiĝo nur pliiĝas kun pli da tempo.
Ambaŭ ebloj estas, hodiaŭ, inkluzivita je ĉiuj konkoj, kaj ankaŭ multaj reagaj
(enirokaptigaj) programoj— ksh
, bash
, zsh
, fish
, kaj mysql
,
s-nail
, python*
, ktp. Ili estas la bazo de ebleco, ke ĉiuj programoj devas
skribi! Sed, bedaŭrinde, ne ĉiuj programoj vere skribas tiajn…
Kaj tiel revenas ni al sbcl
. Ĝia »REPL« entute estas fiasko. Laŭ iu ajn, ĝi
ĝenas kvazaŭ la plej dika dorno, kaj plie por komencantoj! Ĝi mankas ambaŭ—
ne ekzistas linioregado (krom »BACKSPACE«), kaj ne utilas »TAB«! Se vi ne scias
la entutĝustajn ordojn de literoj, vi tuj estas perdita.
Pro tioj teruregaj problemaĉoj, mi uzis sbcl
unufoje, vidis ĉi tion—
$ ▶ sbcl
This is SBCL 1.4.8.openbsd, an implementation of ANSI Common Lisp.
More information about SBCL is available at .
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 respondante kuris degne al CLISP.
CLISP havas multegon da ĝenigaj problemoj kaj strangaĵoj, sed ĝi ne malakordis
la plej gravajn leĝojn de enirokaptigaj programoj. Ĝi ne subtenas »HTTPS«,
sed ĝia linioregadebleco fortegas. Grandan kvanton da quicklisp
programoj
ne funkcias per ĝi (facile), sed ĝia TAB-finigsistemo bonutilegas. Eble ĝi
estas forlasita, sed ĝi ankoraŭ enhavas, kaj ĉiam enhavos, amenoreon 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)
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]>
Per unu frazo, ĝi estas plikomforta por komencantoj pro ĝia pliklara klavregeco,
kiun mankas sbcl
.
Sed, mi ne volas simple plori pro la truoj de sbcl
— mi volas instrui, kiel
oni povas salti trans la breĉtruoj kun simpla grimpmasto.
Per la simpla pakaĵo linedit
, poviĝis mi elmigri al sbcl
komforte. Ĝi
akireblas el quicklisp
.
Se ne havas vi quicklisp
, simple aliru la
ĉefretpaĝon, elŝuti
quicklisp.lisp, kaj rulu
(load "quicklisp.lisp")
, (quicklisp:install)
, k
(quicklisp:add-to-init-file)
.
Per quicklisp
, tajpu (ql:quickload :linedit)
pro akiri linedit
—
nun, rulu (linedit:install-repl :wrap-current t :eof-quits t)
!
Jen la nova aspekto de la REPL:
(: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] …
(Tajpis mi »TAB« je la unua »ql:«)
Aĥ, ve, belege! Nun sbcl
vere uzindas. :)
Tio estas la fino de ĝia plifunkciiĝo— sed, se vi estas iomete kiel mi, vi volus ŝanĝi la prompton (antaŭkomandtekston), pro ĝi plibele aspektus. ;P
Se tion deziras vi, ekzistas malsimpla (kaj… stultega) vojo irebla.
Vi povas fari novan kopiion ($ cp ~/quicklisp/dist/quicklisp/software/linedit
~/quicklisp/local-projects/
) de la projekto, kaj redakti ĝin permane.
Eble ekzistas plisence metodo, sed tio ne estas konata.
Redaktu la doserio »ports/sbcl.lisp«, kaj je linio 61a, ŝanĝi la prompt
al io ajn dezirota. Bonan laboron, bonan ŝancon! ^-^
Jen mia prompto (mi pavemas, kompreneble, jajaja):