Lisp開発のためのVimの使用


87

私はしばらくの間Lispをオン/オフしてきましたが、Lispで「実際の」作業を行うことに真剣に取り組んでいます。私はVimの大ファンであり、Lisp開発用のエディターとしてVimを使用することで、どのようにして最も生産的になることができるのかと思っていました。プラグイン、ワークフローの提案などはすべて大歓迎です。

私はすでにVimに着手していて、エディターとして本当に楽しんでいるので、「use emacs」と言わないでください。


どのLisp、Common Lisp?
プペノ2008

この場合、はい、Common Lisp。私もSchemeでいじくり回しますが、それはカジュアルな探索的プログラミングのためのものです。
Drew Olson、

回答:


51

Limpは、Vim用のフル機能のCommon Lisp IDEになることを目指しています。デフォルトはSBCLですが、ファイル/usr/local/limp/latest/bin/lisp.shで、お気に入りのlispの「sbcl」を置き換えることにより、他のほとんどの実装をサポートするように変更できます。

最近のLispについて議論するとき、それは一般にCommon Lisp、つまりANSI X3J13によって標準化された言語(優れた教科書についてはHyperSpecPractical Common Lispを参照)であり、GNU Clisp、SBCL、CMUCL、AllegroCLなどの多くの実装を伴うその他。

リンプに戻る。より軽量な、または他のことを実行しようとする他のソリューションがありますが、ブラケットマッチング、ハイライト、ドキュメント検索などの機能を提供する環境、つまり、可能な限りターンキーソリューションにすることを信じています。

ではリンプ・リポジトリあなたはSlimVimプロジェクトの前の仕事、つまりECL(組み込みのCommon Lisp)インタフェースのいくつかを見つけることができます、それ以降のリリース(7.1)と合併。Simonは、まだマージされていない7.2へのパッチも提供しています。ECLインターフェースはif_ecl.txtに文書化されています

短期的な作業は、7.2とのマージを実行し、vim_devにパッチを送信して、公式のVimツリーにマージすることです。

Lispを直接Vimで使用すると、SWANKフロントエンド(Lispで実行されるSLIMEの一部であり、slime.elがエディター-フロントエンド)。

そして、その中間のどこかで、LimpのすべてがECLインターフェースを使用してCommon Lispで書き直され、Limpの保守が容易になり(VimScriptは私のお気に入りではありません)、ユーザーがカスタマイズしやすくなります。

公式リンプサイトは随時ダウンしたが、先の尖ったアウトとして、Vim.orgのダウンロードは常に仕事、および支援団体すべきリンプのdevelリンプユーザーは Googleグループでホストされています。質問への回答が必要な場合や、開発に参加したい場合は、遠慮なく参加してください。議論のほとんどは、リンプ開発リストで行われます。IRCを使用している場合は、irc.freenode.netで#ticとして#limpを使用しています。

幸運を!


3
この作業のステータスは何ですか?あなたはまだそれで仕事をすることに興味がありますか?
エリックギャリソン

4
よくわかりません。「答え」は、Limpの使用など、いくつかのオプションの提案のように見えますが、これを達成する方法についてはまったく説明していません。問題は、VimをSBCLでどのように使用するかです。これは実際には質問に答えないので、私はすべての賛成票に少し混乱しています。この環境を実際にセットアップして開始する方法について少し詳しく説明してもらえますか?
jpswain

Limpはもはやメンテナンスされていないようです。サイトはダウンしていて、最後の変更は2008
でした。– kynan 2014年

他の人が指摘したように、上記のリンクのほとんど(およびvim.orgのリンプページ)は長い間壊れています。ただし、github.com / mikaelj / limpで
George Hawkins

28

あなたはslimvに休憩を与えるかもしれません。


+1 slimvから始めたので、ほとんど知識がありませんが、emacsのslimeの実際の代替として、箱から出して完全に問題なく動作するようです。また、最近のリリース(v0.9.2 07-nov-2011)がありますが、
linpに

2
しばらくslimvを使っています。それは素晴らしいです。スペースで他に比較するものはありません。
テンパイア

18

これは、現在の状況を要約したXachによるクールな図です。

