よろずや

Emacs Lisp

目次

Emacs で MSN Messenger

元は Python で書いた MSN Messenger 互換クライアント Emacs Lisp のみで書き直したものです.

windows 上でのスクリーンショット

最近ちょと忙しくて全然さわってませんが,暇になったら(そして MSNP 7 以前の互 換性が残ってたら)判明しているバグの修正,ユーザーアカウントの管理の強化,ファ イル転送等々やり残している部分に手をつけたいと思ってます.御意見御要望をくれ たもう少し(気長に)お待ちください.もちろん,かわりにやってくれるととても嬉しいんですが. :-)

TODO (覚えているやつだけ)

(たぶん) 無理な事

単一バッファ版

バッファ使いまくり版

ファイルやりとり(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 をタブもどき化

image/escreen-tab.png

雑多なプログラムたち

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

image/agent000.png

Emacs のアイドル時に動作するエージェント(メソッドを定義すればタイマー割り込みでも動く)を動かします 注意:ジョークプログラムなので実用性は期待しないでください).現在は

くらいの機能しかありません.標準で付いてくるエージェントはサンプルなので面白くありませんが 拡張可能なのが特徴です.今後

みたいなのを付けようとは思ってます.とりあえず今は台詞のバリエーションが少ないのが難点.

使い方はロードした後↓の操作であとはぼ〜っとしてるだけです.

「いいか,このハードウェア $1000 に,ソフトウェアの費用,それに貴様の正味 の価値 3 セントを加えると…ふーむ,こいつはちょっとした金額だ!! …」とか 喋りだす鬼軍曹モードとか面白そうだとは思うんですがね.誰か作りませんか? いや,別に役に立つこと喋らせてもいいんですが.現実逃避にいいかも.おもし ろそうなアイデアがあったらメールください.

BrainFuck モード

image/bf.png

俳句もどきを表示

image/haiku.png

ニュースヘッドラインを表示

image/newsflash.png