2010年 11月 28日

Snow Leopard / Lion にしたら vim の中から起動する perl がシステムデフォルトの perl に固定されてしまった。

Snow Leopard が余計なことをするようになった。なんとなく "vim path /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin" とかでググっていたら、http://d.hatena.ne.jp/yhino/20100908/1283963661 というエントリがひっかかってくれた。

/etc/profile とか /etc/zshenv とかで /usr/libexec/path_helper というプログラムを実行してシステムのパスを先頭に追加するとかしているので、vim のような環境で、~/.zsrhrc が呼ばれない場合、システム側のしか呼ばれなくなっている。本来 PATH 通しとかは ~/.zshenv に書くべきなので、自分も悪いのだけれど、PATH の管理ぐらい自分でできるし、余計なことをしてほしくないので以下のようにした

$ lm /usr/libexec/path_helper
-r-xr-xr-x  1 root  wheel    50K  5 19  2009 /usr/libexec/path_helper*

$ sudo chmod -x /usr/libexec/path_helper

$ lm /usr/libexec/path_helper
-r--r--r--  1 root  wheel    50K  5 19  2009 /usr/libexec/path_helper

単に実行権限をなくした。

はてなダイアリーのCSSを簡単に書けるようにする

はてなダイアリーのCSSを編集するのはなかなか骨の折れる作業で、とりあえず HTML を落としてスタイルをあてたりしても、ある程度できあがってからは、自分のダイアリに実際に反映してしまって、オンザフライで、あの designdetail のページでCSSを修正してしまったりするものです。

とはいえ、あのフォームはトライアンドエラーを繰替えすには大変なので補助するスクリプトを書きました。

以下を保存して実行すると (Config::Pit で user と pass を指定する必要があります)、$EDITOR で現在のデザインCSSを開き、保存すると反映される状態 (1秒ごとにチェックしており、HTTP で POST しているので、保存してすぐとはいきませんが) になります。

また、ミスって変更しても戻せるように、~/.hatenadiarydesign/ 以下にバックアップを作りまくります。

gerry++

2010年 11月 27日

gerry++

2010年 11月 26日

iTerm2 用の Cmd+数字 によるウィンドウ切替えパッチ

Snow Leopard にしたら今まで使っていた iTerm が option キーを正しく meta キーとして認識しなくなってイライラしたので、iTerm2 はどうなのだろうと思い入れてみると、こっちは上手く動いてくれた。なので iTerm2 を移行しつつ、いつも通り Cmd+数字 でタブじゃなくてウィンドウを切替えるパッチを書いた (ターミナルのタブとか使わないし存在価値がわからない)。

trunk の rev378 へのパッチ。もとから Command+Alt+数字で切替えるコードが入ってるけど、Alt を別ハンドリングしてるせいで全く動いてない無駄なコードになっていて意味不明なので、単に判定を変えるだけです。

From 1ef0734ca9ea0295c178c386ee173cb4e14eb6bb Mon Sep 17 00:00:00 2001
From: cho45 <cho45@lowreal.net>
Date: Fri, 26 Nov 2010 12:44:23 +0900
Subject: [PATCH] Use Command+number to switch windows instead of Command+Alt+number

---
 iTermApplication.m |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/iTermApplication.m b/iTermApplication.m
index b9d47f1..89ede9c 100644
--- a/iTermApplication.m
+++ b/iTermApplication.m
@@ -63,8 +63,8 @@
         PTYSession* currentSession = [currentTerminal currentSession];
         NSResponder *responder;
 
-        if (([event modifierFlags] & (NSCommandKeyMask | NSAlternateKeyMask)) == (NSCommandKeyMask | NSAlternateKeyMask)) {
-            // Command-Alt number: Switch to window by number.
+        if (([event modifierFlags] & NSCommandKeyMask) == NSCommandKeyMask) {
+            // Command number: Switch to window by number.
             int digit = [[event charactersIgnoringModifiers] intValue];
             if (digit >= 1 && digit <= 9 && [[iTermController sharedInstance] numberOfTerminals] >= digit) {
                 PseudoTerminal* termWithNumber = [[iTermController sharedInstance] terminalAtIndex:(digit - 1)];
-- 
1.7.1
2010年 11月 25日

スケルトンジェネレータ starter.pl

みなさんそれぞれ作ってる感がありますが、なにかしらのスケルトンをつくってくれるやつを僕も作ってあったりします。

昔 catstarter.pl を書いたときのコードを殆ど流用して汎用化したものです。

  • 実行するとどのスケルトンをつくるかきかれる
    • template ディレクトリ以下から選ぶ
  • 選択するとそのテンプレをもとに置換とかを行ってスケルトンを生成
  • setup.sh というのがあればそれを実行 (git init とかが書いてある)

要は cutagem と同じです。


最近よくつくる .psgi のスケルトンと、pmsetup 的なスケルトンをいまのところ使っています。

ここはAmon2のディレクトリ構造を貼るスレです

lib
├── Amon2
│   ├── Config
│   │   └── Simple.pm
│   ├── Declare.pm
│   ├── Plugin
│   │   ├── LogDispatch.pm
│   │   └── Web
│   │   ├── CSRFDefender.pm
│   │   ├── FillInForm.pm
│   │   ├── FillInFormLite.pm
│   │   ├── HTTPSession.pm
│   │   ├── JSON.pm
│   │   ├── MobileAgent.pm
│   │   ├── MobileCharset.pm
│   │   └── NoCache.pm
│   ├── Trigger.pm
│   ├── Util.pm
│   ├── Web
│   │   ├── Dispatcher
│   │   │   ├── Lite.pm
│   │   │   └── RouterSimple.pm
│   │   ├── Request.pm
│   │   └── Response.pm
│   └── Web.pm
└── Amon2.pm

fuf-script.vim

id:hakobe932 さんが http://d.hatena.ne.jp/hakobe932/20101122/1290441814 というのをやっていて、いいなぁと思ったので fuzzyfinder 版を書いてみました (だいたいコピペですが)。

を autoload/fuf/script.vim らへんにつっこんで

vimrc に

command! Bookmark call fuf#script#launch('', 0, 'B\!>', 'perl', $HOME . '/.vim/bookmarks.pl', 0)
command! Music call fuf#script#launch('', 0, 'iTunes>', 'perl', $HOME . '/.vim/itunes.pl', 1)

とか書くといい感じにいけます。source の形式は hakobe さんのやつと一緒なので、そのまま使えます。

  • 'perl' が入ってる部分にコマンド名、
  • 次に実行するスクリプト名
  • 最後の 0/1 はそのコマンドの結果をキャッシュするかどうか

です。キャッシュはおなじみ FufRenewCache でクリアできます。

2010年 11月 14日

gerry++

2010年 11月 08日

gerry++