Menggunakan Vim untuk pengembangan Lisp

88

Saya telah menggunakan dan menonaktifkan Lisp untuk sementara waktu, tetapi saya mulai menjadi lebih serius untuk melakukan pekerjaan "nyata" di Lisp. Saya adalah penggemar berat Vim dan bertanya-tanya bagaimana saya bisa menjadi paling produktif menggunakan Vim sebagai editor saya untuk pengembangan Lisp. Plugin, saran alur kerja, dll. Semuanya diterima.

Tolong jangan katakan "gunakan emacs" karena saya telah menggunakan Vim dan saya sangat menikmatinya sebagai editor.

Drew Olson
sumber
Lisp yang mana, Lisp umum?
pupeno
Dalam hal ini, ya, Common Lisp. Saya melakukan beberapa bermain-main di Skema juga, tapi itu lebih untuk pemrograman eksplorasi biasa.
Drew Olson
Silakan lihat Lisp di Vim dengan Slimv atau Vlime di mana saya telah memberikan akun terperinci tentang pemrograman Common Lisp di Vim dengan Slimv atau Vlime, dua plugin populer untuk Vim yang menyediakan lingkungan pemrograman interaktif seperti SLIME untuk Common Lisp.
Susam Pal

Jawaban:

51

Limp bertujuan untuk menjadi Common Lisp IDE untuk Vim dengan fitur lengkap. Ini default ke SBCL, tetapi dapat diubah untuk mendukung sebagian besar implementasi lain dengan mengganti "sbcl" untuk cadel favorit Anda, di file /usr/local/limp/latest/bin/lisp.sh

Saat membahas Lisp hari ini, umumnya diasumsikan sebagai Common Lisp, bahasa yang distandarisasi oleh ANSI X3J13 (lihat HyperSpec , dan Practical Common Lisp untuk buku teks yang baik) dengan implementasi seperti GNU Clisp, SBCL, CMUCL, AllegroCL, dan banyak lagi. orang lain.

Kembali ke Limp. Ada solusi lain yang lebih ringan, atau mencoba melakukan hal lain, tetapi saya percaya dalam menyediakan lingkungan yang memberi Anda hal-hal seperti pencocokan braket, penyorotan, pencarian dokumentasi, yaitu menjadikannya solusi turn-key sebanyak mungkin .

Di repositori Limp Anda akan menemukan beberapa pekerjaan proyek SlimVim sebelumnya, yaitu antarmuka ECL (Embeddable Common Lisp), digabungkan dengan rilis yang lebih baru (7.1); Simon juga telah menyediakan tambalan ke 7,2 yang belum digabungkan. Antarmuka ECL didokumentasikan dalam if_ecl.txt .

Pekerjaan jangka pendek adalah melakukan penggabungan tersebut dengan 7.2 dan mengirimkan tambalan ke vim_dev untuk menggabungkannya ke dalam pohon Vim resmi.

Yang membawa kita ke rencana jangka panjang: memiliki Lisp langsung di Vim akan membuatnya nyaman untuk mulai bekerja di front-end SWANK (bagian dari SLIME yang berjalan di Lisp Anda, dengan slime.el menjadi bagian yang berjalan di editor - bagian depan).

Dan di suatu tempat di antaranya, kemungkinan semua Limp akan ditulis ulang di Common Lisp menggunakan antarmuka ECL, membuat Limp lebih mudah dipelihara (VimScript bukan favorit saya) dan lebih mudah bagi pengguna untuk menyesuaikan.

Situs resmi Limp turun dari waktu ke waktu, tetapi seperti yang ditunjukkan, unduhan di Vim.org harus selalu berfungsi, dan grup dukungan limp-devel dan limp-user dihosting dengan Google Grup. Jangan ragu untuk bergabung jika Anda merasa perlu menjawab pertanyaan, atau mungkin ingin bergabung dalam pengembangan. Sebagian besar pembahasan berlangsung pada daftar pincang-devel. Jika Anda menyukai IRC, saya berada di #limp di irc.freenode.net sebagai 'tic'.

Semoga berhasil!

Mikael Jansson
sumber
3
Apa status pekerjaan ini? Apakah Anda masih tertarik untuk mengerjakannya?
Erik Garrison
4
Saya bingung. "Jawaban" sepertinya merupakan saran dari beberapa pilihan, seperti menggunakan Limp, tetapi tidak menjelaskan sama sekali bagaimana cara melakukannya. Saya pikir pertanyaannya adalah, bagaimana cara menggunakan Vim dengan SBCL / apapun. Ini tidak benar-benar menjawab pertanyaan, jadi saya agak bingung dengan semua suara positif. Maukah Anda menjelaskan sedikit detail tentang cara menyiapkan lingkungan ini dan memulai?
jpswain
Tampaknya Limp tidak lagi dipertahankan: situs tidak
aktif
Seperti dicatat oleh orang lain, sebagian besar link di atas (dan di halaman yang lemas di vim.org) sudah lama rusak. Namun, Anda dapat menemukan hampir semuanya (file .vim dan dokumentasi terkait) di github.com/mikaelj/limp
George Hawkins
28

Anda mungkin memberi sedikit istirahat.

osdf
sumber
+1 Baru memulai dengan slimv sehingga hampir tidak ada pengetahuan tentangnya tetapi tampaknya berfungsi dengan baik di luar kotak sebagai alternatif nyata untuk slime untuk emacs. Juga memiliki rilis terbaru (v0.9.2 07-nov-2011) sementara lemas tidak memiliki pembaruan sejak 2008.
jmsu
2
Telah menggunakan slimv untuk sementara waktu; itu luar biasa. Tidak ada hal lain yang sebanding di luar angkasa.
tempire
18

