2

この最小限の初期化ファイルを使用すると、次のようになります。

(setq package-load-list '((slime t)))
(setq inferior-lisp-program "clisp")
(package-initialize)
(setq package-enable-at-startup nil)
(require 'slime)
(slime-setup)
(slime)
(find-file "~/t/del.lisp")

ドキュメントの検索を除いて、slime-eval-defun や slime-complete-symbol など、すべてが機能しているようです。Mx slime-describe-symbol RET print RET を実行すると、次のエラーが発生します。

CLHS-ROOT: variable *CLHS-ROOT-DEFAULT* has no value

機能させるには、init ファイルに何を追加する必要がありますか?

また、hyperspec tar ファイルをダウンロードしてディレクトリに展開しようとしました。このコードは次のとおりです。

(setq package-load-list '((slime t)))
(setq inferior-lisp-program "clisp"
      common-lisp-hyperspec-root "c:/run/HyperSpec/"
      common-lisp-hyperspec-symbol-table "c:/run/HyperSpec/Data/Map_Sym.txt")
(package-initialize)
(setq package-enable-at-startup nil)
(require 'slime)
(slime-setup)
(slime)
(find-file "~/t/del.lisp")

それもうまくいきません。SLIME を使用するのはこれが初めてなので、バグがその init ファイルにあるのか、それとも私が使用している SLIME バージョンにあるのかはわかりません。

バージョン:

  • MS ウィンドウズ 7
  • Emacs バージョン 24.3.1 (おそらく最新の安定版)
  • SLIME バージョン 20130626.1151 (MELPA からの最新) (Marmalade の 1 つは、nil をコンパイルできないと言っています。それが何を意味するのかわからないので、代わりに MELPA の 1 つを使用しています)
  • GNU CLISP 2.49 (最新の安定版)

アップデート

C-c C-d f RET print RET正常に動作します。slime-describe-functionこれは文書化されておらず、SLIME メニューにリストされていない にバインドされています。また、ブラウザーで (関数だけでなく) 変数のドキュメントを開くことができるslime-documentation-lookupwhich がバインドされているものもあり、それも機能します。C-c C-d C-d`slime-describe-symbol だけが機能しないようです。

4

2 に答える 2

9

私は Windows でこれを行ったことはありませんが、もし私があなただったら、Quicklisp でこれを実行してみて(ql:quickload "clhs")、印刷された指示に従ってください。

また、SLIME を Quicklisp から 経由(ql:quickload "quicklisp-slime-helper")で入手したいと思いますが、スライムが正常に動作する場合は、実際には必要ありません。

于 2013-07-08T20:33:04.290 に答える
0

SLIME が emacs パッケージ アーカイブ (MELPA が望ましい) からインストールされている (そして GNU CLISP がインストールされている) と仮定すると、以下はHow to install Common Lisp and SLIME on MS Windowsの関連部分の組み合わせです:

既に持っている SLIME カスタマイズ コードをコメント アウトした後、ゼロから始めると仮定すると、次のコードを init ファイルに追加することから始めますpackage-initialize

(setq inferior-lisp-program "clisp")
(setq slime-auto-connect 'ask)

(defun my-slime-setup ()
  (require 'slime)
  (slime-setup))
(defvar my--slime-setup-done nil)
(defun my-slime-setup-once ()
  (unless my--slime-setup-done
    (my-slime-setup)
    (setq my--slime-setup-done t)))
(defadvice lisp-mode (before my-slime-setup-once activate)
  (my-slime-setup-once))

my-slime-setup を定義し、その日に SLIME を使用している場合に関数が 1 回だけ実行されるようにします。my-slime-setup は、独自の SLIME カスタマイズ コードを追加できるコンテナーでもあります。

ダウンロードしたドキュメントを SLIME に接続するには、ダウンロードしたアーカイブを解凍すると、 という名前のフォルダーが作成さHyperspecれます。次に、そのフォルダーを Emacs の bin ディレクトリ、またはその親ディレクトリ、またはその親の親ディレクトリに移動します。次のコードを Emacs に配置します。初期化ファイル。

(defun my-hyperspec-setup ()
  (let ((dir (locate-dominating-file invocation-directory "HyperSpec/")))
    (if dir
        (progn
          (setq common-lisp-hyperspec-root (expand-file-name "HyperSpec/" dir)))
      (warn "No HyperSpec directory found"))))

次のように追加my-hyperspec-setupmy-slime-setupます。

(defun my-slime-setup ()
  (my-hyperspec-setup)
  (require 'slime)
  (slime-setup))

そしてEmacsを再起動します。

Lisp バッファで実行M-x slime-describe-symbol RET print RETすると、PRINT の記述が別のバッファに表示されるはずです。

私は自分の記事から情報を得ており、約 8 か月後に自分の質問に答えていることを認めなければなりません。答えは、MELPA の最新の SLIME とバニラ GNU Emacs でテストされています。

于 2014-04-11T15:10:16.290 に答える