J'utilise Lisp sur et en dehors depuis un moment mais je commence à devenir plus sérieux au sujet de faire du "vrai" travail en Lisp. Je suis un grand fan de Vim et je me demandais comment je pouvais être le plus productif en utilisant Vim comme éditeur pour le développement Lisp. Les plugins, les suggestions de flux de travail, etc. sont tous les bienvenus.
S'il vous plaît, ne dites pas "utiliser emacs" car j'ai déjà progressé sur Vim et je l'apprécie vraiment en tant qu'éditeur.
vim
ide
lisp
common-lisp
Drew Olson
la source
la source
Réponses:
Limp vise à être un IDE Common Lisp complet pour Vim. Il est par défaut SBCL, mais peut être modifié pour prendre en charge la plupart des autres implémentations en remplaçant «sbcl» par votre lisp préféré, dans le fichier /usr/local/limp/latest/bin/lisp.sh
En discutant de Lisp ces jours-ci, il est généralement supposé être Common Lisp, le langage normalisé par ANSI X3J13 (voir HyperSpec et Practical Common Lisp pour un bon manuel) avec des implémentations telles que GNU Clisp, SBCL, CMUCL, AllegroCL, et bien d'autres autres.
Retour à Limp. Il existe d'autres solutions plus légères, ou qui essaient de faire d'autres choses, mais je crois qu'il faut fournir un environnement qui vous donne des choses comme la correspondance des parenthèses, la mise en évidence, la recherche de documentation, c'est-à-dire en faire une solution clé en main autant que possible .
Dans le référentiel Limp, vous trouverez une partie des travaux précédents du projet SlimVim, à savoir l'interface ECL (Embeddable Common Lisp), fusionnée avec les versions ultérieures (7.1); Simon a également mis à disposition des correctifs pour la version 7.2 qui n'ont pas encore été fusionnés. L'interface ECL est documentée dans if_ecl.txt .
Le travail à court terme consiste à effectuer ladite fusion avec 7.2 et à soumettre un correctif à vim_dev pour le faire fusionner dans l'arborescence officielle de Vim.
Ce qui nous amène aux plans à long terme: avoir Lisp directement dans Vim facilitera le travail sur un front-end SWANK (la partie de SLIME qui s'exécute dans votre Lisp, avec slime.el étant la partie qui s'exécute dans le éditeur - le frontend).
Et quelque part entre les deux, il est probable que tout Limp sera réécrit en Common Lisp en utilisant l'interface ECL, ce qui rendra Limp plus facile à maintenir (VimScript n'est pas mon préféré) et sera plus facile à personnaliser pour les utilisateurs.
Le site officiel de Limp tombe de temps en temps, mais comme indiqué, le téléchargement sur Vim.org devrait toujours fonctionner, et les groupes de soutien limp-devel et limp-user sont hébergés avec Google Groupes. N'hésitez pas à vous joindre si vous sentez que vous avez besoin d'une réponse à une question, ou si vous souhaitez peut-être même participer au développement. La plus grande partie de la discussion se déroule sur la liste de développement limp. Si vous êtes dans IRC, je suis dans #limp sur irc.freenode.net en tant que «tic».
Bonne chance!
la source
Vous pourriez donner une pause à Slimv .
la source
Voici un diagramme sympa de Xach qui résume la situation actuelle.
la source
Découvrez le plug-in Limp:
http://www.vim.org/scripts/script.php?script_id=2219
la source
SLIME for EMACS est un outil formidable pour la programmation LISP. La meilleure partie est d'envoyer du code écrit dans votre éditeur directement à une session LISP en direct. Vous pouvez obtenir un comportement similaire de Vim en utilisant les conseils ici:
http://technotales.wordpress.com/2007/10/03/like-slime-for-vim/
J'ai ajusté mon propre script afin de pouvoir envoyer à une session SBCL ou Clojure . Cela vous rend beaucoup plus productif et tire parti de la REPL.
": set lisp" démarre le mode d'indentation lisp pour Vim. Mais cela ne fonctionnera pas avec certains dialectes comme Clojure. Pour Clojure, utilisez VimClojure .
Certaines personnes aiment aussi LIMP .
la source
Nous voici 9 ans plus tard, et maintenant nous avons Vim 8 et Neovim, tous deux offrant la possibilité d'interagir avec les plugins de manière asynchrone.
vlime est un excellent plugin riche en fonctionnalités qui tire parti de la nouvelle interface async pour fournir un environnement de développement de type SLIME pour Common Lisp.
la source
Workflow: Ion3 (ou un autre WM en mosaïque) avec plusieurs fenêtres de terminal.
la source
: définir lisp
Vim a un mode pour vous aider à indenter votre code selon les standards Lisp.
De plus, je modifie les lispwords pour changer la façon dont vim indente mon code.
: setl lw- = if (dans ~ / .vim / ftplugin / lisp.vim)
la source
Vous pouvez essayer Emacs avec l'émulation Vim, ce n'est pas parfait, mais cela peut être quelque peu familier. Je pense que Lisp brille si vous utilisez quelque chose comme Slime ou DrScheme pour faire du développement itératif, tous les autres éditeurs se sentent tout simplement faux.
la source
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 plate-forme de développement standard pour Lisp, et pour une très bonne raison.
la source
Il semble y avoir eu des tentatives d'intégration de Lisp de type SLIME dans Vim, mais aucune n'est vraiment allée aussi loin que nécessaire pour être vraiment utile. Je pense que l'intégration d'ECL a été faite, mais pas engagée en amont.
Vous devriez trouver tous les liens pertinents de la page de Cliki sur Vim .
la source