人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

.emacs.el で、bufferを新しく立ち上げた時トリガーになるような、便利な hookはないでしょうか。
現在、 autolookup.el を読み込み、 (add-hook 'find-file-hooks 'auto-lookup-mode) を使用しています。
この auto-lookup-mode を、pukiwiki-mode.el における pukiwiki-mode 内て使用したいと考えています。
しかし、pukiwiki-modeでは ファイルをオープンする訳ではないため、このhookは使えません。
このような状況で、bufferを新しく立ち上げた時の、便利な hookの情報をお待ちしています。
hookに限らず、参考になりそうな情報は歓迎致します。
ちなみに、「M-x apropos <RET> .*hook」 で探してみたのですが、いまいちピンと来るものがありませんでした。
cf.
autolookup.el : http://www.bookshelf.jp/elc/autolookup.el
pukiwiki-mode.el : http://www.bookshelf.jp/pukiwiki/pukiwiki.php?%A5%A2%A5%A4%A5%C7%A5%A2%BD%B8%2Fpukiwiki-mode

●質問者: kazumichi
●カテゴリ:コンピュータ インターネット
✍キーワード:.emacs ADD cf. EL HOOK
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● yzb
●27ポイント

auto-lookup-modeもpukiwiki-modeもつかっていないので、

動作確認はできていませんが、、、

(add-hook 'find-file-hooks 'auto-lookup-mode) に

ならって、

(add-hook 'pukiwiki-index-mode-hook 'auto-lookup-mode)と

(add-hook 'pukiwiki-history-index-mode-hook 'auto-lookup-mode)を

追加するのはどうでしょうか?

pukiwikiのソースをざっと見る限り、上記2つのhook変数が

行儀良く宣言されてるので、この変数を提案しています。

M-x pukiwiki-edit-mode というのも使っているのであれば、

変数 pukiwiki-edit-mode-hookに対して、上記関数で

auto-lookup-modeを加えてあげればいいかと思います。


ただ、pukiwiki-index-modeと、auto-lookup-modeを

同時に走らせられるのかどうかは自分では分かりません。。

以下ご参考

ソースの調べ方ですが。。

ソースを見て、普段お使いのコマンドと、その関数内の

(run-hooks hogehoge-hook)が見つかれば、その

hogehoge-hookに自分の走らせたい関数をadd-hookで

追加すれば動くはず。。 多分。。

URL必須との事ですが、自分のblogサイトで良いのでしょうか??

http://www.doblog.com/weblog/myblog/63398

使い方分かってなくてすみません。。

◎質問者からの返答

アドバイスを元に、

(add-hook 'pukiwiki-index-mode-hook 'auto-lookup-mode)

(add-hook 'pukiwiki-history-index-mode-hook 'auto-lookup-mode)

(add-hook 'pukiwiki-edit-mode-hook 'auto-lookup-mode)

を定義して、emacsを立ち上げてみましたが、pukiwiki-editにおいてauto-lookupは起動しませんでした。

また、

(add-hook 'pukiwiki-index-mode-hook 'flyspell-mode)

(add-hook 'pukiwiki-history-index-mode-hook 'flyspell-mode)

(add-hook 'pukiwiki-edit-mode-hook 'flyspell-mode)

もやってみましたが、同様動きませんでした。

しかし、

(add-hook 'pukiwiki-index-mode-hook 'ac-mode-without-exception)

(add-hook 'pukiwiki-history-index-mode-hook 'ac-mode-without-exception)

(add-hook 'pukiwiki-edit-mode-hook 'ac-mode-without-exception)

は動作しました。

明日もう一度チャレンジしてみようと思います。

引き続き情報をお待ちしています。(返信は翌日となると思います。)

cf. ac-mode.el <http://www.taiyaki.org/elisp/ac-mode/>


2 ● yzb
●27ポイント

中途半端な回答だったようですみません。

普段、emacsを使っていて、いろいろ

カスタマイズして使っていますが、動かしきるには、

pukiwikiとautolookupを自分でも使ってみないと

いけませんね。時間をもらえれば自分の環境で

入れて調べてみます。。

http://www.doblog.com/weblog/myblog/63398

◎質問者からの返答

いえいえ、有益な情報有り難うございます。

run-hooksは、知りませんでしたので、感謝です。

さて、以下に*Messages*バッファを一部記述しますが、紹介して頂いた3つのpukiwiki*-hookは全てhookとしてトリガーになっているようです。

トリガーにはなれど、バッファには反映されないのが、よくわからないところです。