Berikut diagram keren dari Xach yang merangkum situasi saat ini.

diagram yang menjelaskan bahwa hampir tidak ada pengguna VIM yang juga pemrogram Lisp dan juga dapat meretasnya untuk menjadikannya IDE Lisp yang bagus ... teks alt yang buruk :)

Luís Oliveira
sumber
61
Itu konyol. Anda tidak perlu C untuk menyesuaikan Vim. Vim dapat dibuat skrip di luar kotak dalam bahasanya sendiri, dan sebagian besar build mendukung skrip Ruby dan Python juga.
Sam Stokes
6
Jadi, pengguna VIM yang ingin menggunakan VIM untuk Common Lisp adalah inti dari semua pengguna VIM ?? Mungkin aku melewatkan sesuatu di sini ...
Will Hartung
@ Luis: Sebenarnya, fakta bahwa titik biru ada di tengah membuat titik hijau tidak mungkin tidak berpotongan dengannya. Saya akan mengatakan bahwa penulis diagram kehilangan cara kerja geometri.
Intuisi
9
Hijau dan biru seharusnya berpotongan.
Luís Oliveira
7

SLIME untuk EMACS adalah alat yang luar biasa untuk pemrograman LISP. Bagian terbaiknya adalah mengirimkan kode yang ditulis di editor Anda langsung ke sesi LISP langsung. Anda bisa mendapatkan perilaku serupa dari Vim menggunakan tip di sini:

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

Saya menyesuaikan skrip saya sendiri sehingga saya dapat mengirim ke sesi SBCL atau Clojure . Itu membuat Anda jauh lebih produktif dan memanfaatkan REPL.

": set cadel" memulai mode indentasi cadel untuk Vim. Tapi itu tidak akan berhasil dengan beberapa dialek seperti Clojure. Untuk Clojure, gunakan VimClojure .

Beberapa orang juga menyukai LIMP .

Brian
sumber
7

Di sini kita 9 tahun kemudian, dan sekarang kita memiliki Vim 8 dan Neovim, keduanya menyediakan kemampuan untuk berinteraksi dengan plugin secara asynchronous.

vlime adalah plugin kaya fitur yang luar biasa yang memanfaatkan antarmuka async baru untuk menyediakan lingkungan dev seperti SLIME untuk Common Lisp.

Dave Yarwood
sumber
6
  • Pengaya Vim: Tanda kurung Pelangi, sintaks Lisp
  • Pengaya SBCL: rlwrap, sb-aclrepl
  • Alur Kerja: Ion3 (atau WM ubin lainnya) dengan beberapa jendela terminal.

    • Edit Lisp di Vim
    • Beralih ke jendela Lisp (menggunakan keyboard tentunya)
    • Gunakan Cr untuk memanggil kembali baris untuk memuat ulang sistem ASDF yang dimaksud sehingga perubahan Anda menjadi aktif.
    • Gunakan X Window copy / paste untuk potongan / perubahan kecil.
    • Gunakan DESCRIBE, TRACE dan APROPOS secara berat.
    • Ulang.
Leslie P. Polzer
sumber
5

: setel cadel

Vim memiliki mode untuk membantu Anda memasukkan kode Anda dengan standar Lisp.

Juga, saya memodifikasi lispwords untuk mengubah bagaimana vim mengindentasi kode saya.

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

greywh
sumber
1
membuat indentasi mudah. Menyediakan IDE yang baik jauh lebih penting. Sebenarnya VIM tidak akan melakukan itu (indentasi) sebaik Emacs / SLIME.
Luís Oliveira
3

Anda dapat mencoba Emacs dengan emulasi Vim, tidak sempurna, tetapi mungkin agak familier. Saya pikir Lisp bersinar jika Anda menggunakan sesuatu seperti Slime atau DrScheme melakukan pengembangan berulang, semua editor lain merasa salah.

pupeno
sumber
2

Tampaknya ada upaya untuk memiliki integrasi Lisp seperti SLIME di Vim, tetapi tidak ada yang benar-benar sejauh yang diperlukan untuk benar-benar berguna. Saya pikir integrasi ECL telah dilakukan, tetapi tidak dilakukan di hulu.

Anda harus menemukan semua link yang relevan dari halaman Cliki tentang Vim .

Tidak ada pria
sumber
1

Aku tahu kamu mengatakan untuk tidak menyuruhmu menggunakan Emacs.

Gunakan Emacs.

Serius, lendir setup untuk Emacs cukup banyak yang platform pengembangan standar untuk Lisp, dan untuk alasan yang sangat baik.

Kirk Strauser
sumber
5
Saya masih mendukung jawaban ini, meskipun orang-orang masih memilihnya pada April 2011. Saya suka Vim dan menggunakannya setiap hari, tetapi tidak ada yang seperti pemrograman Lisp di lingkungan yang ditulis dalam Lisp. "Saya berharap saya bisa membuat editor saya bereaksi terhadap apa yang terjadi di server Lisp saya. Oh, tunggu! Saya bisa!" adalah perasaan yang luar biasa. Sekali lagi: Saya suka Vim, tetapi pendapat saya adalah bahwa Emacs adalah editor yang jauh lebih baik untuk bekerja dengan Lisp .
Kirk Strauser
Tindak lanjut: 6 tahun kemudian dan kalian masih memberikan suara untuk jawaban yang hampir berumur satu dekade ini? OK, kami mengerti, kami mengerti! 😀 Saya masih belum mengubahnya.
Kirk Strauser