2008-09-18 14 views
83

He estado usando Lisp por un tiempo, pero estoy empezando a tomarme más en serio la tarea de hacer un trabajo "real" en Lisp. Soy un gran admirador de Vim y me preguntaba cómo puedo ser más productivo usando Vim como mi editor para el desarrollo de Lisp. Complementos, sugerencias de flujo de trabajo, etc. son bienvenidos.Usando el desarrollo de Vim for Lisp

Por favor, no diga "use emacs" porque ya he aumentado en Vim y realmente lo estoy disfrutando como editor.

+0

¿Qué Lisp, Common Lisp? – Pablo

+0

En este caso, sí, Common Lisp. Hago algunas actividades en Scheme también, pero eso es más para una programación exploratoria casual. –

Respuesta

50

Limp tiene como objetivo ser un IDE Common Lisp con todas las funciones para Vim.Su valor predeterminado es SBCL, pero puede modificarse para admitir la mayoría de las otras implementaciones reemplazando "sbcl" por su lisp favorito, en el archivo /usr/local/limp/latest/bin/lisp.sh

cuando hablamos de Lisp en estos días , comúnmente se asume que es Common Lisp, el lenguaje estandarizado por ANSI X3J13 (ver the HyperSpec, y Practical Common Lisp para un buen libro de texto) con implementaciones como GNU Clisp, SBCL, CMUCL, AllegroCL y muchas otras.

Volver a Limp. Hay otras soluciones que son más livianas o intentan hacer otras cosas, pero creo que se debe proporcionar un entorno que proporcione elementos como la coincidencia de grupos, el resaltado y la búsqueda de documentación, es decir, convertirlo en una solución llave en mano tanto como sea posible. .

En the Limp repository encontrará algunos de los trabajos anteriores del proyecto SlimVim, concretamente la interfaz ECL (Embeddable Common Lisp), fusionada con versiones posteriores (7.1); Simon también ha hecho parches a 7.2 disponibles aún por fusionar. La interfaz ECL está documentada en if_ecl.txt.

El trabajo a corto plazo consiste en hacer dicha fusión con 7.2 y enviar un parche a vim_dev para fusionarlo en el árbol oficial de Vim.

Lo que nos lleva a los planes a largo plazo: tener Lisp directamente en Vim hará que sea conveniente comenzar a trabajar en un front-end SWANK (la parte de SLIME que se ejecuta en tu Lisp, con slime.el siendo la parte que se ejecuta en el editor - la interfaz).

Y en algún punto intermedio, es probable que todo Limp se reescriba en Common Lisp utilizando la interfaz ECL, facilitando el mantenimiento de Limp (VimScript no es mi favorito) y facilitando la personalización de los usuarios.

El official Limp site se cae de vez en cuando, pero como se ha señalado, la download at Vim.org siempre se debe trabajar, y los grupos de apoyo y limp-devellimp-user están alojados con Grupos de Google. No dude en unirse si cree que necesita una respuesta o quizás quiera participar en el desarrollo. La mayor parte de la discusión se lleva a cabo en la lista de dificultad de desarrollo. Si te gusta el IRC, estoy en #limp en irc.freenode.net como 'tic'.

Buena suerte!

+3

¿Cuál es el estado de este trabajo? ¿Todavía estás interesado en trabajar con eso? –

+3

Estoy confundido. La "respuesta" parece una sugerencia de algunas opciones, como usar Limp, pero no explica en absoluto cómo lograr esto. Pensé que la pregunta era, ¿cómo uso Vim con SBCL/lo que sea? Esto realmente no responde la pregunta, así que estoy un poco confundido por todos los votos por arriba. ¿Te importaría entrar en detalles sobre cómo configurar este entorno y comenzar? – jpswain

+0

Parece que Limp ya no se mantiene: el sitio está caído y el último cambio fue en 2008. – kynan

3

Usted puede dar a Emacs con emulación de Vim un intento, no es perfecto, pero puede ser un poco familiarizado. Creo que Lisp brilla si utilizas algo como Slime o DrScheme haciendo desarrollo iterativo, todos los otros editores se sienten simplemente equivocados.

5

: set Lisp

Vim tiene un modo para ayudarle a indentar el código para los estándares de Lisp.

Además, modifico lispwords para cambiar la forma en que vim introduce mi código.

