2009-01-01から1年間の記事一覧

Rubyで簡単にエスケープシーケンスによる色付け→timestampスクリプト改良

エスケープシーケンスで色をつけるのは端末アプリケーションだと定番だ。 Rubyで色つき文字を出す場合、わざわざエスケープシーケンスを書く必要はない。Term::ANSIColorというライブラリを使えばいい。インストールは「gem install term-ansicolor」で。 re…

Rubyスクリプトの#!行でバージョンをつけるべきたったひとつの理由

俺は使っているRubyの処理系はほぼすべて保持している。というのは、Rubyのバージョンが上がるととたんに動かなくなるスクリプトが出てくるからである。 実際、 /usr/local/bin 以下にあるRuby処理系は30個くらいある。1.4.5や1.6.6といった化石バージョンす…

任意のプログラムを実行するとき開始/終了時のタイムスタンプを出力する方法

[update] シグナルで終了したときには、プロセスオブジェクトを表示してみた。任意のRubyスクリプトを実行するとき開始/終了時のタイムスタンプを出力する方法 - 今日もスミマセン。はたしかに便利なのだが、わざわざRubyスクリプトに限定する必要はない。 …

MigemoをUTF-8化する

Migemoはローマ字から直接日本語を検索するすげえツールなのだが、開発停止されているようだ。というかもう完成されたソフトウェアなんだろうね。今に至るまで10年近くずーっと愛用している。 ただ、文字コードがEUC-JPのみってのがイケてない。今時UTF-8だ…

人は俺を「recentfマスター」と呼ぶ

Emacsを使ってるみんな、recentfというパッケージを知っているかい? 「最近使ったファイル」を上から順に並べていってすぐに切り換えられるようにするヤツだ。最近使ったものを一番上の見易い位置に置いておくのは超整理法の手法で、すこぶる便利だ。知らな…

Rubyリファレンスマニュアル刷新計画(るりま)をanything.elで検索して生産性を向上する

最近Rubyリファレンスマニュアル刷新計画(るりま)を更新してなかったので状況が変わっていた。今ではsvnリポジトリを使ってドキュメントが作成されている。ドキュメントのデータを除いてみたら拡張RDで書かれている。Ruby リファレンスマニュアルを Emacs …

auto-install.elでEmacsLispパッケージを自動インストール→anything.el関連を一括インストール

Emacs Advent Calendar jp: 2009参加中!次はkiwanamiさん。auto-install.el は拙作 install-elisp.el の後継バージョンである。サイトからEmacsLispファイルをダウンロードし、所定の位置に配置し、バイトコンパイルする。最大の違いはダウンロードが非同期…

知らないと損するミニバッファ保険

Emacsを使ってて怖いことのひとつは、ミニバッファに入力中にC-gを押してしまうことだ。すると、今までの入力がパーになってしまう。 俺はskkを使っていて、変換をキャンセルするときにC-gを押すのだが、押しすぎたりタイミングを間違えたらミニバッファ入力…

20秒で理解するホッテントリメーカー活用術

http://pha22.net/hotentry/はイカしたタイトルをつけてくれるサービスだ。ブログ書きのお供に。生成されたタイトルをさくっと知りたいときは、Unix使いならば出力を加工するよね。 テキストブラウザw3mをHTML→Plain Textコンバーターとして使う。そして、タ…

topコマンドのanything.elインターフェース

topコマンドはCPUやメモリを喰ってるプロセスをリストアップしてくれる。なるべくパソコンを軽くしたいので常に起動しているのだが、プロセスを殺すときにいちいちプロセスIDを打ち込まないといけないので面倒だ。そこでanythingインターフェース。M-x anyth…

タイマーをリストするanything情報源

Emacs で登録されている timer の一覧を表示 / マスタカの ChangeLog メモをanything.elで使えるようにしてみた。アクションはとりあえず、タイマーをキャンセルするのみ。 M-x anything-timersでタイマーを一覧できる。 anything-config.elに登録しているの…

anything.elを使ってzshの履歴検索をする

zshは快適なシェルではあるが、anything脳の俺にとっては履歴検索で絞り込めないと不便でしょうがない。 zshでanythingのようなものを作る方法があるものの、やはり本物のanything.elを使いたい。 ということでzshのコマンドラインからanythingで履歴検索す…

ホームポジションのアルファベットで候補を選択できるようにしてみた

久々のanything.el更新。 anything-enable-digit-shortcutsという変数を知っているかな?この変数をtにすると、Ctrl+数字(1〜9)で先頭9個の候補を選択して、デフォルトのアクションを実行することができる。なんだけど、Ctrl+数字というのはすこぶる押しづ…

crontabコマンドでファイルの内容をcrontabに登録する

crontab -r とやってしまった時の対処法 cronの設定を変えようと crontab -e と打とうとして、間違って crontab -r と打ってしまい、cronの設定が根こそぎぶっ飛んで参りました。 俺も経験したことがある。しかし、こんなスクリプトを書いたり、いちいちcron…

anything-show-completion.elとanything-complete.elを更新

http://d.hatena.ne.jp/hchbaw/20091111/1257960247パッチを取り込み。「alcs-current-pysical-column が負の値を返す時」は alcs-current-pysical-column をキャッシュするようにしてみた。M-x install-elisp-from-emacswiki anything.el M-x install-elisp…

