web-dev-qa-db-ja.com

LISP開発にVimを使用する

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

私はすでにVimを使い始めており、編集者として本当に楽しんでいるので、「emacsを使用する」と言わないでください。

86
Drew Olson

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

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

リンプに戻る。より軽量な、または他のことをしようとする他のソリューションもありますが、ブラケットマッチング、強調表示、ドキュメントルックアップなど、可能な限りターンキーソリューションにするような環境を提供することを信じています。

Limpリポジトリ には、SlimVimプロジェクトの以前の作業の一部、つまりECL(Embeddable Common LISP)インターフェースがあり、以降のリリース(7.1)とマージされています。サイモンは、まだ7.2のパッチを利用可能にしており、まだマージされていません。 ECLインターフェースは if_ecl.txt に文書化されています。

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

LISPをVimに直接持つことで、SWANKフロントエンド(LISPで実行されるSLIMEの部分、slime.elが実行される部分である)で作業を開始するのが便利になります。エディター-フロントエンド)。

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

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

幸運を!

51
Mikael Jansson

slimv にブレークを与えることができます。

29
osdf

Xach によるクールな図は、現在の状況を要約しています。

diagram explaining that there are nearly no VIM users that are also LISP programmers and can also hack it to make it a good LISP IDE... lousy alt text :)

17
Luís Oliveira

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 [〜#〜] も好きな人がいます。

8
Brian

Limpプラグインを確認してください。

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

7
Ben Hoffstein

:set LISP

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

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

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

5
graywh
  • Vimアドオン:Rainbow Parentheses、LISP構文
  • SBCLアドオン:rlwrap、sb-aclrepl
  • ワークフロー:複数のターミナルウィンドウがあるIon3(または他のタイルWM)。

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

VimエミュレーションでEmacsを試してみることができますが、完璧ではありませんが、多少馴染みがあるかもしれません。 SlimeやDrSchemeのようなものを繰り返し開発している場合、他のすべての編集者は間違っていると感じると、LISPが輝いていると思います。

3
pupeno

9年後の今、Vim 8とNeovimがあり、どちらも非同期でプラグインとやり取りする機能を提供しています。

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

3
Dave Yarwood

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

Emacsを使用します。

深刻なのは、Emacsの [〜#〜] slime [〜#〜] セットアップはかなりthe標準開発プラットフォームLISP、そして非常に正当な理由。

2
Kirk Strauser

VimでSLIMEのようなLISPの統合を試みたようですが、実際に役立つように必要な範囲で実際に進んだものはありません。 ECLの統合は行われたと思いますが、上流ではコミットされていません。

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

2
Nowhere man