: SETL lw- = si (en ~/.vim/ftplugin/lisp.vim)

+1

sangría es fácil. Proporcionar un buen IDE es mucho más importante. En realidad, VIM ni siquiera hará eso (sangría), como lo hace Emacs/SLIME. –

1

Sé que dijo que no te dijera usar Emacs.

Utilice Emacs.

Serio, la configuración SLIME para Emacs es más o menos la plataforma de desarrollo estándar para Lisp, y por una buena razón.

+4

Todavía apoyo esta respuesta, a pesar de que la gente sigue votando en abril de 2011. Me gusta Vim y lo uso a diario, pero no hay nada como programar Lisp en un entorno escrito en Lisp. "Desearía poder hacer que mi editor reaccione a lo que sucede en mi servidor Lisp. ¡Oh, espera! ¡Puedo!" es una gran sensación De nuevo: me gusta * Vim, pero mi opinión es que Emacs es un editor mucho mejor para trabajar con * Lisp *. –

+0

Seguimiento: ¿6 años después y todavía votan por esta respuesta de hace casi una década? OK, lo conseguimos, lo conseguimos! Todavía no lo estoy cambiando. –

8

SLIME para EMACS es una herramienta maravillosa para la programación de LISP. La mejor parte es enviar el código escrito en su editor directamente a una sesión de LISP en vivo. Usted puede obtener un comportamiento similar de Vim uso de los consejos aquí:

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

ajusté mi propio guión para que pueda enviar a cualquiera de una sesión SBCL o Clojure. Te hace mucho más productivo y aprovecha el REPL.

": set lisp" inicia el modo de sangría de lisp para Vim. Pero no funcionará con algunos dialectos como Clojure. Para Clojure, use VimClojure.

Algunas personas como LIMP también.

20

Aquí hay un buen diagrama por Xach que resume la situación actual.

diagram explaining that there are nearly no VIM users that are also Lisp programmers and can also hack it to make it a good Lisp IDE... lousy alt text :)

+56

Eso es tonto. No necesita C para personalizar Vim. Vim es programable desde el primer momento en su propio idioma, y ​​la mayoría de las compilaciones son compatibles con las secuencias de comandos de Ruby y Python. –

+6

Entonces, ¿los usuarios de VIM que desean usar VIM para Common Lisp son el núcleo de todos los usuarios de VIM? Tal vez me falta algo aquí ... –

+42

Te estás perdiendo cómo funcionan los diagramas de Venn. –

2

No parecen haber sido los intentos por tener una integración BABA-como de Lisp en Vim, pero ninguno realmente han ido tan lejos como sea necesario para ser realmente útil. Creo que la integración de ECL se ha realizado, sin embargo, pero no se ha comprometido en la fase inicial.

Deberías encontrar todos los enlaces relevantes de Cliki's page about Vim.

5
  • Vim complementos: Los paréntesis del arco iris, sintaxis Lisp
  • SBCL complementos: rlwrap, SB-aclrepl
  • flujo de trabajo: Ion3 (o algún otro WM azulejos) con múltiples ventanas de terminal.

    • Editar Lisp en Vim
    • Cambiar a la ventana Lisp (usando el teclado, por supuesto)
    • Uso C-r para recordar la línea para recargar el sistema ASDF en cuestión por lo que sus cambios se activan.
    • Utilice X Window copiar/pegar para pequeños fragmentos de código/cambios.
    • Use DESCRIBE, RASTREO y APROPOS profusamente.
    • Repita.
26

Es posible dar slimv un descanso.

+0

+1. Empezando por slimv, casi no lo conozco, pero parece funcionar perfectamente bien. la caja como una alternativa real al limo para emacs. También tiene lanzamientos recientes (v0.9.2 07-nov-2011) mientras que flácido no tiene actualizaciones desde 2008. – jmsu

+2

He estado usando slimv por un tiempo; es excelente. Nada más se compara en el espacio. – tempire

2

Aquí estamos 9 años más tarde, y ahora tenemos Vim 8 y Neovim, ambos ofrecen la capacidad de interactuar con los complementos de forma asincrónica.

vlime es un complemento excelente y rico en funciones que aprovecha la nueva interfaz asíncrona para proporcionar un entorno de desarrollo similar al SLIME para Common Lisp.

Cuestiones relacionadas