Question

J'utilise Lisp de temps à autre, mais je commence à être plus sérieux au sujet de la réalisation de "vrais". travailler à Lisp. Je suis un grand fan de Vim et je me demandais comment je pourrais être plus productif en utilisant Vim comme éditeur pour le développement Lisp. Les plugins, suggestions de flux de travail, etc. sont les bienvenus.

Ne dites pas "utiliser Emacs". comme je l'ai déjà monté sur Vim et je l'apprécie vraiment en tant qu'éditeur.

Était-ce utile?

La solution

Limp vise à être un IDE Common Lisp complet pour Vim. La valeur par défaut est SBCL, mais vous pouvez la modifier pour prendre en charge la plupart des autres implémentations en remplaçant "sbcl". pour votre lisp préféré, dans le fichier /usr/local/limp/latest/bin/lisp.sh

Dans les discussions sur Lisp ces jours-ci, il est communément supposé être Common Lisp, langage normalisé par ANSI X3J13 (voir HyperSpec et Lisp pratique pour un bon manuel) avec des implémentations telles que GNU Clisp, SBCL, CMUCL, AllegroCL et de nombreux autres.

Retour à la boite. Il existe d'autres solutions plus légères, ou essayez de faire autre chose, mais je crois en la création d'un environnement qui vous donne des éléments tels que la mise en correspondance des parenthèses, la mise en surbrillance, la consultation de la documentation, c'est-à-dire en faire une solution clé en main autant que possible. .

Dans le référentiel Limp , vous trouverez quelques-uns des travaux antérieurs du projet SlimVim, à savoir: Interface ECL (Embeddable Common Lisp), fusionnée avec les versions ultérieures (7.1); Simon a également mis à jour des correctifs à la version 7.2 non encore fusionnés. L’interface ECL est décrite dans if_ecl.txt . .

Le travail à court terme consiste à effectuer cette fusion avec la version 7.2 et à envoyer un correctif à vim_dev pour le fusionner dans l'arborescence officielle de Vim.

Ce qui nous amène aux projets à long terme: avoir Lisp directement dans Vim facilitera le travail sur une interface SWANK (la partie de SLIME qui fonctionne dans votre Lisp, avec slime.el étant la partie qui fonctionne dans l'éditeur - l'interface).

Et quelque part entre les deux, il est probable que tout le format Limp sera réécrit dans Common Lisp à l'aide de l'interface ECL, ce qui facilitera la maintenance de Limp (VimScript n'est pas mon préféré) et facilitera la personnalisation par les utilisateurs.

Le site officiel de Limp est en panne de temps en temps, mais comme indiqué, le < un href = "http://www.vim.org/scripts/script.php?script_id=2219" rel = "noreferrer"> télécharger sur Vim.org devrait toujours fonctionner et les groupes de soutien limp-devel et limp-user est hébergé par Google Groupes. N'hésitez pas à vous joindre si vous estimez avoir besoin d'une réponse à votre question ou si vous souhaitez même participer au développement. La majeure partie de la discussion a lieu sur la liste limp-devel. Si vous êtes dans IRC, je suis dans #limp sur irc.freenode.net en tant que 'tic'.

Bonne chance!

Autres conseils

Vous pouvez donner une pause à slimv .

Voici un superbe diagramme de Xach qui résume la situation actuelle.

schéma expliquant qu'il n'y a presque aucun utilisateur de VIM qui soit également les programmeurs Lisp et peuvent également le pirater pour en faire un bon IDE Lisp ... moche alt texte :)

SLIME for EMACS est un outil formidable pour la programmation LISP. La meilleure partie consiste à envoyer le code écrit dans votre éditeur directement à une session LISP en direct. Vous pouvez obtenir un comportement similaire de Vim en utilisant les astuces suivantes:

http://technotales.wordpress.com/2007 / 10/03 / like-slime-for-vim /

J'ai ajusté mon propre script afin de pouvoir envoyer un SBCL ou un Clojure . Cela vous rend beaucoup plus productif et tire parti du REPL.

": set lisp " démarre le mode indentation lisp pour Vim. Mais cela ne marchera pas avec certains dialectes comme Clojure. Pour Clojure, utilisez VimClojure .

Certaines personnes aiment LIMP également.

: définir lisp

Vim dispose d’un mode qui vous aide à mettre en retrait votre code conformément aux normes Lisp.

De plus, je modifie les lispwords pour changer la façon dont vim met en retrait mon code.

: setl lw- = if (dans ~ / .vim / ftplugin / lisp.vim)

  • Add-ons Vim: Rainbow Parentheses, syntaxe Lisp
  • Compléments SBCL: rlwrap, sb-aclrepl
  • Flux de travail: Ion3 (ou un autre WM en mosaïque) avec plusieurs fenêtres de terminal.

    • Éditer Lisp dans Vim
    • Passer à la fenêtre Lisp (en utilisant le clavier bien sûr)
    • Utilisez C-r pour rappeler la ligne afin de recharger le système ASDF en question afin que vos modifications deviennent actives.
    • Utilisez le copier / coller de X Window pour les petits extraits / modifications.
    • Utilisez fortement DESCRIBE, TRACE et APROPOS.
    • Répéter.

Vous pouvez essayer Emacs avec l'émulation Vim, ce n'est pas parfait, mais c'est peut-être un peu familier. Je pense que Lisp brille si vous utilisez quelque chose comme Slime ou DrScheme pour le développement itératif, tous les autres éditeurs se sentent tout à fait mal.

Nous voici 9 ans plus tard et nous disposons maintenant de Vim 8 et de Neovim, qui permettent tous deux d’interagir de manière asynchrone avec les plug-ins.

vlime est un excellent plugin riche en fonctionnalités qui tire parti de la nouvelle interface asynchrone un environnement de développement de type SLIME pour Common Lisp.

Je sais que vous avez dit de ne pas vous dire d'utiliser Emacs.

Utilisez Emacs.

Sérieux, la configuration SLIME pour Emacs est à peu près la

em> plate-forme de développement standard pour Lisp, et pour une très bonne raison.

Il semble qu’il y ait eu des tentatives d’intégration de Lisp dans Vim de type SLIME, mais aucune n’est allée aussi loin que nécessaire pour être vraiment utile. Je pense que l'intégration d'ECL a bien été faite, mais pas engagée en amont.

Vous devriez trouver tous les liens pertinents dans la page de Cliki sur Vim .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top