日記はScrapboxに移動しました。

  • auto-save-buffers-enhanced更新

    ,

    auto-save-buffers-enhancedなんてのを、以前作ったりしました。名前から察せられる通り、「Emacsでファイルの自動保存 (auto-save-buffers)」の機能拡張版というか、なんというか、まぁそんな感じのものです。具体的には、以下の機能を追加しています。

    1. 監視/無視対象ファイルの正規表現を複数指定できる
    2. cvs, svn, svk, gitといったヴァージョン管理システムの管理下にあるファイルのみを監視対象にすることができる

    auto-save-buffers-enhancedの、僕以外ではいまのところ唯一なのではないかと思われるユーザである、CLONのtypesterさんが、上記の2番目について、そういうのあるといいよねーとかいってた(「unknownplace.org – 2007/10/18 – こうだったらいいのに auto-save-buffers」)ので、作ったのでした。

    ところで最近、空前のgitブームが湧きおこったりしているのですが、auto-save-buffers-enhancedの以前のリヴィジョンでは、gitに対応していなかったりしたので、僕以外ではいまのところ唯一なのではないかと思われるユーザである、CLONのtypesterさんに対応を迫られたりしたので、ちょっとやってみたりしました(まぁ、僕はgitを未だにインストールすらしてないわけですがw)。ついでに、いろいろバグがあったので、修正したり

    そんなわけで、久々に更新したので、たまには過去の成果もageておきます。

  • Taskpaperもどきを作りかけて放置した記録

    ,

    ほとんどテキストエディタ | ZEROFACES」というエントリで知ったTaskpaperというタスク管理ツールが、シンプルの極みでいい感じかなーと思った。こういうの。

    んで、使ってみようかと思ったら、$18.95のシェアウェアだってんで、じゃあもうEmacsでやろうと思って久々にelispを書いたりしてたんだけど、そもそもEmacsにはその手のものは他にたくさんあるのだし、もっと問題なのは、僕自身にしてからが、タスク管理ツールを使いこなせたためしがないということであってみれば、元のTaskpaperは、タグとか、プロジェクトごとにタブで見ることができたりするけど、そこまで行く途中でやる気を失ったり……。単にちょっと、たまにはelispを書いてみたかっただけという気がする。

    とりあえずCodeReposに置いてあったりします。ごく単純なメジャーモードのサンプル的ななにか、みたいな。

    一応こんな。もすこしちゃんと作るかなーと思いつつ、というか、CodeReposにあるので、誰か……。

    これだけじゃなんなので、こんな感じの設定を書いてみた。`M-x taskpaper‘したら、新規フレームに今日の日付けのファイルを開きます。一日の始めにその日のtaskpaperを開いて、それを常に見える場所にでも置いておけば、なんかそれっぽい感じになるんじゃないかしら。そうでもないかしら、ね。

    (require 'taskpaper)
    ;; taskpaperファイルを置くディレクトリ
    (setq taskpaper-dir (expand-file-name "~/.taskpaper/"))
    ;; `M-x taskpaper'で、今日の日付けのファイルを新しいフレームで開く
    (defun taskpaper ()
    (interactive)
    (let ((filename (concat taskpaper-dir
    (format-time-string "%Y-%m-%d.taskpaper"))))
    (find-file-other-frame filename)))
    
  • simple-hatena-modeリリース

    ,

    はてなダイアリーライターEmacsから使えるようにし、はてなダイアリー/グループ日記を簡単に更新するためのメジャーモード、simple-hatena-modeをリリースしました。設定方法や利用方法については、以下のドキュメントをご覧ください。

    同様の機能を提供するelispについては、すでにいくつかのものが存在しますが、simple-hatena-modeには、それらと比べて以下の利点があります。

    • 複数のアカウントに対応。
    • それぞれのアカウントのグループ日記に対応。

    僕は、複数のidとグループであちこちに日記を書いているので、とても便利です。というか、そもそもはこれが欲しくて作ったのでした。
    なお、simpleという名前がついているのに全然シンプルでない件については、スルーしてやってください。作っているうちに全然シンプルじゃなくなることはよくあることですが、設定を簡単にするための方法については、TODOとして考え中です。
    というか、僕はelispとか全然書けないので、こういう機能があったらなーと思っても、なかなか実装できません。「こんな機能があるといいね」とか「ここはこうしたほうがいんじゃね?」という方は、是非ともCodeReposのコミット権を取得して(誰でも簡単にもらえます)、ガンガン変更しちゃってください。お願いします。

    本パッケージの利用に際して問題がある場合は、以下に挙げる先行実装を試してみていただきたいと思います。また、simple-hatena-mode.elの作成に際しては、大いに参考にさせていただきました。ありがとうございます。

  • C-x C-s 押下時に Firefox をリロード

    ,

    最速インターフェース研究会 :: AutoHotkeyを使ってFirefoxをリロードするだけのexeファイルを作ってみたあたりから当たりから盛り上がった AutoHotkey を用いて、エディタ保存時にブラウザを自動リロードするネタに、刺客登場。

    なんかもうこんなのでいい気がしてきた。
    (中略)
    「:w[Enter]」が押されたときにFirefoxをリロード。
    こんなのVim以外ではほとんど押さないので。押したとしてもFirefoxがリロードされるだけなのでほとんど弊害はないし。起動しておくだけでいいのでお手軽。ターミナルで別サーバのファイルを編集しててももちろんOK。

    その発想はなかったわ。。。
    つわけでさっそくパクらせていただきたく存じ申しあげたわけだが、Emacs ラー(別名「えまくさ」)としては C-x C-s 押下時に Firefox をリロードしたいところ。まぁ、上記エントリで公開されているコードをてけとうに改造すればいいだろとか思いきや、AutoHotkey がはじめてなせいもあって、ちとめんどかった。。

    1. 当然、複数のキーストロークを指定しなきゃならない(C-x C-s)
    2. XKeymacs でもって C-x C-s を windows のほぼ全体的に C-s の変わりの保存ショートカットにしちゃってるものだから、システム上の C-x C-s を殺さず、かつ AutoHotkey でも活かす必要がある
    3. あーでも、実際 CSS ファイルを編集するのって、Xkeymacs を無効にした putty 上のリモートサーバの Emacs なんだけど。。。

    ってな上記の要求を全て満たすべく ホットキー割り当ての指定方法を見ながら、あれこれいじったり。
    そんなわけで、こんな感じになりました。C-x C-s 押下時に、Xkeymacs の保存ショートカットを殺さずにシステムに通しつつ、Firefox をリロードします。以下をてけとうなファイル名で保存し、AutoHotkey でコンパイルして生成された実行ファイルを、CSS なりなんなりを書いている時だけ実行しておくといい感じ。当然、Emacs に限らず、単に C-x C-s を押下した時に Firefox がリロードされます。ウザいこともあり得るけど、必要な時だけ AutoHotkey アプリを起動すればいいので、あんまり問題ないかなとも思ったり。

    Transform, CtrlS, Chr, 19
    ~^x::
    Input, InputChar, C I L1 M T1 V, {Esc}, %CtrlS%
    if ErrorLevel = Match
    if InputChar = %CtrlS%
    SetTitleMatchMode, 2
    WinGet, FF,, Mozilla Firefox
    ControlSend,, {F5}, ahk_id %FF%
    return

    実際のところは、Emacs 使用時は auto-save-buffers を使用しているため、C-x C-s を押すことはないのだけど、まぁ、CSS/JS/HTML 編集時は意識的に押すようにしようかな、と。Firefox にフォーカスあてた上でリロードかけるよりは速いし。

  • 最近導入した elisp や設定について

    最近導入した elisp や設定の中から、めぼしいものをメモってみる。

    Emacsでファイルの自動保存 (auto-save-buffers)
    編集中のファイルを自動保存する。以下の文章に説得された。

    この考え方(引用者註:自動保存は危険であるという考え方)は CVS などのバージョン管理システムが広く使われる ようになった現在では古くなっていると思う。きりのいいところで ファイルに保存するのではなく、きりのいいところでバージョン管 理システムに保存すればいい。

    ce-scroll – 1 行づつスクロール
    C-p, C-n でだらだらスクロールしてるときに、画面半分づつスクロールするのがウザイので導入。
    Clouder::Blogger: html-tt – emacsのTemplate Toolkit用のmode
    Template Toolkit 用のモード。
    趣味的にっき – Emacsでファイルを新規作成するときにテンプレートを挿入したい
    ファイルの新規作成時に、あらかじめ作っておいたテンプレートを挿入する設定。

    あと、個人的にはちと微妙かなぁってんで導入は見送ったけど、ひとによっては便利なこともありうるのかなーと思ったのが以下。

    tagging.el
    テキストやプログラムのソースコードの断片をタグ付けし、分類・抽出できるようにするもの。”Sooey – Emacs Tagging” に詳しい解説あり。
  • Emacs 事始め

    パソコンを使い始めてから約 4 年、これまで 3 回ほど Emacs に挑戦してはあえなく(一時間ほどで)挫折するということを繰り返してきたわけですが、こないだの日曜日になんとなくチュートリアルをやってみたら、いつもは「なにこのキモいキーバインド!耐えられない!!!」などと投げていたのですが、なんとなく気分がのったようで、初めて最後まで手を動かしながら読めてしまった。性格が病的に面倒くさがりなので、僕には Emacs なんて無理だとあきらめていたのだけど。

    そんなこんなで、なんかいけそうな気がしてきたので、以前購入したっきり放置していた『Emacs らくらく入門』という本を読みつつ、Web 上のリソースをあたり、便利な設定をこぴぺしたり、良さげな elisp を導入してみたりしてみた。その過程でいろいろ便利なものを知ったのだけど、とりあえず以下あたりが欠かせない感じ。

    ElScreen
    ウィンドウを GNU screen ライクに切り替えられる。激しく便利過ぎる!
    color-theme.el
    とりあえずこれでざっくり選んで、細かいところをちょろちょろ変更する感じで。
    Riece
    なにも IRC まで Emacs でやらなくても……と思ったけど、便利ね、これ。
    hatena-mode
    Emacs からはてなダイアリに日記を書くことができる。激しく便利!
    kill-summary.el
    kill-ring を可視化できますよってなもの。かっけー。

    他にも便利系のものをあれこれつっこんだり、細かい設定とかをあれこれ .emacs に記述したり。しかしまぁ、使い始めてから日が浅いので、まだまだ全然ものたりない感じ。cperl-mode の設定とかも調整しないといかんなぁと思うけど、コード書く気にならないので本格調整は先延ばしに。

    ところで、ここのところ自分にあったメモツールを求めてあれこれいじったりしていたのですが、Emacs だと C-x 4 a で ChangeLog が簡単に扱えたりするってんで、ChangeLog メモをやりやすいらしいということを聞き及んでいたところ、中でも typoster さんChangeLog メモ “CLON” がいい感じだなぁとか思ってたのですが、上述の hatena-mode なんてのをみつけたので、僕的にはこれでも用が足りるかなぁという感じで、Emacs を使うようになったらそんなことまで解決してしまって、ほんと万々歳という感じ。putty はどこにいてもいつでも立ち上がっているので、なにかあったらそこにちょろちょろ書き付ければ、それがはてなダイアリに書き込まれるってな素敵環境が実現。

    ……てな感じでここ一週間ばかりひたすら Emacs のカスタマイズに熱中していたので、関係ないところでも Emacs 風に指が動こうとしてしまう事態になってきた。そこで、Windows 上のアプリケーションで Emacsキーバインドを使えるようにしちゃうってな “XKeymacs” なんてソフトを導入してみたり。これはまぁ、今朝入れてみたばっかりなので、まだまだ調整が必要ぽい。ただ、この Blog のエントリは紙 2001 で書いていたりするので、外部エディタでも Emacsキーバインドが使えるってのはけっこう便利かも。

    んでもって、はてなスタッフさんたちがこぞって紹介していたので、『入門 GNU Emacs』も購入して読んだ。まぁ、微妙。つーか、Emacs に入門するひとがなにに一番障壁を感じるかっていうと、僕自身の経験からいうと、いきなり謎のバッファが開いたり、変なキーを押してしまったらどうにもならなくなったり、とにかくこれからなにをすればいいのかわかんなかったりすることなのであってみれば、最初に移動のコマンドを教えるのはおかしいと思うんだよなあ。まずはバッファとウィンドウの扱い方や、失敗したときの回復のしかた等を教えるべきだと思った。あと、チュートリアル!とにかく入門書には「なにがなんでもまずはチュートリアルをやれ!それを終えてからこの先を読め!!!」と書くべきだ。

    なんか激しくまとまりのないエントリだけど、とにかくいえるのは、Emacs いじりが楽し過ぎてるってこと。なんでいままでこれ使ってこなかったのかなぁと、激しく後悔してますよ!

    便利なツール Emacsらくらく入門
    藤原 誠
    技術評論社 (2004/06/11)
    売り上げランキング: 56,735
    入門GNU Emacs
    入門GNU Emacs

    posted with amazlet on 05.10.29
    デボラ キャメロン エリック レイモンド ビル ローゼンブラッド Debra Cameron Eric Raymond Bill Rosenblatt 福崎 俊博
    オライリー・ジャパン (1999/09)
    売り上げランキング: 67,142