「anything.el」タグアーカイブ

Emacsで読みたい日本語infoとinfoの便利な使い方

電子書籍の流行による若者のinfo離れが著しい今日この頃、いかがお過ごしでしょうか。こんにちわ、myuhe a.k.a 最近欲しいのはinfoリーダー機能つきkindle です。
さて、infoとはGNUプロジェクトで用いられているドキュメント形式です。Emacsではinfoリーダーとしての機能が標準で備わっていて、infoモードで快適にinfoを見ることができます。くだらない会議中などに、こそっと見るのにもってこいです。
infoは当然読み物としても使えますが、使い方によってはリファレンスとして使うこともできます。むしろこっちの方が強力で、独自のヘルプシステムを作っていくことができます。
というわけで、今回は半ば趣味的に収集しているinfoファイルとちょっと便利な使い方を紹介してみたいと思います。

Emacs関連info

さすがにいろいろな文書が日本語訳されてます。
Emacs 電子書棚
いつもお世話になっている電子書棚さん。Emacsリファレンスマニュアルを始め、Emacs関連の様々なドキュメントの日本語訳が公開されてます。
Emacs-Lisp without a Hustle
優しいEmacs-Lisp講座として書籍にもなった文書が一部ではありますがtexinfoで公開されています。ありがたいです。
cl.texiの日本語訳:okshirai:So-netブログ
Emacsのためのより優れたLisp対話モード:okshirai:So-netブログ
CLパッケージマニュアルの日本語訳、CommonLispの開発環境であるSLIMEマニュアルの日本語訳を公開されています。

プログラミング言語関連info

こちらも、いろいろと日本語訳されてます。ただ、新しい言語などはそもそも英文のtexinfoさえもなかったりしますね。info離れか。。。
Python 和訳ドキュメント
Python2.5のドキュメントがすでにinfoに変換までされて公開されてます。PythonってEmacsとの繋がりが薄い気がしていたので、ちょっと意外。
Perl Japanese Manual
Perl5のドキュメントが公開されてます。
RAA – Documentation / Texinfo
Rubyも1.4のドキュメントが公開されてます。
統計言語 R の関連ドキュメントの和訳(最終変更 2003/06/23)
Emacsの利用がはげしく推奨されているRでも諸々のドキュメントがtexinfoで公開されていて一部が日本語訳されています。とてもありがたいです。
Gauche – A Scheme Interpreter
Scheme処理系であるGaucheもダウンロード先のdocディレクトリにtexinfoが入っているみたいです。

ツール関連info

CVS Repository
GNUプロジェクトで開発されたツールのドキュメントも日本語訳が公開されています。
KI’s Unofficial GNU Manual Translation Project
GCJやflex等のツールのマニュアル日本語訳が公開されています。
こちらも最近のツールはtexinfoがないようです。個人的には英文でも良いのでgitとmercurialのtexinfoが欲しいです。

Windowsユーザの方であれば、Meadowにはすでに日本語infoが大量に登録されてあります。まずはそっちを見てみてもいいかもしれません。
texiからinfoに変換するのがめんどくさいという方はそちらから持ってきた方が早いかもしれません。

info+.elでinfoを読みやすく

素のinfoでも十分読みやすいのですが、少し素気ない感じです。info+.elというelispを導入すれば、文字列や関数部分が色付けされて少し華やかになります。
また、簡易な栞機能もあるみたいです。auto-install.elがインストールされていればM-x auto-install-from-emacswikiとして、info+.elと入力して.emacsに以下のとおり書いておけば良いです。

anything.elからinfoを引いてみる

infoを見る環境はデフォルトで十分なので、次はリファレンスとしての機能を強化してみます。標準のanythingでもEmacs Lisp限定でinfoを引く機能は備わっています。今回は日本語でinfoが引けるようにします。上で紹介したEmacs Lisp関連の日本語infoを登録してから以下のスクリプトを.emacsあたりに追加しておきます。

ついでにPythonのリファレンスも引けるようにしてみます。同じように日本語infoを登録しておきましょう。

関数の引数の順番忘れたーとか、ちょこちょこした調べ物の時にサクッと調べられるので、なかなか便利です。

まだまだこんなinfoあるよーとか、info情報お持ちの方いましたら、教えてもらえるとすごく嬉しいです。

anything-gist.elをちょこっと修正した

こないだ書いたanything-gist.elですが、いろいろとボロボロだったので修正を加えました。
インストールとかは、前回の日記を御参考のこと。
Emacs上でgistを編集して、サクッと更新するためのanything-gist.el

まず、gistからダウンロードした時のコードが文字化けしていた問題
これは、これまで使っていたurl-retrieveから、wgetでダウンロードするようにして対処。

次に、anything.elで表示される候補が、これまではgistのIDだけだったんですが、IDだけだとさすがに中身との対応がつけにくく、探す気も起きなくなってたので、IDとdescriptionを併記するようにしてみました。これでだいぶましになってきたかも。
まあ、他にも修正したいところはあるんですけど、今回はここまで。eLispの勉強と平行してちょこちょこ修正していきます。

うーん、そろそろgistからgithubなりbitbucketなりに上場させた方が良いかな

Emacs上でgistを編集して、サクッと更新するためのanything-gist.el

最近、ちょこちょことしたものやメモ書きのようなものは、全部gistにポストしてます。gitの知識がなくても使えるのでとてもお手軽です。

