Hatena::Groupcadr

slimeの初期化ファイルを晒してみるスレ RSSフィード
 

リスト表示 | ツリー表示
ツリー全部最新の50件

1g000001g000001   slimeの初期化ファイルを晒してみるスレ

いろいろあるかと思いますが、とりあえず自分はこんな感じです。

結構ぐちゃぐちゃです。何か上手く動いてない気もします。

Emacsの外でSwankを起動して接続を待ち、slime-connectで接続するという使い方をしています。

Swankは処理系ごとに起動するポートを変えています。

そういうわけでその為の専用関数も定義してみています。

;; init-slime.el
(eval-when-compile 
  (require 'cl))

(defun slime-sbcl ()
  (interactive)
  (slime-connect "localhost" 4005))

(defun slime-clisp ()
  (interactive)
  (slime-connect "localhost" 4006))

(defun slime-cmu ()
  (interactive)
  (slime-connect "localhost" 4007))

(defun slime-ecl ()
  (interactive)
  (slime-connect "localhost" 4008))

(defun slime-allegro ()
  (interactive)
  (slime-connect "localhost" 4009))

(defun slime-starlisp-allegro ()
  (interactive)
  (slime-connect "localhost" 4010))

(defun slime-lw ()
  (interactive)
  (slime-connect "localhost" 4011))


(cond ((memq system-type '(windows-nt))
       (add-to-list 'load-path "c:/slime"))
      ('T
;       (add-to-list 'load-path "~/.emacs.d/CVS-Source/slime")
       (add-to-list 'load-path "/share/sys/cl/src/slime")
       (add-to-list 'load-path "/share/sys/cl/src/slime/contrib")))

(require 'slime)

(setq slime-lisp-implementations
      (case system-type
	(windows-nt `((sbcl ("sbcl") :coding-system utf-8-unix)))
	(otherwise  `((sbcl ("/usr/local/bin/sbcl") :coding-system utf-8-unix)
		      (allegro ("~/cl/acl/acl81_express/alisp"))
		      (clisp ("/usr/local/bin/clisp"))
;		      (starlisp ("~/bin/slime-starlisp"))
		      (ecl ("/usr/local/bin/ecl"))
		      (cmucl ("cmucl") :coding-system utf-8-unix)))))

(setq slime-net-coding-system 'utf-8-unix)
(slime-setup)

(add-hook 'lisp-mode-hook 
	  (lambda () 
	    (slime-mode t)
	    (local-set-key [(control ?c) ?\;]        'slime-insert-balanced-comments)
	    (local-set-key [(control ?c) (meta ?\;)] 'slime-remove-balanced-comments)
	    
	    (show-paren-mode t)))

(eval-after-load "slime"
  '(progn
     (slime-setup '(slime-fancy
		    slime-asdf
					;slime-banner 
					;slime-highlight-edits
		    ))
     (setq slime-complete-symbol*-fancy t
           browse-url-firefox-program (if (memq system-type '(darwin)) "open" "clhs")
	   slime-complete-symbol-function 'slime-fuzzy-complete-symbol
	   common-lisp-hyperspec-root "http://l:10081/HyperSpec/"
	   browse-url-browser-function 'browse-url-firefox)
     ))

(defun cl-indent (sym indent)
  (put sym 'common-lisp-indent-function
       (if (symbolp indent)
	   (get indent 'common-lisp-indent-function)
	 indent)))

;; (cl-indent 名前 手本)
(cl-indent 'iterate 'let)
(cl-indent 'collect 'progn)
(cl-indent 'mapping 'let)
(cl-indent 'mapping 'let)

(add-hook 'slime-mode-hook
	  (lambda ()
	    (setq lisp-indent-function 'common-lisp-indent-function)
	    (cl-indent 'iterate 'let)
	    (cl-indent 'collect 'progn)
	    (cl-indent 'mapping 'let)
	    (cl-indent 'mapping 'let)))
返信2007/11/30 19:03:39

2quekquek   こんな感じです。

比較的シンプルでしょうか? ~/.emacs の中にはいっています。

;;;;;SLIME
(setq common-lisp-hyperspec-root "file:/usr/share/doc/hyperspec/")
(add-path "~/letter/lisp/lib/slime")
(add-path "~/letter/lisp/lib/slime/contrib")
(setq slime-lisp-implementations
      `((sbcl ("sbcl") :coding-system utf-8-unix)
        (cmucl ("lisp"))))
(require 'slime-autoloads)
(add-hook 'lisp-mode-hook
          (lambda ()
            (cond ((not (featurep 'slime))
                   (require 'slime)
                   (normal-mode)))))
(setq slime-truncate-lines nil)
(setq slime-enable-evaluate-in-emacs t)
(add-hook 'slime-mode-hook
	  (lambda ()
            (slime-define-key "\C-m" 'newline-and-indent)
	    (slime-define-key "\C-i" 'slime-indent-and-complete-symbol)))
(add-to-list 'auto-mode-alist '("\\.asd$" . common-lisp-mode))
(eval-after-load "slime"
  '(progn
    (slime-setup '(slime-asdf slime-fancy slime-banner))
    (setq slime-complete-symbol*-fancy t)
    (setq slime-complete-symbol-function 'slime-fuzzy-complete-symbol)))
返信2008/01/02 18:45:47

3g000001g000001   2  Re:こんな感じです。

グループに参加して頂いてありがとうございます!

良かったら掲示板でもキーワードでもWikiでもお好きなように編集/作成して頂ければと思います。

ユーザ名とディレクトリの名前の組み合わせでどなたか分かりました(笑)

いつも楽しみにブログ拝見させて頂いています。

自分のslimeの設定はごちゃごちゃし過ぎなので、もっと綺麗に整頓すべきだと改めて思いました(^^;

返信2008/01/02 19:31:00

4quekquek   3  Re:こんな感じです。

ディレクトリの名前からばれてしまいましたか (^^;

こちらこそいつも楽しくブログを拝見させていただいています。

私の設定は Bill Clementson's Blog で見たのほぼそのままです。どこかで SLIME のおさらいをしたいなぁ、と思いつつずるずると…

それでは、よろしくお願いいたします。

返信2008/01/03 08:51:28

5ytakenakaytakenaka   1  Re:slimeの初期化ファイルを晒してみるスレ

うちの基本設定はこの位。emacs 23 でemacs-w3mが利用できないのでコメントアウトしています。w3mの設定もどこかからの拾い物です。:-)

emacs lispでもマクロが使えるんだなぁ。というのはマルコさんのslimeビデオで知りました。:-) マルコマクロを少し変えています。

;; slime configuration
(add-to-list 'load-path "/hogehoge/.slime")
(require 'slime)
(require 'hyperspec)

(setq common-lisp-hyperspec-root
    (concat "file://" (expand-file-name "/usr/local/share/doc/HyperSpec/"))
    common-lisp-hyperspec-symbol-table
    (expand-file-name "/usr/local/share/doc/HyperSpec/Data/Map_Sym.txt"))
(setq inferior-lisp-program "/usr/bin/sbcl")

(slime-setup)

;; slime w3m configuration 

;(defadvice hyperspec-lookup (around use-w3m-in-hyperspec activate)
;  "Always use w3m to lookup things in hyperspec"
;  (let ((browse-url-browser-function 'w3m-browse-url))
;    (message "foobar")
;    ad-do-it))

(defmacro defslime-exec (name lisp coding)
  `(defun ,name ()
     (interactive)
     (slime ,lisp ,coding)))

(defslime-exec ccl64 "/usr/local/bin/ccl64" 'utf-8-unix)
(defslime-exec cmucl "/usr/local/bin/lisp" 'iso-latin-1-unix)
(defslime-exec sbcl "/usr/bin/sbcl" 'utf-8-unix)
(defslime-exec sbcl-new "/usr/local/bin/sbcl" 'utf-8-unix)
返信2008/05/09 00:44:43