「環境設定例集」の編集履歴(バックアップ)一覧はこちら
「環境設定例集」(2008/02/09 (土) 23:40:37) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
SICPを読んでゆく上で必要なScheme実行環境についての設定例集です。
なんだか役に立ちそうな事柄を知っていたら誰でも書き込んでいってください。
*Scheme処理系(R5RS準拠)とそれぞれの設定
-[[Gauche>>http://practical-scheme.net/gauche/index-j.html]]
--Gaucheは.gauchercというファイルを起動時に読み込む。なのであらかじめ読み込んでおきたいファイルなどがある場合、そのファイルに書き込んでおくと何かと便利。by iwk
-[[Mit Scheme>>http://swiss.csail.mit.edu/projects/scheme/]]
-[[TUT Scheme>>http://www.yuasa.kuis.kyoto-u.ac.jp/~komiya/tus_intro.html]]
-[[Guile>>http://www.gnu.org/software/guile/guile.html]]
*Emacsの設定
-viper-mode
--SchemeはvimよりもEmacsを使うほうが何かと便利であるので普段Vimを使う人であってもEmacsを使う必要が出てくる。しかし、EmacsとVimはなにかと根本的に違うのでフラストレーションがたまりやすい。そのフラストレーションを少し解消するのがviper-mode。EmacsにViのモードのシステムを導入してくれます。レベルのお勧めは3。by iwk
設定例 [[参照>>http://ho-ki-boshi.blogspot.com/2007/11/viper.html]]
(setq viper-mode t)
(setq viper-inhibit-startup-message 't)
(setq viper-expert-level '3)
(require 'viper)
(define-key viper-insert-global-user-map "\C-c" 'viper-exit-insert-state)
(defun my-viper-beginning-of-buffer ()
(interactive)
(beginning-of-buffer))
(define-key viper-vi-global-user-map [?g?g] 'my-viper-beginning-of-buffer)
(defun my-viper-star ()
(interactive)
(let ((wd (concat "\\<" (thing-at-point 'symbol) "\\>")))
(setq viper-s-string wd)
(setq viper-s-forward t)
(viper-search wd t 1)))
(define-key viper-vi-global-user-map [?*] 'my-viper-star)
(defun my-viper-jump-tag ()
(interactive)
(setq wd (thing-at-point 'symbol))
(find-tag wd))
(define-key viper-vi-global-user-map [?\C-\]] 'my-viper-jump-tag)
(defun my-viper-jump-tag-next ()
(interactive)
(setq wd (thing-at-point 'symbol))
(find-tag wd 0))
(define-key viper-vi-global-user-map [?\C-:] 'my-viper-jump-tag-next)
(defun my-viper-pop-tag ()
(interactive)
(pop-tag-mark))
(define-key viper-vi-global-user-map [?\C-t] 'my-viper-pop-tag)
(defun my-viper-pop-mark ()
(interactive)
(set-mark-command -1))
(define-key viper-vi-global-user-map [?\C-o] 'my-viper-pop-mark)
(define-key viper-vi-global-user-map [?u] 'undo)
(define-key viper-insert-global-user-map [backspace] 'backward-delete-char-untabify)
(define-key viper-insert-global-user-map [delete] 'delete-char)
(define-key viper-emacs-global-user-map "\C-w\C-w" 'other-window)
(define-key viper-vi-global-user-map "\C-w\C-w" 'other-window)
(define-key viper-emacs-global-user-map "\C-w\C-o" 'delete-other-windows)
(define-key viper-vi-global-user-map "\C-w\C-o" 'delete-other-windows) ;; dired を少しだけ vi 風に
(define-key viper-dired-modifier-map "j" 'dired-next-line)
(define-key viper-dired-modifier-map "k" 'dired-previous-line)
(define-key viper-dired-modifier-map "/" 'dired-goto-file)
(define-key viper-dired-modifier-map "l" '(lambda () (interactive) (dired-next-line 10)))
(define-key viper-dired-modifier-map "h" '(lambda () (interactive) (dired-previous-line 10)))
-quack.el
--配布サイト: [[http://www.neilvandyke.org/quack/>>http://www.neilvandyke.org/quack/]]
--version 0.30 (2007-06-27)
--特徴: 上記サイトに記載されています。
--Emacs 上で読める [[SICP の info>>http://www.neilvandyke.org/sicp-texi/]] もあります。
設定
(require 'quack)
by kacchi
-scheme-complete.el
--配布サイト: [[http://synthcode.com/>>http://synthcode.com/]]
--release 0.8 (2008/02/08) アップデートされていないか時々チェックすると良いでしょう。
--特徴: context-sensitive な補完と eldoc をサポートしている。eldoc-mode はマイナーモードで、ポイント位置の関数呼び出しの引数リストをエコーエリアに表示する簡易ヘルプです。バッファのメジャーモードがサポートしていれば、M-x eldoc-mode で enable と disable をトグルします。scheme-mode ではサポートされていませんが、scheme-complete.el がそのための関数を定義しているので、設定すれば scheme-mode でも eldoc-mode を利用できます(Emacs22かMeadow3が必要です)。
補完と eldoc の設定例
(autoload 'scheme-get-current-symbol-info "scheme-complete" nil t)
(autoload 'scheme-smart-complete "scheme-complete" nil t)
とするか、または
(require 'scheme-complete)
とします。
(eval-after-load 'scheme
;; キーバインド
'(progn
;; scheme-smart-complete: M-TAB
(define-key scheme-mode-map "\e\t" 'scheme-smart-complete)
;; scheme-complete-or-indent: TAB
(define-key scheme-mode-map "\t" 'scheme-complete-or-indent))
)
(add-hook 'scheme-mode-hook
(lambda ()
;; Gauche の場合、次の2個の変数を設定しておいたほうがよいのかも。
(setq default-scheme-implementation 'gauche)
(setq *current-scheme-implementation* 'gauche)
;; eldoc-mode
;; デフォルトで enable にするには下の行のコメントをはずす。
(set (make-local-variable 'eldoc-documentation-function)
'scheme-get-current-symbol-info)
;;(eldoc-mode t)
)
)
by kacchi