]
トップ «前の日記(2006-12-17) 最新 次の日記(2006-12-19)» 編集

Yukiharu YABUKI の tDiary



このtDiaryを検索します。

2006-12-18 [長年日記]

_ emacs-lisp:package-dir

emacsのstartup elispでエラーとなって困っていて、package-dir を評価するとエラーが出ている模様。たしかに、package-dirを評価している部分をコメントにしてしまうと初期値ロードは動いてしまう。

下記の Emacs Lisp をemacs-snapshotのスクラッチバッファにコピペしてeval-bufferすると、Symbol's value as variable is void: package-dirと出る。うむむ。

(let ((flavor debian-emacs-flavor ))(load "/etc/emacs/site-start.d/50yc-el.el"))
50yc-el.elの中身
 (let ((package-dir (concat "/usr/share/"
                           (symbol-name flavor)
                           "/site-lisp/yc-el")))
  (when (file-directory-p package-dir)
    (if (fboundp 'debian-pkg-add-load-path-item)
      (debian-pkg-add-load-path-item package-dir)
      (setq load-path (cons package-dir load-path))
    )
  )
)
 
 
(message "package-dir = [%s]" package-dir )
(sit-for 3)
 
 
;;; check package removed?
(if (not (file-exists-p (concat package-dir "/yc.elc")))
  (message "Package yc-el not fully installed.  Skipping setup.") ;;
----- Not Found
  ;; ----- Found
  (progn
    (message "Package yc-el fully installed.")
    ;
    ; Do you have mule(MULti-ingual Enancement to GNU Emacs) feature?
    ;
    (message "before checking MULE feature")
    (when (featurep 'mule)
      (progn
        (global-set-key "\M-\ " 'yc-mode)
        (setq yc-stop-chars "(){}<>")
        (setq yc-server-host "unix")
        (setq yc-use-color t)
        (setq yc-icanna-path "/usr/lib/yc-el/icanna")
 
        ;; comment the following 3 lines to not to activate yc-el per default.
        (setq yc-connect-server-at-startup nil)
        (load-library "yc")
        (force-yc-input-mode)
      )
    )
  )
)

スクラッチバッファにて、(message "flavor [%s]" debian-emacs-flavor)でctrl+x, ctrl+eで評価すると"flavor[emacs-snapshot]"って表示されるやん。

ふーむ。(symbol-name flavor)でこけてるみたい。

_ 朝食

キムチ鍋の残りに、ごはんをいれて雑炊にする。一人鍋の残りでも、辛めだが味が複雑だ。鍋の残りで作る雑炊はなんでこんなに美味しいんだろう。

_ Emacs-lispの件

下記のコードなら動いている。これでテストをしつつ、意見を聞こう。結局、自分でpackage-dirと同じ内容を別の手段で作ってやってしまった。
(let ((package-dir (concat "/usr/share/"
                          (symbol-name flavor)
                          "/site-lisp/yc-el")))
 (when (file-directory-p package-dir)
   (if (fboundp 'debian-pkg-add-load-path-item)
     (debian-pkg-add-load-path-item package-dir)
     (setq load-path (cons package-dir load-path))
   )
 )
)
;;; check package removed?
;;;(message "flavor = [%s]" (symbol-name flavor))
;;;(if (not (file-exists-p (concat package-dir "/yc.elc")))
(if (not (file-exists-p (concat "/usr/share/" (symbol-name flavor)
"/site-lisp/yc-el/yc.elc")))
 (message "Package yc-el not fully installed.  Skipping setup.") ;;
----- Not Found
 ;; ----- Found
 (progn
   (message "Package yc-el fully installed.")
   ;
   ; Do you have mule(MULti-ingual Enancement to GNU Emacs) feature?
   ;
   (message "before checking MULE feature")
   (when (featurep 'mule)
     (progn
       (global-set-key "\M-\ " 'yc-mode)
       (setq yc-stop-chars "(){}<>")
       (setq yc-server-host "unix")
       (setq yc-use-color t)
       (setq yc-icanna-path "/usr/lib/yc-el/icanna")
 
       ;; comment the following 3 lines to not to activate yc-el per default.
       (setq yc-connect-server-at-startup nil)
       (load-library "yc")
       (force-yc-input-mode)
     )
   )
 )
)
  1. yc-elの削除を行い、emacs-startup(aka 50yc-el.el)で、"Package yc-el not fully installed. Skipping setup."のメッセージが出ていることを確認 emacs-snapshotにて確認 emacs21でも確認、xemacs21-muleは動作で確認。ctrl+\でミニバッファにimの選択になった。
  2. symlinkを張ることにより、M-x find-function RET yc-debug RETで elispのソースが表示されることをemacs-snapshotにて確認, emacs21でも確認, xemacs21でも確認
  3. インストール時に表示するメッセージが冗長だったが簡素化されていることをemacs-snapshotにて確認, emacs21にて確認, xemacs21-muleにて確認
  4. debian-pkg-add-load-path-itemの件は、ソースコードに変更を加えてあるので、ソースコードにて確認可能, emacs-snapshot, emacs21, xemacs21-muleともに同じ
  5. emacs-snapshotへの依存関係を追加したので、sidにあるemacs-snapshotでもyc-elがインストールできるようにした。実際にemacs-snapshotへインストールテストを行い確認

久々にxemacs21-muleを起動したら、デフォルトがskkになっていて30秒ほど悩んだ。理由は~/.xemacs/init.el の中にskkの設定があっただけ。yc-elをメンテナンスするまでは skkがメインだったからなあ。

dancerj氏へ、メールdone.

_ memo:Gmailに付加機能を与えるナイスなGreasemonkeyスクリプトたち

(http://opentechpress.jp/developer/article.pl?sid=06/12/04/0132220&from=rss) メールを剥こう側(つまりサーバーサイド)に置いておく google のおかげで身軽になっているひとも多い。 Time hackなどやGTDなどの書籍をみてもgmailと連動させていることがおおい。これらの記事はそのような人々のために書いてある記事だ。

この流れを逆読みすると、メールを自前でもって活用している事例などはもっとないだろうか。自分のメールは自分の情報元だという人も多いだろうに

_ memo:インタビュー:Linuxセキュリティを専門とするKurt Seifried氏

(http://opentechpress.jp/security/article.pl?sid=06/12/08/014221&from=rss)

_ memo:Russell Coker: SE Linux on Debian in 5 minutes

Planet Debianより。「5分でDebianにSE Linuxを」(ってホントに?!) (http://etbe.blogspot.com/2006/12/se-linux-on-debian-in-5-minutes.html)

本日のツッコミ(全2件) [ツッコミを入れる]
_ tats (2006-12-18 22:26)

package-dirがvoid-variableになるのは、letで縛っている内側で使っていないからでしょう。Bug#403283で示したコードでいうと、[...]の部分に書けば動作するものと思います。

_ yabuki (2006-12-19 13:02)

ローカルバインディングについて確認してみます。