6
votes

Activation de l'autocomplete dans SBCL

J'ai récemment commencé à apprendre Lisp et que vous avez principalement une corbeille avec Clisp et Vim. Je voulais aussi essayer SBCL, car cela est souvent recommandé comme l'un des meilleurs compilateurs LISP gratuits. Il y a une chose, cependant, ce qui rend SBCL plus difficile à utiliser pour moi: je ne peux pas obtenir autocomplete dans la Remep, que j'ai dans Clisp. C'est-à-dire que lorsque je démarre SBCL et tapez ce qui suit (comme exemple), xxx

est le caractère de tabulation littéral, je ne reçois pas de Liste des achèvements, mais plutôt un caractère d'onglet verbeux. Dans clisp, remplira la ligne précédente sur * (exiger .

Comme je suis assez nouveau sur Lisp, la fonctionnalité automatique de CISP est vraiment pratique, donc ce serait vraiment très pratique si quelqu'un pouvait également expliquer comment l'obtenir dans SBCL.


0 commentaires

4 Réponses :


5
votes

Je ne connais pas un moyen d'obtenir un moyen de remplir automatiquement dans SBCL, mais je trouve que l'interface avec mon environnement LISP à partir de SLime est assez pratique et à ce stade, vous pouvez utiliser CC CI pour une achèvement automatique .


2 commentaires

Je ne trouve rien dans le manuel SBCL à ce sujet, alors je suppose qu'il n'y a pas de support d'achèvement intégré. Je ne peux que deux secondes la recommandation d'utiliser SLIMe, elle a même plusieurs systèmes d'achèvement à choisir. Surtout l'achèvement fuzzy est génial. Et vous pouvez également compléter avec dans la slime repl. (Cela fonctionne au moins pour moi, et je n'avais rien à configurer quoi que ce soit pour y parvenir.) Modifier: Je vois juste que C-C C-I est désormais la liaison de clé d'achèvement de la bonne achèvement dans les tampons à bornes non rémises. C'est nouveau pour moi, c'était M-C-I.


Eh bien, un problème est que j'utilise Vim, pas Emacs. J'ai essayé d'échanger, mais il y a juste un peu trop de travail pour configurer Emacs avec ViperMode (ou similaire) et pour l'accorder à mon goût de le faire fonctionner pour moi. Ainsi, au moins pour le moment, SLime n'est pas une option. J'utilise un plugin inspiré par la boue pour Vim, mais ce n'est pas aussi puissant. Quoi qu'il en soit, c'est pourquoi je suis intéressé à la fin de la répartition standard de SBCL. Quoi qu'il en soit, merci pour la réponse. Cela me rend un peu plus inspiré de faire un nouvel essai chez Emacs.



8
votes

Un moyen d'obtenir une solution automatique RÉPP dans SBCL consiste à utiliser linedit, à partir de http: // commune- lisp.net/project/lineDit/ . Une seconde consiste à utiliser RLWrap, un wrapper LIVELLINE, avec un fichier d'achèvement approprié. (Je pense qu'il est juste de dire qu'aucun d'entre eux n'est aussi couramment utilisé que Emacs, ce qui fournit bien sûr également un complément avec un certain nombre d'autres fonctionnalités utiles.)


0 commentaires

0
votes

Si vous souhaitez utiliser SBCL, EMACSS et SLIME, suivez ce Common moderne Lisp sur le tutoriel Linux . Le didacticiel met en place QuickLisp et surtout (ql: Quickload "slime-slime-helper") , un éliscrit qui devient SLIMe à faire de manière automatique et plus.


0 commentaires

2
votes

En fait, c'est complètement possible. Oui, vous voulez travailler avec des LISP commun via Emacs et Slime (je préfère Sly). Mais c'est un autre coup de débutant mural.

Vous voulez juste jouer à partir de la réplique? Les instructions suivantes permettent une autocomplete dans SBCL avec RLWRAP. P>

https://www.cliki.net/cmuct%20hints P>

1) Installez rlwrap p>

2) Créer un alias de coque, par exemple, mettre du texte comme p> xxx pré>

dans votre ~ / .bstrucc (ou ~ / .profile ou peu importe). (Ou vous pouvez continuer à appeler SBCL rlwrapped via "rlwrap sbcl") p>

3) Edi Weitz a créé un fichier de liste d'achèvement qui est désormais sorti de son site Web. Je suis donc en train de relier à Internet Archive. Enregistrez cette liste de mots dans un fichier "SBCL" https://web.archive.org/web/ 20031207221537 / http: //weitz.de/files/cmucl_completions p>

4) Vous pouvez essayer de mettre le fichier en fonction des instructions de Cliki, cela ne s'appliquera que pour l'utilisateur que vous êtes connecté en dessous de. Je voulais que cela fonctionne pour tous les utilisateurs, je mets donc le fichier "SBCL" dans mon répertoire d'achèvement de RLWRAP, qui est dans / usr / partager / rlwrap / achève / p>

Alors maintenant j'ai un fichier / usr / partager / rlwrap / achèvement / sbcl Qui contient les mots. p>

5) créer / ajuster ~ / .Inputtrc Fichier Ajoutez la ligne P>

TAB: complete


1 commentaires

Au lieu de créer / USR / Share / RLWrap / achèvement / sbcl (qui nécessite probablement des privilèges superutilisateurs de créer), un utilisateur régulier pourrait créer ~ / .sbcl_commlettions .