Emacs Lisp
目次
Emacs で MSN Messenger
元は Python で書いた MSN Messenger 互換クライアント Emacs Lisp のみで書き直したものです.
最近ちょと忙しくて全然さわってませんが,暇になったら(そして MSNP 7 以前の互 換性が残ってたら)判明しているバグの修正,ユーザーアカウントの管理の強化,ファ イル転送等々やり残している部分に手をつけたいと思ってます.御意見御要望をくれ たもう少し(気長に)お待ちください.もちろん,かわりにやってくれるととても嬉しいんですが. :-)
TODO (覚えているやつだけ)
- セッション管理をまともに
- ユーザーリストの管理
- ファイル転送機能
(たぶん) 無理な事
MSNP8 への対応←対応してくださってる方がいらっしゃいます.素晴らしい.
単一バッファ版
- messenger.el 0.0.1.1 のダウンロード (2001/11/04)
バッファ使いまくり版
- 開発版 0.1.0.1 のダウンロード (2001/11/19)
ファイルやりとり(MSNFTP)
Emacs だけで MSNFTP を喋ろうとしたら open-network-stream でブロックしてしま う場合がありました.これではさすがに使い物にならないので,しょうがなく受信部 分を外部プロセスに追い出してみることに決定.コマンド名はズバリ msnftp という ことで.仕様は,
受信時: msnftp メールアドレス 認証用Cookie IPアドレス ポート番号 ファイル名
送信時: msnftp S 認証用Cookie IPアドレス ポート番号 ファイル名
てな感じ.これを start-process で非同期に動かすだけ.内部の実装はどーでもい い,のでとりあえず C で書いてみました.コンパイルだけなら Windows + mingw も 通るようにしましたが,試験はしてません.msn-mode での送受信は msn-send-file, msn-receive-file でどーぞ(まだめっさ危険です.ファイル名に空白が入ってよー もんなら…).ポートが空いてるかどうかはコマンドラインで送受信をテストして確 かめてください.
↑この msnftp.c を msnftp (Windows なら msnftp.exe)というバイナリにコンパ イルして,それをパスの通ったとこに置いてください.あとは,msn-receive-file でファイル を msn-received-file-directory で指定されたディレクトリに たぶん 保存してくれます.
識者のツッコミをお待ちしています.むしろ,かわりに作ってくれたら嬉しい….
Emacs をタブもどき化計画
Emacs の header-line を活用してタブもどき化しようという計画
escreen.el とか elscreen.el をタブもどき化
雑多なプログラムたち
yank-ex
1 ; kill 2 ; kill 3 ; kill 4 ; kill 5 ; kill 3 ; C-y M-y M-y で 3 を入力 6 ; kill このとき yank/yank-pop は 6 -> 3 -> 5 -> 4 -> 2 -> 1 という順番になる (標準だと 6 -> 5 -> 4 -> 3 -> 2 -> 1 )
最後に yank した文字列が kill-ring 内で前のほうに来るようにする.
Agent
- agent.el のダウンロード - agent を動かします (要: eieio)
Emacs のアイドル時に動作するエージェント(メソッドを定義すればタイマー割り込みでも動く)を動かします 注意:ジョークプログラムなので実用性は期待しないでください).現在は
- 登録されているメッセージをランダムに喋る (sample-agent)
- 俳句もどきを喋る (basho)
- elisp 系モードだと eldoc をつかってヘルプを喋る (lispy-agent)
- elisp 系モードだと lisp 系のキーバーンドを喋る (lispy-agent)
- defun にカーソルをあわせると,関数の長さに応じて喋る (lispy-agent)
くらいの機能しかありません.標準で付いてくるエージェントはサンプルなので面白くありませんが 拡張可能なのが特徴です.今後
- コマンドを登録しといて,実行させる機能(これは楽しそう)
- 台詞の自動ダウンロード(っても web からとってくるようにすればいいだけ)
- Emacs のセッションをまたいだデータの記憶(ファイルに保存するだけ)
みたいなのを付けようとは思ってます.とりあえず今は台詞のバリエーションが少ないのが難点.
使い方はロードした後↓の操作であとはぼ〜っとしてるだけです.
- M-x agent : 一覧からエージェントを選んでください
- M-x agent-call : エージェントを呼びだします
「いいか,このハードウェア $1000 に,ソフトウェアの費用,それに貴様の正味 の価値 3 セントを加えると…ふーむ,こいつはちょっとした金額だ!! …」とか 喋りだす鬼軍曹モードとか面白そうだとは思うんですがね.誰か作りませんか? いや,別に役に立つこと喋らせてもいいんですが.現実逃避にいいかも.おもし ろそうなアイデアがあったらメールください.
BrainFuck モード
- brainfuck.el - brainfuck を実行する.
俳句もどきを表示
- haiku.el - 俳句もどきを表示する
ニュースヘッドラインを表示
- newsflash.el - Yahoo のニュースヘッドラインを表示
するした

