Lisp geliştirme için Vim kullanma


88

Lisp'i bir süredir açıp kapatıyorum ama Lisp'te bazı "gerçek" işler yapma konusunda daha ciddileşmeye başlıyorum. Ben büyük bir Vim hayranıyım ve Lisp geliştirme için editörüm olarak Vim'i kullanarak nasıl en üretken olabileceğimi merak ediyordum. Eklentiler, iş akışı önerileri vb. Hoş geldiniz.

Lütfen "emacs kullan" deme, çünkü zaten Vim'i geliştirdim ve bir editör olarak bundan gerçekten keyif alıyorum.


Hangi Lisp, Common Lisp?
pupeno

Bu durumda, evet, Common Lisp. Scheme'de de biraz oyun oynuyorum, ama bu daha çok gündelik keşifsel programlama için.
Drew Olson

Lütfen , Vim'de Common Lisp için SLIME benzeri etkileşimli programlama ortamı sağlayan iki popüler eklenti olan Slimv veya Vlime ile Vim'de Common Lisp programlamasının ayrıntılı bir hesabını sunduğum Slimv veya Vlime ile Vim'deki Lisp'e bakın.
Susam Pal

Yanıtlar:


51

Limp, Vim için tam özellikli bir Common Lisp IDE olmayı hedefliyor. Varsayılan olarak SBCL'dir, ancak /usr/local/limp/latest/bin/lisp.sh dosyasında en sevdiğiniz lisp için "sbcl" değiştirilerek diğer birçok uygulamayı destekleyecek şekilde değiştirilebilir.

