Meadowの.emacs設定ではまったのでメモ

使っているのはMeadow-3.00-devです。以下のsetup-ja-3.00.5.exeからインストールできます。
Index of /meadow/dists/3.00
インストールなどは以下が参考になります。
Meadow/Emacs memo: Meadow のインストール

.emacs

現在の.emacsの内容は以下の通りです。

;;;; -*- mode: lisp-interaction; coding: iso-2022-7bit -*-

;;;
;;; Mule-UCS
;;;
(setq unicode-basic-translation-charset-order-list
      '(ascii
        latin-iso8859-1 latin-iso8859-2 latin-iso8859-3
        latin-iso8859-4 cyrillic-iso8859-5 greek-iso8859-7
        hebrew-iso8859-8 latin-iso8859-9
        ipa thai-tis620 ethiopic indian-is13194
        vietnamese-viscii-lower vietnamese-viscii-upper
        mule-unicode-0100-24ff
        japanese-jisx0208
        korean-ksc5601
        chinese-cns11643-1 chinese-cns11643-2 chinese-cns11643-3
        chinese-cns11643-4 chinese-cns11643-5 chinese-cns11643-6
        chinese-cns11643-7
        chinese-gb2312
        chinese-big5-1 chinese-big5-2
        chinese-sisheng
        japanese-jisx0212
        japanese-jisx0213-1 japanese-jisx0213-2
        latin-jisx0201 katakana-jisx0201
        ))