Emacsであれば、gist.elを入れておくことで、Emacsからポストできるようになるので更に便利。しかも最近のバージョンアップでは、ポストするだけでなく自分のgistをリスト表示できるようになりました。
defunkt’s gist.el at master – GitHub
ただ、すごく残念な事にすでにあるgistをEmacs上で編集して更新することができません。というか、編集するAPIがないようです。
だからといって、ブラウザの中で編集するのも億劫なので、どうにかして更新できるようにしてみました。

インストール

使うには、まずanything.elとgist.elが必要になります。事前に設定しておきましょう。
EmacsWiki: Anything
それと内部でgitコマンドを使ってます。入れておきましょう。
Git – Fast Version Control System

そしたら、anything-gist.elをロードパスの通ったところに置いておきます。auto-install.elをインストールしていれば、M-x auto-install-from-gist として 467982 というIDを入力すればインストールできるはずです。
後は.emacsなどに(require ‘anything-gist)と書いておけば、終了です。ソースコードも貼っておきます。

ちなみに、ソースコードを見ていただくとわかると思いますが、シェルコマンドを多用しているため、Win環境では動作しません。どうにかしたら動くかもしれませんが、僕は知りません。ごめんなさい。

使い方

M-x anything-for-gistとすると、anythingのインターフェイスでgist IDのリストが表示されます。アクションの中からviewを選ぶとgistの中身が表示されるはずです。この時アクションをeditにしておくとローカルに一時的に保存されたファイルが開きます。後はごにょごにょ編集。編集が終わったら、C-c C-sとします。保存された後に変更内容が更新されるはずです。

その他

gistはID番号で管理されているため、リスト表示してもどこに何のコードが入っているか、よくわかりません。
そんな時はC-zやC-c C-fなどでpersistant actionをオンにしてから見ると良いかもしれないです。
我ながら、かなりぐだぐだな感じのところも結構あります。変なところあったら教えてもらうと大喜びします。

Rのためのanythingインターフェイス、anything-R.elを作った。

anything.elはあまりにも便利すぎるのですが、便利すぎてなんでもかんでもanythingしていると探すのに時間がかかったりしてきて効率が落ちてきます。
シチュエーションによって、使いわけると効率あがるかも、と思って書いてみました。
と言っても新しく書いたところはほとんどなくてEmacs wikiや以前書いたanything-sourceをパッケージングしただけです。それでもちょっとは便利になった気がします。

今回、書いたものはEmacs wikiに置いてます。

EmacsWiki: anything-R.el

Emacs wikiデビューです。なので、auto-install.elなどをすでに導入されている人はM-x install-elisp-from-emacswiki anything-Rすればすぐ落せます。そうでないって人は、落としてきたファイルをロードパスの通った所に置いておけば良いです。後は.emacsあたりに(require ‘anything-R)とすればOK。僕はすぐ起動したいので次のようにキーバインドを当てています。

[cpp]
(define-key ess-mode-map "C-cr" ‘anything-for-R)
(define-key inferior-ess-mode-map "C-cr" ‘anything-for-R)
[/cpp]

実行すると、四つの候補が出てくるはずです。
`anything-c-source-R-help’ (関数やオブジェクトのヘルプやソースの閲覧)
`anything-c-source-R-local’ (オブジェクトのヘルプとかhead)
`anything-c-source-R-localpkg’ (インストールしたパッケージをlibrary()したり、削除したり)
`anything-c-source-R-repospkg’ (tsukubaサーバにあるパッケージをインストール)

こいつらを駆使するといろいろと便利なのですが、全部書くと大変なので以前書いていた使い方を参考にしてみてください。

これからEmacsでR使う人のための設定まとめ
anything.elのインターフェイスを使ってRのパッケージを管理するanything-c-source-R-pkg

anything-sourceのリストはdefcustomで定義しているので、M-x customize-group で anything-Rとすればオリジナルのリストを定義できます。
ソースを追加したり削除したりしたい時なぞお好みでどうぞ。

というわけで enjoy Emacs and R!!

anything.elのインターフェイスを使ってRのパッケージを管理するanything-c-source-R-pkg

Rは膨大なパッケージを持っていて、その数は今日現在で2238にのぼります。Rができてまだ15年そこそこだということ,統計解析に特化した言語だということを考えれば、いかにこの数がすごい数かということがわかると思います。
Rがここまで爆発的に普及した理由として非常に優れたパッケージ管理システムとドキュメントシステムがあります。
コマンドひとつでパッケージのインストールからアンインストール、アップデートからロードまで自在にできます。
それらパッケージで提供される関数には詳しいドキュメントがついていて、さらにはサンプルデータから実際に実行可能な実行例まで至れりつくせりのドキュメントがこれまた簡単なコマンドで閲覧や実行ができてしまいます。
ただ、ここまで増えてくると、困ったことも。パッケージを探すのがめんどくさいのです。ま、探せばいいんですけどね。探せば。
ただ2000もパッケージがあると,後発のパッケージはどうしても名前の文字数が多くなってきます。多くなってくるとくだらないtypoも増えてさらにイライラします。
といっても名前が重複することは当然できないのでこの傾向は悲しいかな、これからもっと続くわけです。
あーいやだ。こんなめんどくさいことはどうかしないといけません。

曖昧な記憶でどうにかしたい