また、以下の*Messages*を見ると、唯一動作しているac-mode.eは、pukiwiki*-hookではなく、Emacs起動時に既に起動していたように見えます。

が、Emacs起動直後に表示される*scratch*バッファでは、ac-modeは有効ではなかったのも、不可解です。

---*Messages* ここから---

Loading mwheel...done

(/Users/kawachi/Documents/Applications/Emacs.app/Contents/MacOS/Emacs)

Loading tool-bar...done

Loading image...done

Loading migemo...

Loading advice...done

Loading migemo...done

Toggling tool-bar-mode off; better pass an explicit argument.

Loading encoded-kb...done

Loading ac-mode...done

Loading recentf...done

Loading /Users/kawachi/.recentf...done

Cleaning up the recentf list...done (0 removed)

Loading autoinsert...done

Loading jit-lock...done

For information about the GNU Project and its goals, type <f1> C-p.

--- ここまでEmacs起動時の*Messages*、ここからpukiwiki-mode起動 ---

Loading pukiwiki-mode (source)...

Loading edebug...done

Wrote /Users/kawachi/literal-test-file

Loading pukiwiki-mode (source)...done

Loading flyspell...done

Starting new Ispell process...

Loading autolookup...done

Toggling flyspell-mode off; better pass an explicit argument.

Loading index list...

Loading cl-macs...done

Mark set

Loading InterWikiName list...

Loading attach list... (C-g for Cancel)

Loading... done.

Loading sort...done

Sorting... done.

Mark set

---*Messages* ここまで---

今後数日は質問をオープンにし続ける予定ですので、引き続き、yzbさん、また他の方、情報をお待ちしています。

Emacsに付随する *-hookはリファインがされやすい環境にあり、確度や情報の点で優勢だと思いますので、そちらの方面の情報も歓迎します。

また念のため、私の使用している環境を公開しておきます。

Emacs(22.0.50.1) http://www.kazumichi.org/kb/archives/000300.html

.emacs.el http://www.kazumichi.org/d/shell_backup/.emacs.el


3 ● yzb
●26ポイント

一部フォローです。

>また、以下の*Messages*を見ると、唯一動作しているac-mode.eは、pukiwiki*-hookではなく、Emacs起動時に既に起動していたように見えます。

kazumichi 様の.emacsを見ましたが、

ac-mode.elは、

(load "ac-mode")

となっており、強制的にファイルを読み込む設定に

なっています。また、一般に、hogehoge.el/hogehoge.elc

ファイルは読み込まれると実行可能な状態にはなりますが、

M-x ac-mode 等としない限り、ロードしただけでは

動きません。(モードが切り替わりません)

>が、Emacs起動直後に表示される*scratch*バッファでは、ac-modeは有効ではなかったのも、不可解です。

ですので、ac-modeになっていないのは、それはそれで

正しくて、ロードして実行可能状態になっているだけ、

というのが正しいと思います。

一方、pukiwikiは、

(autoload 'pukiwiki-edit

"pukiwiki-mode" "pukwiki-mode." t)

とありますように、実行要求があるときに読み込む様に

なっているので、ログ上、loadingのタイミングで

pukiwiki-modeになっています。

(もう少し言うと、pukiwiki-modeにするよう何らかの

要求(pukiwiki-edit/index/etc)が来たので、emacsは、

autoloadの情報に従い、pukiwiki-modeのファイルを

読み込んで、関数を実行してモードを変更しています)

元々のご質問は、自分の環境でやってみて、もしうまくいったら

doblogのblogに記載します。

質問回答用記事(もしうまくいったら回答します)

http://www.doblog.com/weblog/myblog/63398/2465309#2465309

◎質問者からの返答

わかりやすい解説、有り難うございます。

load されるだけでは、 modeは起動しないのですね。

納得いたしました。

さてその後、pukiwiki*-hookでの解決に対して個人的な能力の限界を感じたため、font-lock-mode-hookをgoogleで見つけた結果、pukiwiki-modeにおけるauto-lookup起動という当初の目標を達成しました。

(add-hook 'font-lock-mode-hook 'flyspell-mode)

(add-hook 'font-lock-mode-hook 'auto-lookup-mode)

(add-hook 'font-lock-mode-hook 'ac-mode-without-exception)

が副作用として、minibufferにおいてもac-modeで無駄に補完されてしまったり、Emacsがフリーズするようになったりと、解決したとは言えない状況です。

ac-modeはpukiwiki-modeで使用したく、hookで起動する必要があるので、相変わらず試行錯誤状態です。

が、いろいろ前進している気がしますので感謝です。

yzbさんのdoblogの方も注視させて頂きます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