2009年3月18日水曜日

手軽に始めるVimperator入門

先日、「Vimperatorで始めるVim入門」という内容で「テキストエディタ勉強会」で話してきました。
軽く参加者の皆さんにアンケートを取ったのですが、予想以上にご存知の方が多く、また、よくわからないままにアンインストールした方が多かったです(笑)。

時間の都合上具体的なセットアップ方法等はお話しませんでしたので、今日は前回の復習も兼ねて、そこらへんからエントリを書いてみたいと思います(随分時間あいちゃってごめんなさい)。
  • インストール
  • 基本操作
  • 最低限あるとうれしいプラグイン
という感じで進めます。
あらかじめ、XUL/Migemoというローマ字で日本語を検索出来るプラグインをインストールしておいてください。プラグインとの連動で使用します。

インストール

https://addons.mozilla.org/ja/firefox/addon/4891
ここからインストールします。
これは大丈夫ですね。

さて、いきなりですが、インストール直後におまじないが必要です。
勉強会でもお話した通り、起動するといきなりアドレスバーなどがなくなってしまいます。
Vimperatorの設定ファイルである、.vimperatorrcというファイルを作成し、

MacOSX / Linux : 自分のHOMEディレクトリへ
Windows : C:¥Documents and Settings¥"ユーザー名"

です。
Windowsのケースは僕も試したわけではないので、詳しくは
Vimperatorの初期設定
をご覧下さい。

.vimperatorrcの中は、
set guioptions+=mTb
set wildoptions=auto
set complete=sl

と書いてくださいね。

基本操作

勉強会でお話した一通りのショートカットキーを列挙します。
ページ内移動は、

jklh: ↓↑→←
CTRL-d: 半ページダウン
CTRL-u: 半ページアップ
gg: ページ頭へ
G: ページ最後へ

リンクのクリックは、

fキーを押すと番号が表示されるので、その番号をタイプ
fキーを押してキーワード絞り込み(fとタイプ後、linkとタイプすると、linkと書かれているリンク先だけ絞り込まれる)

URLを開くときは、

oキーを押して文字を入力


Vimperatorの動きを一時的にオフにしたいとき(Livedoor ReaderやGmailのショートカットキーを使いたい時など)
CTRL-z(ESCで復帰)

これだけですね。
とりあえず意図しない動きになった時はESCキーを押してください。
# Vim使うようになるとESCキーは一番叩くキーになります。

これで一通りネットサーフィンは出来ると思います。

最低限あるとうれしいプラグイン

codereposに沢山のプラグインがあることをお話しました。
その中から特に便利なプラグインを紹介します。

ちなみにプラグインは、

MacOSX / Linux : HOMEディレクトリの.vimperator/pluginディレクトリの中
Windows : C:¥Documents and Settings¥"ユーザー名"¥vimperator¥pluginディレクトリの中

にそれぞれおきます。

migemo_hint.js

http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/tags/1.2pre/migemo_hint.js

これは非常に便利です。
fキーを押してキーワード絞り込み(fとタイプ後、linkとタイプすると、linkと書かれているリンク先だけ絞り込まれる)
これにローマ字入力による日本語リンクタイトルの絞り込みが可能になります。
先日の勉強会で参加者の関心が高かったプラグインです。

autoIgnoreKey.js

http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/tags/1.2pre/autoIgnoreKey.js

これは、GmailやLivedoor Readerなど、独自にショートカットキーが設定されているウェブサイト向けに、
自動でVimperatorをサスペンドしてくれるプラグインです。

とりあえず、プラグインの紹介はこの二つで。
ビュンビュン操作できるようになってくれば、快適そのものです!

おわり

今回のエントリ、いかがだったでしょうか。
キーボードによるブラウザの操作の楽しさを感じとってもらえると幸いです。

今回紹介したのは最低限の操作のみでした。
もっと知りたい場合は、:helpもしくは、vimfox.comさんの基本操作やチートシートが非常に参考になると思います。

Vimfox
Vimperatorの基本操作
Vimperator Cheat Sheet

これまでの使い方から変化を感じ、心地よさを覚えればあとは自分でどんどん突きつめていってください。

ちなみに僕はガッツリカスタマイズなんてしてなく、
非常にライトに使ってます。

PostfixでメールのToやFromを書き換える方法

タイトルのようなことをちょっとやったのでメモ。
Postfixでアドレスを書き換える為にはカノニカルアドレスマッピングという機能を使用。

参考 : Postfixアドレス書き換え

設定例をいくつかメモります。

おまじない的にやること

Postfix 2.2系の場合

特に無し。
書き換えルールを設定ファイルに記述していけばOKみたい。

Postfix 2.3系の場合

local_header_rewrite_clients = static:all
をmain.cfに書く。

2.3系ではデフォルトでは、
local_header_rewrite_clients = permit_inet_interfaces
となっているようで、$inet_interfacesにマッチしたクライアントIPアドレス以外からのメールに対して書き換えが行われないようです。

とりあえず、2.2系と同じ動作にするには、
local_header_rewrite_clients = static:all
としておけばいいみたい。

実際の設定例

main.cf
# 書き換えるアドレスの対象
canonical_classes = envelope_sender, envelope_recipient, header_sender, header_recipient

# 送信者、受信者双方に適用
canonical_maps = regexp:/etc/postfix/canonical.regexp

# 送信者のみ書き換え対象
# sender_canonical_maps = regexp:/etc/postfix/sender_canonical.regexp

# 受信者のみ書き換え対象
# recipient_canonical_maps = regexp:/etc/postfix/recipient_canonical.regexp

とか書いて、
/etc/postfix/canonical.regexp
/^hogehoge/ fugafuga

とかしておくと、
エンベロープ送信者アドレス、エンベロープ受信者アドレス、
メッセージヘッダの送信者アドレス、メッセージヘッダの受信者アドレス、
マッチしたもの全てを書き換えます。

From: hogehoge@example.com
が、
From: fugafuga@example.com
こんな感じに書き変わるというわけです。

置換したい対象を制限する場合は、
canonical_classesの中身を指定すれば良いです。

メッセージヘッダーのToアドレスだけ書き換えたい場合は、
canonical_classes = header_recipient
という感じ。

ちなみに、.forwardとかで呼びだされるプログラムには、もちろん書き換え済みのアドレスが入ります。
非常に便利!

久しぶりにブログを書く

最初ログインできなくて焦った。 いや、ログインはできたのだが、ログイン後に自分のブログの管理画面に遷移できず、新しいブログを作成する画面になってしまったからビビッてしまった。 どうやら、Google+(現在はサービス終了)に紐づいたプロフィールを設定しているとこのような状況に陥る...