要は曖昧な人間の記憶でもどうかしてくれればいいわけです。こんなときに便利なのがauto-complete-acr.el。とりあえず最初の何文字かを思いだせばぽんぽん補完してくれます。しかし、インストールされてないパッケージはauto-complete-acr.elでもお手あげです。auto-complete-acr.elは内部でbaseとロードされているパッケージなどから補完候補を生成するようになっているので、インストールされていないパッケージの関数を補完することができないのです。
というわけで、新しく書いてみました。今回はEmacserならば知らない人はいないであろうanything.elの力を借ります。

準備

まず、事前の準備。何をいまさらですが、anything.elが必要です。
EmacsWiki: anything.el
EmacsWiki: anything-config.el

それとESSが必要になります。
Emacs Speaks Statistics

次に今回書いたelispを.emacsにコピペしときます。スクリプトはgistにも置いてます。
gist: 327649

[cpp]
(defun anything-ess-marked-install (candidate)
(dolist (i (anything-marked-candidates))
(ess-execute (concat "install.packages("" i "")n") t)))

(defun anything-ess-marked-remove (candidate)
(dolist (i (anything-marked-candidates))
(ess-execute (concat "remove.packages("" i "")n") t)))

(setq anything-c-source-R-localpkg
‘((name . "R-local-packages")
(init . (lambda ()
;; this grabs the process name associated with the buffer
(setq anything-c-ess-local-process-name ess-local-process-name)
;; this grabs the buffer for later use
(setq anything-c-ess-buffer (current-buffer))))
(candidates . (lambda ()
(let (buf)
(condition-case nil
(with-temp-buffer
(progn
(setq buf (current-buffer))
(with-current-buffer anything-c-ess-buffer
(ess-command "writeLines(paste(”, sort(.packages(all.available=TRUE)), sep=”))n" buf))

(split-string (buffer-string) "n" t)))
(error nil)))))

(action
("load packages" . (lambda(obj-name)
(ess-execute (concat "library(" obj-name ")n") t )))
("remove packages" . (lambda(obj-name)
(ess-execute (concat "remove.packages("" obj-name "")n") t)))
("remove marked packages" . anything-ess-marked-remove))
(volatile)))

