インターネットのガイドによると、Cc Cd h と入力して、Emacs の「format」のような記号を HyperSpec で検索できます。誰かがそれに対処できますか?前もって感謝します!
2 に答える
実際にスライム REPL モードを使用していますか? 設定なしで Slime を起動すると、REPL モードにならず、*inferior-lisp*
バッファに座っていることがあります。
まず、バッファのタイトルが何であるかを確認します。の場合*inferior-lisp*
、それは正しいものではありません。読む必要があります*slime-repl sbcl*
(sbcl は、使用している CL 実装を指します)。
この場合、Emacs init ファイルで slime-fancy を有効にする必要があります。これは私が持っているものです:
(defun init-slime-configuration ()
(slime-setup '(slime-fancy slime-fuzzy))
(setq slime-load-failed-fasl 'never)
(define-key slime-repl-mode-map (kbd "C-<tab>") 'slime-fuzzy-complete-symbol)
(define-key slime-mode-map (kbd "C-<tab>") 'slime-fuzzy-complete-symbol))
(add-hook 'slime-load-hook 'init-slime-configuration)
これにより、あいまい展開に C-TAB を使用することもできます。
Quicklisp (バージョン 2.9) を使用してインストールされた SLIME のバージョンから MELPA からインストールされたバージョン (バージョン 20141010.1357、ac-slime の依存関係) に切り替えた後、私はまさにこの問題に遭遇しました。
Quicklisp から SLIME を使用すると、次の設定を使用して、HyperSpec のローカル コピーで問題なく動作しました。
(require 'slime-autoloads)
(add-to-list 'slime-contribs 'slime-fancy)
(setq slime-lisp-implementations
'((ccl ("ccl"))
(clisp ("clisp"))
(cmucl ("cmucl"))
(ecl ("ecl"))
(sbcl ("sbcl"))))
(setq slime-default-lisp 'sbcl)
(setq common-lisp-hyperspec-root "file:/usr/share/doc/HyperSpec/")
(setq common-lisp-hyperspec-symbol-table "file:/usr/share/doc/HyperSpec/Data/Map_Sym.txt")
次に、Quicklisp を完全に削除して再インストールし (SLIME を再インストールせずに!)、Emacs パッケージ マネージャーを使用して MELPA から ac-slime をインストールしました。
たまたま、HyperSpec でドキュメントを検索しようとしたときに、Emacs が "Map_Sym.txt" という名前の空のファイルを含む隠しバッファーを開いたことに気付きました。
を使用してこのファイルのフルパス名をC-h v buffer-file-name [RET]
調べると、「/home/miki/file:/usr/share/doc/HyperSpec/Data/Map_Sym.txt」に設定されていることがわかりました。
実験として、設定の最後の 2 行から「file:/」を削除して、次のようにしました。
(setq common-lisp-hyperspec-root "/usr/share/doc/HyperSpec/")
(setq common-lisp-hyperspec-symbol-table "/usr/share/doc/HyperSpec/Data/Map_Sym.txt")
問題は解決したようです。これが機能する理由はわかりません (ドキュメントとは異なります)。バグまたは文書化されていない変更でしょうか?