Actionstokyo-emacs#x02の個人的レポートid:hayamizさん主催のtokyo-emacs#02に参加してきました。ミラクルリナックスという魅力的な場所で、Emacsが好きという魅力的な人達が多数参加した、魅力的なイベントでした。イベントに関するレポートは諸処であげられているので、このエントリでは発表されたネタに個人的なツッコミを入れていくだけにします。「こういうことできたらいいな」という原始的な視点から、Emacsはカスタマイズしてこそという真理を再確認させてくれた発表でした。kwappaさんはその発表の中で、二つのカスタマイズ例を例示されました。挙動になるというカスタマイズです。個人的には後者はすごくいいアイデアだと思います。同発表で実装を説明されていましたが、添削もかねてちゃんとした実装(*)を公開したいと思います。22で微妙に挙動が違う(*)ので、それぞれ別の実装になっています。23版のほうがスマートな気がします(*)。22でもポータブルにするには次の関数/変数を使えばよいと思います。変数にはEmacsのメジャーバージョン番号が数値で入ります。使用しているウィンドウシステムの識別子がシンボルで入ります(xやwindows-ntなど)。変数にはシステムの識別子がシンボルで入ります(gnu/linuxなど)。上記のコードをポータブルにすると次のようになります。いう拡張を発表されました。この拡張はプロジェクト内のファイルを名前で検索したりgrepするためのものです。ありましが、anythingとは独立して使うことも可能らしいです。僕は仕事では基本的にJavaやHTMLを扱うのですが、Javaではパッケージとクラスがディレクトリ構造とファイルに一対一で対応するため、どうしてもディレクトリが深くなってしまい、目的のファイルを開くのに時間がかかるという問題があります。併用して解決な環境を実現していました。ポータビリティと使いやすさという点から考えればこの方法は少々気持ちわるいです。findutilsをコンパイルしないといけませんし、PATH環境変数に手を加えないといけません。ある意味理想の実装です。Lispで実装されているので全てのプラットフォームで実行できます。懸念があったのがファイルデータベースの作成のコストなのですが、件のJavaの製品のプロジェクトルートでファイルデータベースを作成しても2.5秒ほどしかかからなかったので、心配するほどのことではありませんでした(*)。0.14226200000000055)個人的には、このようなディレクトリをトラバースする処理は頻繁にやるので次のような関数で提供されているとうれしいです。指定された関数にコールバックする関数です。entry)))検索オプションなども渡せるといいかもしれません。欲を言うとCコードで実装されてほしいです。いうのもシステムによっては効率よくディレクトリをトラバースする関数が容易されているからです。どなたかemacs-develに提案する人がいればいいのですが。プロジェクトを管理する拡張ですが、今のところ検索機能だけに限られています。プロジェクト管理の要件を考えると最低限次の機能が必要だと思います。Nav(*)のようなファイルブラウザ機能です。プロジェクト(言語)によってさまざまなディレクトリ構造の慣習があるので、それを吸収するのが目的です。実装できる機能ですが、よりプロジェクトらしく使用できるとよいです。(4)はCのプロジェクトでもJavaのプロジェクトでも関係なくF10でビルドできるような機能です。(5)は他の拡張のために仕様化されたプロジェクトのメタ情報を提供する機能です。flymakeがビルドスクリプトを見つけるのに使ったり、auto-completeがソースファイルを見つけるのに使います。仕様化されていることが大事です。限定的ではありますが、十分利用できるものだと思います。マクロが使われまくってるので、僕にはソースの内容までうまく理解できませんが...松本智行さんの発表StumpWMというタイリングウィンドウマネージャの話でした。ご自身ではEmacsと全然関係ないとおっしゃっていましたが、実は関係あるのではないかと思っています。23から入った(*)XEmbedという機能を使えば、Emacsでウィンドウマネージャが作れるかもしれないからです。ウィンドウマネージャに関してもXEmbedに関しても全く調べてないので適当なことを言っていますが、将来EmacsがウィンドウマネージャになってログインシェルまでEmacsになったりすると素敵じゃないですか。厳密には仕様がサポートされただけかもしれません。http://standards.freedesktop.org/xembed-spec/xembed-spec-latest.htmlちなみに松本智行は以前にXMonadを使ってらっしゃったらしいです。僕は現在でもXMonadを使っていますが、もし次にXMonadを設定をいじる必要が発生した場合はおそらくXMonadを捨ててawesomeかStumpWMに以降すると思います。それぐらいXMonadはユーザー泣かせの狂ったソフトウェアなのです。僕はEmacsのプロファイラに関して発表しました。使いものにならないから、Emacsのネイティブプロファイラを実装したよ、という話です。簡単なデモも行いました。資料は次のURLから見れます(*)。tokyo-emacsグループにも適宜アップロードしますhttp://cx4a.org/pub/tokyo-emacs/emacs-native-profiler.pdfこのプロファイラはEmacs本体に手をいれることで実装しています。パッチは次のURLから手に入ります。http://code.google.com/p/emacs-native-profiler/特徴は次のようになります。ネイティブプロファイラ少ないオーバーヘッドコールツリーを見れる簡単に使える今のところGNU/Linuxでしか動作確認していません。Xだとプロセスの生成時(?)に固まります。使い方は以下のようになります。profiler-resultsごにょごにょしたプロファイル結果が見れます以上です。tokyo-emacs#x02は大変面白かったです。id:hayamizさんに感謝します。次回も開催されることを期待しています。9/29にアリエル・ネットワーク社内でEmacsの勉強会を行います。講師は僕ではありませんが、僕などは及ばなぬ技量の持ち主が講師をやってくれます。参加希望の方はATNDのページから登録してください。参加お待ちしています。