vim ide lisp common-lisp

Usando Vim para el desarrollo de Lisp



ide common-lisp (11)

He estado usando Lisp intermitentemente 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.

Por favor, no digas "usar emacs" ya que ya he aumentado en Vim y realmente lo estoy disfrutando como editor.


: establecer lisp

Vim tiene un modo que te ayuda a sangrar tu código según los estándares de Lisp.

Además, modifico lispwords para cambiar cómo vim introduce mi código.

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


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

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


Aquí hay un diagrama genial de Xach que resume la situación actual.


Limp pretende 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 se habla de Lisp en estos días, comúnmente se asume que es Common Lisp, el lenguaje estandarizado por ANSI X3J13 (vea HyperSpec y Practical Common Lisp para un buen libro de texto) con implementaciones como GNU Clisp, SBCL, CMUCL, AllegroCL y muchas otras. otros.

De regreso 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 el repositorio de Limp , encontrará algunos de los trabajos previos del proyecto SlimVim, a saber, la interfaz ECL (Embedable 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 es hacer dicha fusión con 7.2 y enviar un parche a vim_dev para fusionarlo con 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 de SWANK (la parte de SLIME que se ejecuta en tu Lisp, con slime.el siendo la parte que se ejecuta en editor - la interfaz).

Y en algún punto intermedio, es probable que todo Limp se reescriba en Common Lisp usando la interfaz ECL, haciendo que Limp sea más fácil de mantener (VimScript no es mi favorito) y sea más fácil de personalizar para los usuarios.

El sitio oficial de Limp baja de vez en cuando, pero como se señaló, la descarga en Vim.org siempre debería funcionar, y los grupos de soporte limp-devel limp-user se alojan en los 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!



Parece haber intentos de tener una integración de Lisp similar a SLIME en Vim, pero ninguno ha llegado tan lejos como ha sido 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ía encontrar todos los enlaces relevantes de la página de Cliki sobre Vim .


Puede darle un descanso a slimv .


Puedes probar Emacs con emulación Vim, no es perfecto, pero puede ser algo familiar. Creo que Lisp brilla si utilizas algo como Slime o DrScheme haciendo desarrollo iterativo, todos los otros editores se sienten simplemente equivocados.


Sé que dijiste que no te diga que uses Emacs.

Usa Emacs.

En serio, la configuración SLIME para Emacs es más o menos la plataforma de desarrollo estándar para Lisp, y por muy buenas razones.


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. Puede obtener un comportamiento similar de Vim utilizando los consejos aquí:

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

Ajusté mi propia secuencia de comandos para poder enviarla a 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 también les gusta LIMP .


  • Complementos de Vim: paréntesis de arco iris, sintaxis de Lisp
  • Complementos de SBCL: rlwrap, sb-aclrepl
  • Flujo de trabajo: Ion3 (u otro WM en mosaico) con múltiples ventanas de terminal.

    • Editar Lisp en Vim
    • Cambiar a la ventana de Lisp (usando el teclado por supuesto)
    • Use Cr para recuperar la línea para volver a cargar el sistema ASDF en cuestión para que sus cambios se activen.
    • Use X Window copy / paste para pequeños fragmentos / cambios.
    • Use DESCRIBE, RASTREO y APROPOS fuertemente.
    • Repetir.