(setq anything-c-source-R-repospkg
‘((name . "R-repos-packages")
(init . (lambda ()
;; this grabs the process name associated with the buffer
(setq anything-c-ess-local-process-name ess-local-process-name)
;; this grabs the buffer for later use
(setq anything-c-ess-buffer (current-buffer))))
(candidates . (lambda ()
(let (buf)
(condition-case nil
(with-temp-buffer
(progn
(setq buf (current-buffer))
(with-current-buffer anything-c-ess-buffer
(ess-command "writeLines(paste(”, rownames(available.packages(contriburl=contrib.url("http://cran.md.tsukuba.ac.jp/"))), sep=”))n" buf))
(split-string (buffer-string) "n" t)))
(error nil)))))
[/cpp]

.emacsに設定を書いておきます。僕は次のように書いています。

[cpp]
(require ‘ess-site)

(require ‘anything-config)
(define-key global-map (kbd "C-;") ‘anything)

(setq anything-sources
‘(anything-c-source-buffers+
anything-c-source-imenu
anything-c-source-emacs-commands
anything-c-source-file-name-history
anything-c-source-locate
anything-c-source-man-pages
anything-c-source-occur
anything-c-source-recentf
anything-c-source-R-local
anything-c-source-R-help
anything-c-source-kill-ring
anything-c-source-R-localpkg
anything-c-source-R-repospkg
))

(setq anything-idle-delay 0.3)
(setq anything-input-idle-delay 0.2)

(define-key anything-map (kbd "C-p") ‘anything-previous-line)
(define-key anything-map (kbd "C-n") ‘anything-next-line)
(define-key anything-map (kbd "C-v") ‘anything-next-source)
(define-key anything-map (kbd "M-v") ‘anything-previous-source)
[/cpp]

使い方

M-x Rとしたら、ふつーにanythingバッファを開くだけです。
するとR-local-packagesとR-repos-packagesのふたつがでてくるはずです。 名前からだいたい推測がつくかもしれませんが、前者がすでにインストールしているパッケージのリスト、後者がインストールしていないパッケージのリストです。
R-local-packagesでは、デフォルトの動作はパッケージの読みこみになっています。
他にもアクションが設定されていて,アンインストールもできるようになってます。C-spaceで複数のパッケージを選択して一気に削除することもできます。
R-repos-packagesでは、デフォルトの動作はパッケージのインストールです。
こちらも複数のパッケージを選択することで複数のパッケージをインストールすることができます。

まとめっぽい何か

いかがだったでしょうか。そんなに長くないスクリプトですが、 効果は抜群だと思います。こういう便利な機能がさくっと書けるのもEmacsの良いところですよね。
ただ、ちょっと問題があって、どうやらproxy経由だとうまくいかないみたいです。いい解決方法あったら教えてください。
それと、上のスクリプトでは、筑波大のサーバからインストールするようにしてます。
サーバの設定を削ればサーバを選択するダイアログが開くようになるのでサーバは自分で選びたいという方はそっちの方がいいかもしれません。

今週の気になるアレFebruary 10th

twitter (feed #2)
日記書いた-> 今週の気になるアレFebruary 3rd http://bit.ly/98Mleq [myuhe]
delicious (feed #4)
twitter (feed #2)
やっぱ、softbankのandroidはHTCのBravoくさいな。 [myuhe]
twitter (feed #2)
Bravoでもいいんだけど、joystickって何よ。いや、何よっ、て名前がですね。。。 [myuhe]
twitter (feed #2)
改めて、Rについて学ぶ。と言っても主に歴史。 [myuhe]
twitter (feed #2)
S言語が生まれたのはベル研。ベル研といえばUNIX。逆にMITといえばLISP。にもかかわらずS言語はLISPの影響を多分に受けていると。 [myuhe]
twitter (feed #2)
当時のベル研のLISPってどういう存在だったんでしょうねー [myuhe]
twitter (feed #2)
とかいうことをムラムラ、と考えていた。 [myuhe]
twitter (feed #2)
んで、Rが生まれたのはニュージーランド、文化圏すらわからん。 [myuhe]
twitter (feed #2)
RT @anekos: Bravo Joystick!! [myuhe]
twitter (feed #2)
まぢですか!! なんという恵まれた環境。。。RT @wakuteka: @myuhe ニュージーランドは小学校から統計やるんですよねたしか [myuhe]
twitter (feed #2)
来世、生まれ変われるならニュージーランドの羊になりたい。 [myuhe]
twitter (feed #2)
未年だし、動物占いも羊だし。sheepheadだし。あ、sheepheadは魚だけど。 [myuhe]
twitter (feed #2)
合コンで、趣味は統計です、とか行ったら永遠に婚期など来ないので注意して下さい。 [myuhe]
delicious (feed #4)
googlereader (feed #6)
twitter (feed #2)
あー、joystickすんげ気になる。残念な感じになってたら悲しすぎる。なんで無難にトラックボールにしなかったんだ。 [myuhe]
twitter (feed #2)
あ、もしかしたらThinkpadのトラックポイントな感じなのか?そうなのか? [myuhe]
twitter (feed #2)
トラックポイントが付いたandroid機 [myuhe]
twitter (feed #2)
理想のガジェットだな。 [myuhe]
twitter (feed #2)
木村カエラはサクサク時代が全盛期だったと今でも信じてる。 [myuhe]
twitter (feed #2)
あの時のかわいさは半端なかった。 [myuhe]
googlereader (feed #6)
googlereader (feed #6)
delicious (feed #4)
delicious (feed #4)
delicious (feed #4)
googlereader (feed #6)
delicious (feed #4)
twitter (feed #2)
RT @syou6162: RT @nozma: R最速ナントカカントカはないの [myuhe]
twitter (feed #2)
import ganbare!! RT @tkf: RT @hnz: ふと .bashrc を見ていたら alias sinitai=’echo ganbare’ という記述があった。しにたい。 [myuhe]
twitter (feed #2)
明日の#KPFで話すネタをgistに貼っといた。やっぱgist.el便利っすわ。"gist: 295829 – GitHub" – http://j.mp/9NGQ8U [myuhe]
twitter (feed #2)
明日の午前中は、不動産で物件紹介してもらわないといかんしな。結構タイトだ。 [myuhe]
twitter (feed #2)
#KPFの会場でお昼ご飯ちう [myuhe]
twitter (feed #2)
vimpユーザに初遭遇 [myuhe]
twitter (feed #2)
#KPFの二次会から帰宅。 [myuhe]
twitter (feed #2)
#vimperatorが恐らく二人はいた。!!KeySnailは多分僕だけ。というか、Emacsユーザが二人しかいない時点で云々。 [myuhe]
twitter (feed #2)
Emacsユーザは二人。スモーカーに至っては僕だけ。ことごとくマイノリティ。 [myuhe]
twitter (feed #2)
サーバいぢる人とかのお話だと、デフォルトでEmacsが入ってないというのがおっきいみたいですね。。。@stillpedant [myuhe]
twitter (feed #2)
あ、でもandroidはホットだったな。JAVAの評判はすこぶる悪かったけど。 [myuhe]
twitter (feed #2)
それと、僕以外でEmacsをエマックスと呼ぶ人がいた。僕の場合は脳内変換かけてどうにかイーマックスって言ってたけど。 [myuhe]
twitter (feed #2)
みんな、なぜLISPに魅了されるんだろう。あの括弧の中には言霊みたいなものが入ってるのかもしれない。 [myuhe]
twitter (feed #2)
家を建てることと、木を植えることって似てるよな。 [myuhe]
twitter (feed #2)
昨日乗り捨てたバイクを取りにいかねば。 [myuhe]
twitter (feed #2)
妹がカナダに永住するとかいい始めた。 [myuhe]
googlereader (feed #6)
googlereader (feed #6)
googlereader (feed #6)
twitter (feed #2)
RT @valvallow: 功殻機動隊の元ネタ http://ff.im/-fzfLz [myuhe]
googlereader (feed #6)
googlereader (feed #6)
twitter (feed #2)
もらいもののふりかけ、早くも残り5割きった。悲しい。 [myuhe]
twitter (feed #2)
myuheさんは三国志では『張松』です。 by Twitter三国志 http://bit.ly/aaJVgA [myuhe]
twitter (feed #2)
髪切った。やっぱ短髪が一番。 [myuhe]
twitter (feed #2)
Googleの検索結果でsocial circleとかいうのでtwitterの中とか検索されてんだけど、前からそうだったっけ? [myuhe]
twitter (feed #2)
うーん。ニトリのソファ、安いけど評判悪いな [myuhe]
twitter (feed #2)
これ聴いてる-> ala – Room82 [myuhe]
twitter (feed #2)
やっぱ、ソファ無印が無難なような気してきた。セットで買うと15%引きみたいだし。 [myuhe]
twitter (feed #2)
これ聴いてる-> Nujabes – reflection eternal [myuhe]
lastfm (feed #3)
7 曲を聴きました。
googlereader (feed #6)
twitter (feed #2)
RT @stillpedant: 感動した。これだから Emacs はやめられない。 RT @_kawaguchi: 選択範囲と同じ文字列を一括編集するアレ。textmateの動画でよく見るやつだ! http://bit.ly/cljqWD #emacs [myuhe]
googlereader (feed #6)
googlereader (feed #6)
googlereader (feed #6)
googlereader (feed #6)
twitter (feed #2)
RT @rubikitch: *anything*バッファのかわりにpopup.elで候補を表示させるのってアリかな?auto-complete派にもanything.elを使ってもらえるきっかけになるかなー [myuhe]
twitter (feed #2)
おめでとうございます!! RT @shunsuk: なんか、誕生日らしいです。 – 医者を志す妻を応援する夫の日記 http://d.hatena.ne.jp/shunsuk/20100209/1265720568 [myuhe]
twitter (feed #2)
なかなかに楽しいですな。iedit.el "iedit mode V0.5 – new way of replace-string" – http://j.mp/dm9J28 [myuhe]
twitter (feed #2)
(interactive"r")だとリージョン選択してないと怒られるので一部書き直してみた。"gist: 299199 – GitHub" – http://j.mp/bsHz5S [myuhe]
twitter (feed #2)
とかやって、Emacsいぢって今日も現実逃避するんだなーーorz [myuhe]

今週の気になるアレFebruary 3rd

googlereader (feed #6)
googlereader (feed #6)
twitter (feed #2)
今日はもらいもののラーメンが晩ご飯。うまし。 [myuhe]
delicious (feed #4)
twitter (feed #2)
ラーメンフイタ RT @shunsuk: プログラマーが覚えておくべき10の英語フレーズ – 医者を志す妻を応援する夫の日記 http://d.hatena.ne.jp/shunsuk/20100127/1264587276 [myuhe]
googlereader (feed #6)
twitter (feed #2)
うちのWinはituneOSと化している。。。 RT @phyten: とにかくAppleはLinux用のitunesを開発してください。いちいちwindowsをつけるのは面倒でかなわん。 [myuhe]
twitter (feed #2)
お、#KPFが復活しとりますな [myuhe]
twitter (feed #2)
うーん。誰か発表するんだろか。。。#KPF [myuhe]
twitter (feed #2)
ま、いいか。#KPFのLTに申し込みしたったー [myuhe]
twitter (feed #2)
興味ある人いるか怪しいですが、Rのお話する予定です。"KPF第五回勉強会 (Kumamoto Programming Freaks)" – http://j.mp/9RMwsv [myuhe]
twitter (feed #2)
ガンバレWine!! RT @stillpedant: うちも。 RT @myuhe: うちのWinはituneOSと化している。。。 RT @phyten: とにかくAppleはLinux用のitunesを開発してください。いちいちwindowsをつけるのは面倒でかなわん。 [myuhe]
delicious (feed #4)
twitter (feed #2)
linus君ですか。。。 [myuhe]
twitter (feed #2)
おーtokyoR [myuhe]
twitter (feed #2)
やっぱ、いいなー関東圏。 [myuhe]
twitter (feed #2)
見学ちう。RT @syou6162: ust ktkr RT @nokuno: ustreamテスト http://bit.ly/agvo0c #TokyoR [myuhe]
twitter (feed #2)
Macユーザ多いねー [myuhe]
twitter (feed #2)
RT @wakuteka: #TokyoR @yokkuns さんと akiaki5516 さんが作ったよ → Yahoo! ファイナンスから、時系列データの取得をするRパッケージ – http://code.google.com/p/rfinanceyj/downloa … [myuhe]
twitter (feed #2)
すげ。 RT @wakuteka: #TokyoR @yokkuns さんと akiaki5516 さんが作ったよ → 時系列データの取得をするRパッケージ – http://code.google.com/p/rfinanceyj/downloads/list [myuhe]
twitter (feed #2)
正規表現ですか。。。 [myuhe]
twitter (feed #2)
気合があれば、なんでもできるな。 [myuhe]
twitter (feed #2)
途中で絶対めげて、RPyでいいやってなる事後確率がかなり高そう。 #TokyoR [myuhe]
twitter (feed #2)
Rcurlとか使ってんのかな #TokyoR [myuhe]
twitter (feed #2)
あーあ、終わっちゃった。。。 [myuhe]
twitter (feed #2)
ruby埋め込みとかできるんすか? RT @syou6162: Rにruby埋め込んでyahooファイナンスから抜いてくるとかやった記憶が(ry [myuhe]
twitter (feed #2)
あーびっくりした。rubyならさもありなん、とか思った。 [myuhe]
twitter (feed #2)
あ、でもRSrubyみたいなのがあったような。 [myuhe]
twitter (feed #2)
そっか。Rからは呼べんのですね。ま、確かにpasteでも呼んでは、、、いるか。 RT @syou6162: @myuhe あれはrubyでRを、ですよね。こっちはRでrubyを、です!!!!!!!!1111 [myuhe]
twitter (feed #2)
www RT @syou6162: @myuhe だ、誰にだってR中二病な時期がですね、、、 [myuhe]
twitter (feed #2)
てことで、#KPFのRネタを今から書いてみる。 [myuhe]
twitter (feed #2)
これ聴いてる-> SOIL&"PIMP" SESSIONS – KEIZOKU [myuhe]
delicious (feed #4)
twitter (feed #2)
easy_installでアップデイトではダメなのかしらん RT @tkf: 再インストールかなあ.pythonのモジュールって新しいやつで上書きして平気なのだろうか... [myuhe]
lastfm (feed #3)
13 曲を聴きました。
twitter (feed #2)
これ聴いてる-> FACT – this is the end [myuhe]
twitter (feed #2)
あら。。。そんときは手力で消してました。もしかしたらしなくていいのかもしれないですけど。RT @tkf: @myuhe setup.py (distutils) で入れたやつだとどうなんでしょう. easy_install で入れておけば良かった... [myuhe]
twitter (feed #2)
あ、でもpacoはLinux限定なんだけど。。。 [myuhe]
twitter (feed #2)
お、スカパラの新譜楽しみ! クリスタルケイってどうなるんやろ。"スカパラ、新アルバムのゲストボーカル2名を発表 ニュース-ORICON STYLE-" – http://j.mp/bWnBzT [myuhe]
twitter (feed #2)
日記書いた-> 今週の気になるアレJanuary 27th http://bit.ly/dA9hBQ [myuhe]
googlereader (feed #6)
googlereader (feed #6)
twitter (feed #2)
今から、相方殿のお宅でメンチカツ食す。 [myuhe]
twitter (feed #2)
オヤジがPocket WiFiってどうお?とか言い出したすまん、うちにはふつーのWiFiすらない。 [myuhe]
twitter (feed #2)
絶対、いやがらせだ。 [myuhe]
googlereader (feed #6)
googlereader (feed #6)
googlereader (feed #6)
twitter (feed #2)
飲みたくもない飲み会から帰宅。 [myuhe]
twitter (feed #2)
ま、それでもそこそこ楽しく飲める俺すごい、と自分で思う。 [myuhe]
twitter (feed #2)
これ聴いてる-> FACT – this is the end [myuhe]
lastfm (feed #3)
lastfm (feed #3)
2 曲を聴きました。
googlereader (feed #6)
delicious (feed #4)
delicious (feed #4)
delicious (feed #4)
delicious (feed #4)
delicious (feed #4)
delicious (feed #4)
delicious (feed #4)
delicious (feed #4)
delicious (feed #4)
delicious (feed #4)
delicious (feed #4)
delicious (feed #4)
delicious (feed #4)
googlereader (feed #6)
delicious (feed #4)
googlereader (feed #6)
twitter (feed #2)
不動産屋見て回ってきた。どこ引っ越すか悩む。 [myuhe]
delicious (feed #4)
twitter (feed #2)
これ聴いてる-> FACT – this is the end [myuhe]
lastfm (feed #3)
6 曲を聴きました。
googlereader (feed #6)
delicious (feed #4)
Shared My Library.
googlereader (feed #6)
googlereader (feed #6)
delicious (feed #4)
delicious (feed #4)
twitter (feed #2)
日記書いた-> anything.elで縦分割、横分割をトグりたい。 http://bit.ly/9VTWYz [myuhe]
delicious (feed #4)
googlereader (feed #6)

anything.elで縦分割、横分割をトグりたい。

anything.elは、いろんなソースを絞り込みできるのが魅力。いろいろなソースをまとめて見られるようにanythingバッファはデフォルトで左右に画面分割するように設定してます。

[cpp]
(defun my-horizontally-split-window (buf)
(delete-other-windows)
(split-window-horizontally)
(funcall (if anything-samewindow ‘switch-to-buffer ‘pop-to-buffer) buf))
(setq anything-display-function ‘my-horizontally-split-window)
[/cpp]

こうすると候補の一覧性が増すので、すごく気持ちが良いです。ただ、anythig-c-moccurのような各候補の文字数が多くなると、左右に分割すると改行ばっかりはいってすこぶる見にくい。そういうときは、上下に分割したい、とか思います。
そこは、さすがぬかりないanything。anythigのRevision1.239からanything-toggle-resplit-windowなる関数が追加されてるようです。これでグルングルントグれるようになります。
EmacsWiki: anything.el

元々はgrandVinさんのelispがベースになっているんだと思います。
[emacs][anything] anything-windowの動的縦横再分割とサイズの変更 – プログラム番長のヲボエガキ
デフォルトではキーバインドがC-tに設定されているようですが、生憎他の関数にあててしまっているので使えません。ということで別のキーにあてることに。ついでに anything-c-moccurでもトグれるようにしておきます。

[cpp]
(define-key anything-map "C-j" ‘anything-toggle-resplit-window)
(define-key anything-c-moccur-anything-map "C-j" ‘anything-toggle-resplit-window)
[/cpp]

快適anythingライフがさらに快適になりました。

Firefoxでタブをanythingっぽく操作するKeySnailプラグイン、Tanythingをリリースしました。

ネットブックがちょっとしたブームになってモバイルPCもだいぶ市民権を得ましたね。
何を隠そう、僕もちっちゃこいPCが大好物です。PCなんて必要ない出張でもなぜかPCをカバンに入れてしまいます。
そういうときにイライラするのが画面の小ささ。なので、Firefoxでもできるだけ画面を大きく使えるようにツールバーとかはあまり表示しないようにしてます。
でも、いまだに消せてないのがタブバー。特にガンガンタブを開いていく方なので、かなり画面を圧迫してきます。あー邪魔だなーー
というわけで、今回はタブバーを消すべくタブをEmacsちっくに操作できるようにしてみたいと思います。

Tanythingとは

Tanythingは、タブを操作するKeySnailプラグインです。KeySnailについては、これまで何回か書いてきているので、次の記事を見てもらうといいと思います。


KeySnailでは、prompt.readという機能があります。これはEmacsのanything.elの単一ソース版のようなものです。
Tanythingでは、このprompt.read機能を使って作ってます。anything脳な人には、Firefoxで使えるanything-c-source-buffersというとわかりやすいかもしれません。
実際に立ち上げたときの画面はこんな感じです。
まず、KeySnailをインストールした後で、githubからTanything.ks.jsをインストールしてください。
myuhe’s KeySnail_Plugin at master – GitHub
Tanything

いろいろなアクション

タブを選択した時にCtrl + i キーを押すことでいろいろなアクションを選択できます。これもanythingっぽい機能のひとつですね。
●このタブを開く。
デフォルトの動作です。
●このタブを閉じる。
そのままです。
●左のタブをすべて閉じる
選択したタブの左側にあるタブをすべて閉じます。
●右のタブをすべて閉じる
選択したタブの右側にあるタブをすべて閉じます。
●他のタブをすべて閉じる
選択したタブ以外のタブをすべて閉じます。
●同じドメインのタブをすべて閉じる
選択したタブと同じドメインのタブをすべて閉じます。
●タイトルとURLをHTMLタグ付きでクリップボードにコピー
選択したタブのタイトルとURLをhrefタグつきでクリップボードにコピーします。ブログとか書くときに便利だと思います。
●URLをHTMLタグ付きでクリップボードにコピー
選択したタブのURLをhrefタグつきでクリップボードにコピーします。

今後のバージョンアップ

アクションにいろいろ機能をつけていこうと思ってます。はてぶとかにブックマークできたりすると便利かもですね。他にこんなの追加してほしい、なのがありましたら教えてください。

おわりに

これをいれればとりあえずタブバー消しても良さそうです。また一つEmacsの環境にに近づきました。
ちなみにタブバーを消すには、userchrome.cssをいぢれば良いようです。詳しくは以下のサイトで。
userchrome.css – Mozilla Firefox まとめサイト
なお、このプラグインはussyさんのスクリプトを参考にさせてもらいました。
KeySnail で URL とタイトルからタブを検索するスクリプト – Ussy Diary(2009-10-04)

今週の気になるアレDecember 4th

twitter (feed #2)
日記書いた-> 今週の気になるアレNovember 27th http://bit.ly/7vbbvi [myuhe]
googlereader (feed #6)
twitter (feed #2)
RT @taiju: RTが標準実装されるとRTとfavの使い分けを考えないとだめだな。RTは公開ブックマーク、favは非公開ブックマークみたいな使い方になるかな。 [myuhe]
googlereader (feed #6)
googlereader (feed #6)
googlereader (feed #6)
googlereader (feed #6)
twitter (feed #2)
これ聴いてる-> Frontier Backyard – I Want You Back [myuhe]
googlereader (feed #6)
googlereader (feed #6)
googlereader (feed #6)
googlereader (feed #6)
twitter (feed #2)
今から、父親と飲む [myuhe]
twitter (feed #2)
帰宅ったー [myuhe]
twitter (feed #2)
若い女の子と飲めてうかれまくってたー [myuhe]
twitter (feed #2)
これ聴いてる-> Ala – Harmonic Groove [myuhe]
twitter (feed #2)
RT @shunsuk: iPhoneのTODO管理アプリを30本ほど試して、7本ほど紹介してみる。 – 医者を志す妻を応援する夫の日記 http://d.hatena.ne.jp/shunsuk/20091128/1259414501 [myuhe]
lastfm (feed #3)
7 曲を聴きました。
lastfm (feed #3)
2 曲を聴きました。
googlereader (feed #6)
Shared UndoTree.
twitter (feed #2)
Firefoxのキャレットってどーにかならんのか。細すぎてどこにあるのか全然わからん。 [myuhe]
twitter (feed #2)
これ聴いてる-> ala – Room82 [myuhe]
delicious (feed #4)
delicious (feed #4)
twitter (feed #2)
ありがとうございます!! RT @Griever2: @myuhe about:config で ui.caretWidth を 5 とかにして再起動すれば太くなりますよ [myuhe]
googlereader (feed #6)
twitter (feed #2)
RT @kuy: TortoiseHg 0.10 向けのオシャレ機能 (ファイル一覧に注目!) http://cdn.bitbucket.org/abuehl/thg-abuehl/downloads/thg-log-status-with-icons.png [myuhe]
twitter (feed #2)
とうとうヒートテックを買ってしまった。。。 [myuhe]
twitter (feed #2)
undo-tree.el使ってみた。Emacs内のバージョン管理みたいな感じ。これは結構便利かも。。。 [myuhe]
twitter (feed #2)
RT @gongoZ: 今日のボクシングの感想:SANKYO自重しる [myuhe]
googlereader (feed #6)
twitter (feed #2)
I just generated my #TweetCloud out of a year of my tweets. Top three words: wordpress, emacs, ubuntu – http://w33.us/w1r [myuhe]
twitter (feed #2)
これ聴いてる-> The Night Caps – Love You More [myuhe]
twitter (feed #2)
これ聴いてる-> GAGLE – 若き匠たちへ [myuhe]
twitter (feed #2)
これ聴いてる-> Frontier Backyard – turned back [myuhe]
twitter (feed #2)
これ聴いてる-> Rei Harakami – Owari No Kisetsu [myuhe]
twitter (feed #2)
朝焼けがもえているので [myuhe]
twitter (feed #2)
日記書いた-> KeySnail使ってFirefoxをw3mっぽく使いたい http://bit.ly/4qdNkn [myuhe]
delicious (feed #4)
googlereader (feed #6)
twitter (feed #2)
WinではNTEnacs派です。。。RT @phosphor_m: NTEmacsは人気ないのかな。てかMac率が高いのか。 [myuhe]
twitter (feed #2)
Meadowってインストールが面倒くさいし、枯れてるし。といいながらアイコンがもさいってのが使う理由だったりするわけで。。。 [myuhe]
twitter (feed #2)
これ聴いてる-> くるり – ばらの花 ~remixed by Rei Harakami [myuhe]
twitter (feed #2)
仕事早すぎです。てかど真ん中でほしかったです。RT @stillpedant: "vimp の caret-hint.js を keysnail プラグインに移植しました – リタマス" – http://tinyurl.com/ykf4g22 [myuhe]
twitter (feed #2)
これ聴いてる-> Steruss – 「尖」 feat. 鈴木勳 / bass & スガダイロー / piano [myuhe]
twitter (feed #2)
androidで遊びたいという邪な理由だけでjavaを勉強したいと思う今日この頃。 [myuhe]
twitter (feed #2)
今日も飲み会。やせる気がないのが本人も自覚できるというのはいかがなものか [myuhe]
twitter (feed #2)
これ聴いてる-> Rei Harakami – にじぞう [myuhe]
twitter (feed #2)
これ聴いてる-> ala – Quiet Ground [myuhe]
twitter (feed #2)
うーん。逆にMeadow使う理由ってあるんだろか。いろいろぱっけーじインストールできるのってそんなに便利ぢゃないような気するんだけど [myuhe]
delicious (feed #4)
googlereader (feed #6)
delicious (feed #4)
delicious (feed #4)
delicious (feed #4)
delicious (feed #4)
delicious (feed #4)
googlereader (feed #6)
googlereader (feed #6)
delicious (feed #4)
googlereader (feed #6)
googlereader (feed #6)
twitter (feed #2)
keysnailとかzshとかdotfilesの設定同期がめんどくなってきたのでbitbucketになげてやった。すっきり。 [myuhe]
twitter (feed #2)
www RT @stillpedant: HoK で HG の後に AF と打ち込まされた時は感心してしまったものです。 [myuhe]
delicious (feed #4)
delicious (feed #4)
delicious (feed #4)
lastfm (feed #3)
6 曲を聴きました。
twitter (feed #2)
undo-tree便利そうですよね。VCSちっくで@stillpedant [myuhe]
lastfm (feed #3)
12 曲を聴きました。
twitter (feed #2)
これ聴いてる-> 15-16-17 – Baby Love [myuhe]
twitter (feed #2)
これ聴いてる-> Soul Coughing – Rolling [myuhe]
googlereader (feed #6)
delicious (feed #4)
googlereader (feed #6)
delicious (feed #4)
delicious (feed #4)
delicious (feed #4)
delicious (feed #4)
delicious (feed #4)
delicious (feed #4)
delicious (feed #4)
googlereader (feed #6)
googlereader (feed #6)
twitter (feed #2)
うちにも来てました!! http://ow.ly/HLri  やっと熊本にもきたかー RT @mckosuke: 俺んちにGoogle来てたーー!http://tinyurl.com/ygx5ksm [myuhe]
twitter (feed #2)
鹿児島、宮崎よりは早かったか。でもなぜ長崎が先だったんだろ。 [myuhe]
twitter (feed #2)
というわけで、アナウンスしとこ。とうとう熊本にもストリートビューきたよーーーーーー [myuhe]
delicious (feed #4)
twitter (feed #2)
帰宅ーーー [myuhe]
twitter (feed #2)
ついでに今月のno買ってきた。自分が書いた文章をあらためて見るとかなりとんでもないこと書いてる。職場にばれたら多分大騒動になるな。 [myuhe]
twitter (feed #2)
undo-tree.elってなぜかdired-do-copyがつぶされるんだけど。。。バグかな [myuhe]
twitter (feed #2)
道づくりの陳情なんてしてどうなるってんだろう。他に作るものたくさんあるだろうに [myuhe]
twitter (feed #2)
ふと、思うところがあってNTEmacsを23.1にしてみた。移行はすんなりいったけど、ほとんど変わらない。ロゴが変わってないと多分気づかない。 [myuhe]
googlereader (feed #6)
googlereader (feed #6)
delicious (feed #4)
delicious (feed #4)
googlereader (feed #6)
delicious (feed #4)
googlereader (feed #6)
delicious (feed #4)
delicious (feed #4)
delicious (feed #4)
delicious (feed #4)
delicious (feed #4)