pulldown.elがすごい

汎用プルダウンメニューインターフェースライブラリpulldown.el - Functional Emacserauto-complete.elのあのメニューが独立したライブラリとして登場。以下のコードを実行するとこうなる。(画像は引用) (require 'pulldown) (pulldown-menu '(foo bar hog…

ac-anything.elを更新

ac-anything.elを最新のauto-completeで動くようにする - 適当めもパッチを取り込んだ。同時に現行バージョンでも動くようにしてみた。M-x install-elisp-from-emacswiki ac-anything.el

anything.elの情報源を定義した直後に自動でテストする設定

emacs-lisp-modeかlisp-interaction-mode上でC-M-xを押したらカーソル位置のトップレベルフォームを評価する。関数や変数を再定義するのに便利なコマンドだ。 anythingの情報源を定義したとき、次にするべきことは動作確認だ。だったらC-M-xを押した時点で自…

久々にはてなキーワードのSKK辞書を作ってみる - 問題解決

skk

はてなキーワードのSKK辞書を作ってみる - http://rubikitch.com/に移転しました久々にはてなキーワードのSKK辞書を更新しようとしたが問題が起きてしまった。 とりあえず、元スクリプトが更新されていたので更新。で、その通りにやってみたのだが、skkdic-e…

「履歴を絞りこみながら正規表現で検索する。」を使ってみた

deruiの日記id:deruiによるzshの履歴をインクリメンタルに正規表現検索するzshスクリプト。インクリメンタル検索だの絞り込み検索だのと聞いてすぐに飛び付くのがanything脳のサガというもの。 ナイスアイデア!!キーをおすたびに勝手に絞り込まれていくのがa…

餅は餅屋

editorinjection - 接続法第三式 w3m を使っていると, textarea などに対して sensible-editor として nano が呼び出される. nano 自体はあまり好みではないのだけど,この仕組みは非常に優れていると思う. そう。俺はgnuclientを指定しているが、w3mにEm…

Linux ALSA環境で音声出力を強引に録音する設定

Linuxでプログラムの音声を保存する場合、OSSならばvsoundというプログラムがある。しかし、ALSAには対応していない。 ALSAでスピーカー出力を音声ファイルに保存するには、 ~/.asoundrc で以下の設定を書く。pcm-fileプラグインについてはALSA project - th…

sleep-until - 特定の時刻まで待ち続けるRubyスクリプト

特定の時刻にコマンドを実行するには、cronやatがある。一定時間待つにはsleepがある。 特定の時刻まで待つコマンドがわからなったので、速攻でRubyで書いてみた。こんなのはぐぐるよりも書くほうが早いので。 #!/usr/bin/env ruby require 'time' time = Ti…

gnuserv/gnuclientとemacsserver/emacsclientの違い

俺は昔からgnuserv/gnuclientを使ってきたが、Emacs23になったら、multi-ttyもあることだし乗り換えようと思っていた。しかし…カレントバッファが常にサーバのバッファで実行されるため、「現在の」カレントバッファを取得してくれない。 Emacs23だとmulti-t…

gnuservを自動で再起動させる方法

俺はEmacs23になってもいまだにgnuserv/gnuclientを使っている。しかし、なにかのひょうしでgnuservが落ちて「Gnuserv process exited; restart with `M-x gnuserv-start'」と出てきてしまい、落ちたままになっている。そうなると、gnuclientが動かなくなり…

DSLでコマンドラインオプションを解析するchoice.rb

yasnippet.elについて調べていたら、おもしろいライブラリをみつけたので紹介。choiceというライブラリは、コマンドラインオプションを解析するDSL、いわばoptparseのDSL版と考えることができる。 使用例はこんな感じ。 明白すぎてコードのコメントは不要だ…

Emacs Lispで関数定義を置き換える方法

Emacs Lispでは、気に入らない関数呼び出しを別な関数に置き換えることができる。たとえば、今のウィンドウに表示してほしいのに内部で switch-to-buffer-other-window を呼んでいる場合とか。 こんな場合は、letfやfletやlabelsを使えばよい。letにはlet*と…

Emacs23のmulti-ttyを試すもtty版の背景色が邪魔な件

Emacs23の目玉機能にmulti-ttyがある。 「emacs --daemon」でEmacsデーモンを起動しておくか、 (server-start) でサーバを立ち上げておくことで、起動中のEmacsにアクセスできるようになる。emacsclientコマンドを使う。 emacsclientコマンドは前からあった…

Emacs23のrcircの設定(非互換注意)

Emacs23へ移行したのだが、設定が非互換になってしまったので動かなかった。 Emacs23ではrcirc-server-alistを設定するとよい。サーバが127.0.0.1なのはtiarraを使っているため。 (setq rcirc-server-alist '((;;サーバ "127.0.0.1" ;;デフォルトで加入する…

EmacsWikiのページのSubversionリポジトリを使う

Alex Schroeder: 2009-08-30 Emacs SubversionEmacsWikiのページがSubversionで管理されるようになった。 なので、ローカルに置いてgrepかければいろいろなものが引っ掛かるだろう。 UTF-8ロケールでないと動かないので、環境によっては LC_ALL=ja_JP.utf8 …