(setq unicode-basic-translation-charset-order-list
'(ascii
japanese-jisx0208 japanese-jisx0213-1 japanese-jisx0213-2
japanese-jisx0212 katakana-jisx0201
latin-iso8859-1))
(require 'un-define)
(setq bitmap-alterable-charset 'tibetan-1-column)
(require 'jisx0213)

;;;
;;;
;;;
(set-language-environment "Japanese")

;;;
;;;
;;;
(mw32-ime-initialize)
(setq default-input-method "MW32-IME")
(setq-default mw32-ime-mode-line-state-indicator "[--]")
(setq mw32-ime-mode-line-state-indicator-list
  '("[--]" "[あ]" "[--]"))
(add-hook 'mw32-ime-on-hook
          (function (lambda () (set-cursor-height 2))))
(add-hook 'mw32-ime-off-hook
          (function (lambda () (set-cursor-height 4))))
;;; BDF
;;; (setq bdf-use-intlfonts16 t)
;;; (setq initial-frame-alist '((font . "intlfonts16")))
(w32-add-font
 "bdf-font"
 '((spec
    ((:char-spec ascii :height 120)
     strict
     (bdf-font "c:/usr/local/share/emacs/fonts/bdf/lt1-16-etl.bdf"))
    ((:char-spec ascii :height 120 :weight bold)
     strict
    (bdf-font "c:/usr/local/share/emacs/fonts/bdf/lt1-16b-etl.bdf"))
    ((:char-spec ascii :height 120 :slant italic)
     strict
     (bdf-font "c:/usr/local/share/emacs/fonts/bdf/lt1-16i-etl.bdf"))
    ((:char-spec ascii :height 120 :weight  bold :slant italic)
     strict
    (bdf-font "c:/usr/local/share/emacs/fonts/bdf/lt1-16bi-etl.bdf"))
    ((:char-spec japanese-jisx0208 :height 120 :weight any :slant any)
     strict
     (bdf-font "c:/usr/local/share/emacs/fonts/bdf/jiskan16.bdf")))))

;; フレームフォントの設定
(setq default-frame-alist
      (cons '(font . "bdf-font")
            default-frame-alist))

;;;
(setq default-frame-alist
      (append (list '(foreground-color . "black")
                    '(background-color . "white")
                    '(background-color . "gray")
                    '(border-color . "black")
                    '(mouse-color . "white")
                    '(cursor-color . "black")
                    '(width . 100)
                    '(height . 40)
                    '(top . 100)
                    '(left . 290)
                    '(alpha . (70 70 nil nil))
                    )
              default-frame-alist))

;; Don't work on 3.0
;;(if window-system
;;    (progn
;;      (setq font-lock-support-mode 'lazy-lock-mode)
;;      (global-font-lock-mode t)))

;;;
;;php-mode
;;;
(autoload 'php-mode "php-mode" "PHP mode" t)

(defcustom php-file-patterns (list "\\.php[s34]?\\'" "\\.phtml\\'" "\\.inc\\'")
  "*List of file patterns for which to automatically invoke php-mode."
  :type '(repeat (regexp :tag "Pattern"))
  :group 'php)

(let ((php-file-patterns-temp php-file-patterns))
  (while php-file-patterns-temp
    (add-to-list 'auto-mode-alist
                 (cons (car php-file-patterns-temp) 'php-mode))
    (setq php-file-patterns-temp (cdr php-file-patterns-temp))))

;;;
;;;ruby-mode
;;;
(autoload 'ruby-mode "ruby-mode"
  "Mode for editing ruby source files" t)
(setq auto-mode-alist
      (append '(("\\.rb$" . ruby-mode)) auto-mode-alist))
(setq interpreter-mode-alist (append '(("ruby" . ruby-mode))
                                     interpreter-mode-alist))
(autoload 'run-ruby "inf-ruby"
  "Run an inferior Ruby process")
(autoload 'inf-ruby-keys "inf-ruby"
  "Set local key defs for inf-ruby in ruby-mode")
(add-hook 'ruby-mode-hook
          '(lambda ()
            (inf-ruby-keys)))
(modify-coding-system-alist 'file "\\.rb$" 'utf-8)
(modify-coding-system-alist 'file "\\.rhtml$" 'utf-8)

;;ruby-electric
(require 'ruby-electric)
(add-hook 'ruby-mode-hook '(lambda () (ruby-electric-mode t)))

;;rails
;;(defun try-complete-abbrev (old)
;;  (if (expand-abbrev) t nil))

;;(setq hippie-expand-try-functions-list
;;      '(try-complete-abbrev
;;        try-complete-file-name
;;        try-expand-dabbrev))
;;(setq rails-use-mongrel t)
;;(require 'rails)


;;;
;;;html-mode
;;;
(autoload 'html-helper-mode "html-helper-mode" "Yay HTML" t)
(setq auto-mode-alist (cons '(".html$" . html-helper-mode) auto-mode-alist))
(setq auto-mode-alist (cons '(".rhtml$" . html-helper-mode) auto-mode-alist))
(setq auto-mode-alist (cons '(".tpl$" . html-helper-mode) auto-mode-alist))





(custom-set-variables
  ;; custom-set-variables was added by Custom -- don't edit or cut/paste it!
  ;; Your init file should contain only one such instance.
 '(case-fold-search t)
 '(current-language-environment "Japanese")
 '(default-input-method "japanese")
 '(global-font-lock-mode t nil (font-lock)))
(custom-set-faces
  ;; custom-set-faces was added by Custom -- don't edit or cut/paste it!
  ;; Your init file should contain only one such instance.
 )

;;no backup
(setq make-backup-files nil)

;;config key
(require 'redo)
(global-set-key "\C-@" 'redo)
(global-set-key "\C-f" 'goto-line)
(global-set-key "\C-ch" 'replace-string)

;;color
(set-face-foreground 'default "white")
(set-face-background 'default "black")
(setq frame-background-mode 'dark)
(frame-update-face-colors (selected-frame))

;;;
;;; gnuserv
;;;
(require 'gnuserv)
(gnuserv-start)
(setq gnuserv-frame (selected-frame))

;;elscreen-tab
(require 'elscreen-tab)

起動時にエラーする

この.emacsMeadowを起動すると、次のように怒られます。

・・・
Loading c:/meadow/packages/pkginfo/migemo/auto-autoloads.el (source)...done
Loading c:/meadow/packages/pkginfo/ms-fonts-ja/auto-autoloads.el (source)...done
Loading c:/meadow/packages/pkginfo/mule-fonts/auto-autoloads.el (source)...
Loading unicode...done
Loading cl-macs (compiled; note, source file is newer)...done


An error has occurred while loading `c:/meadow/.emacs':

error: Invalid value for :char-spec :nil


「Invalid value for :char-spec :nil」でぐぐってみると、参考になるものがありました。

(require 'jisx0213)
(set-language-environment "Japanese")
とだけ書いて Meadow を起動すると、
An error has occurred while loading `h:/home/.emacs':
error: Invalid value for :char-spec :nil
というエラーが表示されます。


おぉ。同じエラー。レスを見てみると解決策が。

mule-ucs-0.85-20050113-1-pkg から mule-ucs-0.85-20050113-2-pkg
へ update すると packages/pkginfo/mule-ucs/auto-autoloads.el
を消します。それでエラーはでなくなります。
それでもエラーになる場合は手動で
packages/pkginfo/mule-ucs/auto-autoloads.el
を消してください。


ここからはファイルをいじるので、まずは、Meadowディレクトリ全体をsvnレポジトリにインポート。
次に上の変更をやってみようとしたら、既に同じ状態になっていた。でもエラーはでる(ノд`)


もう少し調べてみたら解決策があった。

違った。すみません。逆だった。

(中略)

.emacs で (require 'jisx0213) するとエラーになって、
mule-ucs/auto-autoloads.el で (require 'jisx0213) すればエラー
にならないんです。


なるほど。ここで.emacs中の「require 'jisx0213」を消して、「packages\pkginfo\mule-ucs\」にauto-autoloads.elを作成。内容は以下の通り。

(require 'jisx0213)
;;; auto-autoloads.el ends here


Meadow起動・・・・・・エラーorz

Loading c:/meadow/packages/pkginfo/pukiwiki-mode/auto-autoloads.el (source)...done
Loading c:/meadow/packages/pkginfo/session/auto-autoloads.el (source)...done
Loading c:/meadow/packages/pkginfo/skk/auto-autoloads.el (source)...


An error has occurred while loading `c:/meadow/.emacs':

Symbol's value as variable is void: skk-large-jisyo


あ、でも違うエラーだ。ってことはさっきのは解決した!
どうやら、skk関連でエラーしている模様。
エラーログを出力してみる。

Debugger entered--Lisp error: (void-variable skk-large-jisyo)
  (null skk-large-jisyo)
  (cond ((null skk-large-jisyo) (setq skk-large-jisyo ...)) ((listp skk-large-jisyo)) ((not ...) (setq skk-large-jisyo ...)))
  eval-buffer(#<buffer  *load*<2>> nil "c:/meadow/packages/pkginfo/skk/auto-autoloads.el" nil t)  ; Reading at buffer position 475
  load-with-code-conversion("c:/meadow/packages/pkginfo/skk/auto-autoloads.el" "c:/meadow/packages/pkginfo/skk/auto-autoloads.el" nil nil)
  load("c:/meadow/packages/pkginfo/skk/auto-autoloads.el" nil nil t)


pkginfo/skk/auto-autoloads.elでエラーしてるな。
GNU Emacs Lispリファレンスマニュアル: Void Variablesによると、どうやら、skk-large-jisyoが初期化されてない上で評価されているかららしい。


skk使わないから、auto-autoloads.elいらないわ。これを削除しよう。


通った丶(´▽`)ノ

skk使う場合

.emacsに以下を記述します。この上でauto-autoload.elが呼ばれると正常に動作します。

;; Add pahts to SKK and APEL

(defvar system-load-path load-path)
(setq my-load-path '("~/share/emacs/site-lisp/skk" 
		     "~/share/emacs/site-lisp/apel" 
		     "~/share/emacs/site-lisp/emu"))
(setq load-path (append my-load-path system-load-path))

;; Configure for SKK

(require 'skk-autoloads)
(global-set-key "\C-x\C-j" 'skk-mode)
(global-set-key "\C-xj" 'skk-auto-fill-mode)
(global-set-key "\C-xt" 'skk-tutorial)
;; Specify dictionary location
(setq skk-large-jisyo "~/share/skk/SKK-JISYO.L")
;; Specify tutorial location
(setq skk-tut-file "~/share/skk/SKK.tut")

(add-hook 'isearch-mode-hook
	  (function (lambda ()
		      (and (boundp 'skk-mode) skk-mode
			   (skk-isearch-mode-setup)))))

(add-hook 'isearch-mode-end-hook
	  (function
	   (lambda ()
	     (and (boundp 'skk-mode) skk-mode (skk-isearch-mode-cleanup))
	     (and (boundp 'skk-mode-invoked) skk-mode-invoked
		  (skk-set-cursor-properly)))))