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) ) ) ) )
- yc-elの削除を行い、emacs-startup(aka 50yc-el.el)で、"Package yc-el not fully installed. Skipping setup."のメッセージが出ていることを確認 emacs-snapshotにて確認 emacs21でも確認、xemacs21-muleは動作で確認。ctrl+\でミニバッファにimの選択になった。
- symlinkを張ることにより、M-x find-function RET yc-debug RETで elispのソースが表示されることをemacs-snapshotにて確認, emacs21でも確認, xemacs21でも確認
- インストール時に表示するメッセージが冗長だったが簡素化されていることをemacs-snapshotにて確認, emacs21にて確認, xemacs21-muleにて確認
- debian-pkg-add-load-path-itemの件は、ソースコードに変更を加えてあるので、ソースコードにて確認可能, emacs-snapshot, emacs21, xemacs21-muleともに同じ
- 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)
package-dirがvoid-variableになるのは、letで縛っている内側で使っていないからでしょう。Bug#403283で示したコードでいうと、[...]の部分に書けば動作するものと思います。
ローカルバインディングについて確認してみます。