Bugünlerde Lisp tartışılırken, GNU Clisp, SBCL, CMUCL, AllegroCL ve pek çok uygulama ile ANSI X3J13 ( iyi bir ders kitabı için HyperSpec ve Practical Common Lisp'e bakın) tarafından standartlaştırılan dilin Common Lisp olduğu varsayılır. diğerleri.

Limp'e geri dönün. Daha hafif olan veya başka şeyler yapmaya çalışan başka çözümler de var, ancak size parantez eşleştirme, vurgulama, dokümantasyon arama gibi şeyler sunan, yani onu olabildiğince anahtar teslim bir çözüm haline getiren bir ortam sağlamaya inanıyorum. .

In Limp depo sen SlimVim projesi, yani ECL (Katıştırılabilir Common Lisp) arayüzünün, önceki çalışmaların daha sonraki sürümleri (7.1) ile birleşti bulacaksınız; Simon ayrıca, henüz birleştirilmek üzere 7.2 sürümüne yamalar yaptı. ECL arayüzü if_ecl.txt dosyasında belgelenmiştir .

Kısa vadeli çalışma, 7.2 ile birleştirme yapmak ve resmi Vim ağacında birleştirmek için vim_dev'e bir yama sunmaktır.

Bu da bizi uzun vadeli planlara götürür: Lisp'in doğrudan Vim'de olması, SWANK ön ucu üzerinde çalışmaya başlamayı kolaylaştıracaktır (Lisp'inizde çalışan SLIME parçası, slime.el içinde çalışan kısımdır. düzenleyici - ön uç).

Ve arada bir yerde, tüm Limp'in ECL arayüzü kullanılarak Common Lisp'de yeniden yazılması muhtemeldir, bu da Limp'in bakımını kolaylaştırır (VimScript benim favorim değildir) ve kullanıcıların özelleştirmesi daha kolay olur.

Resmi Limp sitesi zaman zaman iner, fakat sivri out gibi, Vim.org de indirme daima eser ve destek grupları gerektiğini gevşek-devel ve gevşek kullanıcıya Google Grupları barındırılmaktadır. Bir sorunun yanıtlanmasına ihtiyacınız olduğunu düşünüyorsanız veya belki de geliştirmeye katılmak istiyorsanız katılmaktan çekinmeyin. Tartışmanın çoğu gevşek-devel listesinde yer alıyor. IRC ile ilgileniyorsanız, irc.freenode.net'te 'tic' olarak #limp içindeyim.

İyi şanslar!


3
Bu işin durumu nedir? Hala onunla çalışmakla ilgileniyor musunuz?
Erik Garrison

4
Kafam karıştı. "Cevap", Limp'i kullanmak gibi birkaç seçeneğin bir önerisi gibi görünüyor, ancak bunu nasıl gerçekleştireceğinizi hiç açıklamıyor. Sorunun şu olduğunu düşündüm, Vim'i SBCL ile nasıl kullanırım? Bu soruya gerçekten cevap vermiyor, bu yüzden tüm olumlu oylar beni biraz karıştırıyor. Bu ortamı gerçekten nasıl kurup başlayacağınıza dair biraz ayrıntıya girebilir misiniz?
jpswain

Görünüşe göre Limp artık
korunmuyor

Başkalarının da belirttiği gibi yukarıdaki bağlantıların çoğu (ve vim.org'daki gevşek sayfadaki) uzun süredir bozuk. Ancak neredeyse her şeyi ( .vim
George Hawkins

28

Sen verebilir slimv bir mola.


+1 Slimv ile başlayarak, bu konuda neredeyse hiç bilgimiz yok, ancak emacs slime'a gerçek bir alternatif olarak kutudan çıktığı anda mükemmel bir şekilde çalışıyor gibi görünüyor. Ayrıca son sürümleri (v0.9.2 07-nov-2011) varken,
limp'in

2
Slimv'i bir süredir kullanıyorum; Bu mükemmel. Uzayda başka hiçbir şey karşılaştırılamaz.
tempire

18

İşte Xach'ın mevcut durumu özetleyen harika bir diyagramı .

Aynı zamanda Lisp programcısı olan ve onu iyi bir Lisp IDE yapmak için hackleyebilen neredeyse hiç VIM kullanıcısı olmadığını açıklayan diyagram ... berbat alternatif metin :)


61
Bu aptalca. Vim'i özelleştirmek için C'ye ihtiyacınız yok. Vim, kutudan çıktığı gibi kendi dilinde yazılabilir ve çoğu yapı, Ruby ve Python komut dosyalarını da destekler.
Sam Stokes

6
Öyleyse, Common Lisp için VIM kullanmak isteyen VIM kullanıcıları, tüm VIM kullanıcılarının çekirdeğidir ?? Belki burada bir şey özlüyorum ...
Will Hartung

@Luis: Aslında mavi noktanın merkezde olması, yeşil olanın onunla kesişmemesini imkansız kılıyor. Diyagramın yazarının geometrinin çalışma şeklini kaçırdığını söyleyebilirim.
intuited

9
Yeşil ve mavinin kesişmesi gerekiyor.
Luís Oliveira


7

SLIME for EMACS, LISP programlaması için harika bir araçtır. En iyi bölüm, editörünüzde yazılan kodu doğrudan canlı bir LISP oturumuna göndermektir. Buradaki ipuçlarını kullanarak Vim'den benzer davranışlar elde edebilirsiniz:

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

Kendi betiğimi bir SBCL veya Clojure oturumuna gönderebilmek için ayarladım . Sizi çok daha üretken kılar ve REPL'den yararlanır.

": lisp ayarla", Vim için lisp girinti modunu başlatır. Ama Clojure gibi bazı lehçelerde işe yaramayacak. Clojure için VimClojure kullanın .

Bazı insanlar da LIMP'i sever .


7

İşte 9 yıl sonra buradayız ve şimdi Vim 8 ve Neovim var, her ikisi de eklentilerle eşzamansız olarak etkileşime girme yeteneği sağlıyor.

vlime , Common Lisp için SLIME benzeri bir geliştirme ortamı sağlamak için yeni zaman uyumsuz arayüzden yararlanan mükemmel, zengin özelliklere sahip bir eklentidir.


6
  • Vim eklentileri: Rainbow Parentheses, Lisp sözdizimi
  • SBCL eklentileri: rlwrap, sb-aclrepl
  • İş akışı: Birden çok terminal pencereli Ion3 (veya başka bir döşemeli WM).

    • Vim'de Lisp'i Düzenle
    • Lisp penceresine geç (tabii ki klavyeyi kullanarak)
    • Değişikliklerinizin etkin hale gelmesi için söz konusu ASDF sistemini yeniden yüklemek üzere satırı geri çağırmak için Cr kullanın.
    • Küçük parçacıklar / değişiklikler için X Window kopyala / yapıştır özelliğini kullanın.
    • DESCRIBE, TRACE ve APROPOS'u yoğun bir şekilde kullanın.
    • Tekrar et.

5

: lisp ayarla

Vim, kodunuzu Lisp standartlarına göre girmenize yardımcı olacak bir moda sahiptir.

Ayrıca, vim'in kodumu nasıl girintilediğini değiştirmek için sözcükleri değiştiriyorum.

: setl lw- = if (~ / .vim / ftplugin / lisp.vim içinde)


1
girinti yapmak kolaydır. İyi bir IDE sağlamak çok daha önemlidir. Aslında VIM, Emacs / SLIME gibi bunu (girinti) bile yapmaz.
Luís Oliveira

3

Emacs ile Vim öykünmesini deneyebilirsiniz, mükemmel değildir, ancak biraz tanıdık gelebilir. Bence Lisp, Slime veya DrScheme gibi yinelemeli geliştirme yaparken parlıyor, diğer tüm editörler yanlış hissediyor.



1

Emacs kullan demeyin dediğini biliyorum.

Emacs kullanın.

Ciddi, SLİME Emacs için kurulum oldukça fazla olduğunu Lisp için standart geliştirme platformu ve çok iyi bir nedenle.


5
İnsanlar Nisan 2011 itibariyle hala oy vermelerine rağmen hala bu cevabın arkasındayım. Vim'i seviyorum ve her gün kullanıyorum ama Lisp ile yazılmış bir ortamda Lisp'i programlamak gibisi yok. "Keşke Editörümün Lisp sunucumda olanlara tepki vermesini sağlayabilseydim. Oh, bekle! Yapabilirim!" harika bir duygu. Tekrar söylüyorum: Vim'i seviyorum ama benim fikrim Emacs'ın Lisp ile çalışmak için çok daha iyi bir editör olduğu yönünde .
Kirk Strauser

Takip: 6 yıl sonra ve siz hala bu neredeyse on yıllık cevaba oy veriyorsunuz? Tamam, anladık, anladık! 😀 Hala değiştirmiyorum.
Kirk Strauser
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.