Lispプログラマーでもあり、それをハックして優れたLisp IDEにすることができるVIMユーザーがほとんどいないことを説明する図...粗悪な代替テキスト:)


61
それはばかげています。VimをカスタマイズするのにCは必要ありません。Vimはそのままで独自の言語でスクリプト可能であり、ほとんどのビルドはRubyおよびPythonスクリプトもサポートしています。
Sam Stokes、

6
つまり、Common LispにVIMを使用したいVIMユーザーは、すべてのVIMユーザーの中核です?? 多分私はここで何かが足りない...
ウィル・ハートン

@ルイス:実は、青い点が中央にあるということは、緑の点が交差しないようにすることを不可能にします。ダイアグラムの作成者には、ジオメトリのしくみが欠けていると思います。
2010年

9
緑と青は交差することになっています。
ルイス・オリヴェイラ


7

SLIME for EMACSは、LISPプログラミングのための素晴らしいツールです。最良の部分は、エディターで作成されたコードをライブLISPセッションに直接送信することです。以下のヒントを使用して、Vimから同様の動作を得ることができます。

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

自分のスクリプトを調整して、SBCLまたはClojureセッションのいずれかに送信できるようにしました。これにより、生産性が大幅に向上し、REPLを利用できます。

":set lisp"は、Vimのlispインデントモードを開始します。ただし、Clojureなどの一部の方言では機能しません。Clojureの場合は、VimClojureを使用します

LIMPも好きな人もいます。


7

ここに私たちは9年後、Vim 8とNeovimがあり、どちらも非同期でプラグインと対話する機能を提供します。

vlimeは、新しい非同期インターフェースを活用してCommon LispにSLIMEのような開発環境を提供する、優れた機能豊富なプラグインです。


6
  • Vimアドオン:Rainbow Parentheses、Lisp構文
  • SBCLアドオン:rlwrap、sb-aclrepl
  • ワークフロー:複数のターミナルウィンドウを備えたIon3(または他のタイルWM)。

    • VimでLispを編集する
    • Lispウィンドウに切り替えます(もちろんキーボードを使用します)
    • Crを使用して、問題のASDFシステムをリロードする行を呼び出し、変更をアクティブにします。
    • X Windowのコピー/貼り付けを使用して、小さなスニペット/変更を行います。
    • DESCRIBE、TRACE、APROPOSを多用します。
    • 繰り返す。

5

:lispの設定

Vimには、Lisp標準でコードをインデントするのに役立つモードがあります。

また、lispwordsを変更して、vimがコードをインデントする方法を変更します。

:setl lw- = if(〜/ .vim / ftplugin / lisp.vim内)


1
インデントは簡単です。優れたIDEを提供することは、はるかに重要です。実際、VIMはEmacs / SLIMEのように(インデント)も実行しません。
ルイスオリヴェイラ

3

EmacsでVimエミュレーションを試すことはできますが、完璧ではありませんが、多少慣れているかもしれません。SlimeやDrSchemeのようなものを使用して反復的な開発を行っている場合、Lispは優れていると思います。他のすべてのエディターは間違っていると感じます。


2

Emacsを使うように言わないように言ったのは知っています。

Emacsを使用します。

深刻な、SLIMEの EmacsのためのセットアップはかなりあるLispのための標準開発プラットフォーム、および非常に良い理由があります。


5
2011年4月の時点でまだ投票が行われているにもかかわらず、私はまだこの回答を支持しています。「私のLispサーバーで何が起こっているかを編集者に反応させたいと思います。いい感じです。繰り返しますが、私はVimが好きですが、私の意見では、EmacsはLispを操作するためのはるかに優れたエディタであるということです。
カークストラウザー2011

フォローアップ:6年後、y'allはこのほぼ10年前の答えにまだ投票していますか?わかりました、わかりました。stillまだ変更していません。
Kirk Strauser 2017年

2

LispをVimにSLIMEのように統合しようとする試みがあったようですが、本当に役立つために必要なところまで進んだものはありません。ECLの統合は行われたと思いますが、上流ではコミットされていません。

Vimに関するClikiのページからすべての関連リンクを見つける必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.