91

I've been using Lisp on and off for a while but I'm starting to get more serious about doing some "real" work in Lisp. I'm a huge Vim fan and was wondering how I can be most productive using Vim as my editor for Lisp development. Plugins, work flow suggestions, etc. are all welcome.

Please don't say "use emacs" as I've already ramped up on Vim and I'm really enjoying it as an editor.

4

11 に答える 11

51

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

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

リンプに戻ります。より軽量なソリューションや、他のことを試みるソリューションは他にもありますが、ブラケットの一致、強調表示、ドキュメントの検索などを提供する環境を提供すること、つまり、可能な限りターンキー ソリューションにすることが重要であると考えています。 .

Limp リポジトリには、SlimVim プロジェクトの以前の作業の一部、つまり ECL (Embeddable Common Lisp) インターフェイスが後のリリース (7.1) にマージされています。Simon は、まだマージされていない 7.2 へのパッチも提供しています。ECL インターフェースはif_ecl.txtに文書化されています。

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

これは長期的な計画につながります: Vim で直接 Lisp を使用すると、SWANK フロントエンド (Lisp で実行される SLIME の一部であり、slime.el が Lisp で実行される部分) で作業を開始するのが便利になります。エディター - フロントエンド)。

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

Limpの公式サイトは時々ダウンしますが、指摘されているように、Vim.org でのダウンロードは常に機能するはずであり、サポート グループのlimp -devellimp-userは Google グループでホストされています。質問への回答が必要な場合、または開発に参加したい場合は、遠慮なく参加してください。議論のほとんどは、limp-devel リストで行われます。あなたが IRC に興味があるなら、私は irc.freenode.net で 'tic' として #limp に参加しています。

幸運を!

于 2008-09-19T11:28:59.527 に答える
28

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

于 2010-01-12T12:00:31.633 に答える
19

これは、現在の状況をまとめたXachによるクールな図です。

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

于 2008-09-18T18:40:13.743 に答える
7

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

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

SBCLまたはClojureセッションのいずれかに送信できるように、独自のスクリプトを調整しました。それはあなたをはるかに生産的にし、REPLを利用します。

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

LIMPが好きな人もいます。

于 2008-09-18T18:09:47.233 に答える
7

Limp プラグインをチェックしてください。

http://www.vim.org/scripts/script.php?script_id=2219

于 2008-09-18T17:43:14.287 に答える
6
  • Vimアドオン:Rainbow括弧、Lisp構文
  • SBCLアドオン:rlwrap、sb-aclrepl
  • ワークフロー:複数のターミナルウィンドウを備えたIon3(またはその他のタイル型WM)。

    • VimでLispを編集する
    • Lispウィンドウに切り替えます(もちろんキーボードを使用します)
    • Crを使用して行を呼び出し、問題のASDFシステムをリロードして、変更がアクティブになるようにします。
    • 小さなスニペット/変更には、XWindowのコピー/貼り付けを使用します。
    • DESCRIBE、TRACE、APROPOSを多用します。
    • 繰り返す。
于 2009-02-17T10:31:48.300 に答える
5

:リスプを設定

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

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

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

于 2008-09-18T18:00:44.167 に答える
3

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

于 2008-09-18T17:45:43.843 に答える
2

LispをVimにSLIMEのように統合しようとする試みがあったようですが、本当に役立つために必要なところまで実際に進んだものはありません。ECLの統合は完了したと思いますが、アップストリームではコミットされていません。

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

于 2008-09-19T10:23:48.390 に答える
1

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

Emacs を使用します。

まじめな話、EmacsのSLIMEセットアップはほとんど Lisp標準開発プラットフォームであり、それには十分な理由があります。

于 2008-09-18T18:05:11.783 に答える