Emacs

Scheme から Emacs のコマンドを実行

私はよく Scheme のプログラムを Emacs 上で実行するんですが、elscreen で裏に回していたりして *scheme* バッファが見えない時に、何かユーザーの注意や介入が必要な事態が起こっていることがあります (入力を促す、等)。そんな時、外部プログラムを起動す…

Meadow + Anything で音楽CDを操作

Meadow に組み込みの mw32-mci-send-string 関数を使って CD ドライブを操作する anything ソースを考えてみました。 (defvar anything-c-source-cdplayer '((name . "CDPlayer") (candidates . ("play" "stop" "eject")) (action ("Do" . (lambda (cmd) (co…

anything で 2ch のスレッドを開く

遅ればせながら、話題の anything.el を使い始めました。噂に違わぬ凄さです。感覚的には Mac OS X の右上のやつ (spotlight) みたいな感じで、Emacs が飛躍的に便利になります。話は変わりますが、少し前にちょっと思い付いて 2ch の活動状況を監視するプロ…

Emacs クイズ

日記を書く[・ _ゝ・]はやみずさん - Emacs クイズ よりパッと閃いた一問だけ答えさせてください。 q5. "hello"という文字列が名前に含まれるコマンドの一覧を取得する方法は? 普通は M-x apropos-command で調べるのが良いと思うんですが、個人的にはこう…

Emacs - Scheme 間通信 ~ S 式オブジェクト記法による ~

最近 MP3 のタグを読むプログラムが必要になり、elisp で書こうとしました。が、バイナリ・データの扱いが無理っぽい気がしたので、Scheme で書くことにしました。一応それは上手くいったんですが、アプリケーション自体は emacs 上に作りたかったため、Sche…

関数生成関数の利用例: ミニバッファ履歴の整理

id:reinyannyan:20070416:p1 (簡易クロージャの実装) で、変数の値を関数式の中にインライン展開することで擬似クロージャを作成する方法を考えました*1。今回はその応用編です。savehist-mode を有効にして、ミニバッファの入力履歴を Emacs セッションを通…

ワイルドカードを含むディレクトリをブックマーク登録

dired (ディレクトリ一覧モード) でワイルドカードが使えるのをご存知でしょうか? C-x d でディレクトリを開く際にワイルドカードを使うと、そのバターンにマッチするファイルだけを一覧することができます。ファイルが乱雑に置かれているような作業ディレ…

ミニバッファ上でワイルドカード展開

Vim から Emacs に移行して (併用はしてますが) 困ったことの一つが、ファイルを開く時 (C-x C-f) にグロブ記号を展開してくれない、ということでした。厳密には、内部的にはグロブ文字を受け取ってはくれるんです。が、マッチした全てのファイルを開いてし…

ファイル保存時に余計な空行を削除する

コードの折り畳み機能を使うようになって気付いたんですが、折り畳みの前後に空行を開いてコードを書き足していると、知らないうちに無駄な連続空行を作ってしまうことがあります。それを自動的に解消する方法を考えてみました。2 行以上の連続空行を保存時…

リストとしての関数 -> 簡易クロージャの実装

最近 Lisp がお気に入りです。今日は、Lisp プログラムがリスト (括弧で括られた式) として表記される、という当たり前の事実について、Emacs Lisp をベースにしながら考察してみたいと思います。 関数はリスト、リストは関数 古い Lisp では、関数は第一要…

折り畳み表示

emacs を使いだして困ったことの一つが、ファイルを折り畳み表示する (一覧性を高める) 方法がなかなか分からなかったことです。Vim ではインデント単位で折り畳む設定が便利なんですが (set fdm=indent)、emacs ではどうするのか、調べることすらままならな…

はじめての elisp (LDR の未読件数を表示)

emacs はじめました。Lisp への関心、と言うより憧れの感情から Scheme を学び始め、Vim+Scheme の組み合わせが案外扱いづらいな、という感想から emacs に手を出したところ、後戻りできなくなってしまった、という感じです。元来私はガチガチの Vimmer だっ…