MacOS X (Snow Leopard) に PhantomJS を入れました。Build Instructions の通り。
TermKit をインストールしてみました
TermKit というターミナルエミュレータがおしゃれっぽいので試してみました。
TermKit のインストール手順
TermKit はバックエンドは node.js、フロントエンドは WebKit (.app ファイル) で動いているので、まず先に node.js をインストールします。詳しい仕組みは作者のブログで。
node.js と mime パッケージをインストールします。私はユーザのディレクトリに入れました。
$ git clone https://github.com/joyent/node.git $ cd node $ mkdir ~/local $ ./configure --prefix=$HOME/local/node $ make $ make install $ export PATH=$HOME/local/node/bin:$PATH $ curl http://npmjs.org/install.sh | sh $ npm install mime $ node --version v0.5.0-pre
TermKit をダウンロード、node.js のサーバを実行します。
$ git clone git@github.com:unconed/TermKit.git --recursive $ cd TermKit/Node $ node nodekit.js
これでサーバが立ち上がりましたので、次にクライアントを立ち上げます。
クライアントは TermKit/Build/TermKit.zip を解凍してできあがる TermKit.app です。普通にダブルクリックで実行します。
ls でアイコンやサムネイルが表示されるのはよさげ。cat コマンドでテキストファイルや画像ファイル内容表示できます。現時点では Vim や Perl など、バイナリの実行はできませんでした。
今のところ実用性はありませんが今後に期待したいです。
ちょっと方向性は違いますけども、過去に Flash のライブラリをシェルっぽく操作できる JSFL を書いたことを思い出しました。
Vim 7.3 をソースからインストール
Vim 7.3 をソースからインストールする手順。
$ sudo yum install ncurses-devel $ wget http://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2 $ tar xjvf vim-7.3.tar.bz2 $ cd vim73 $ mkdir patches $ cd patches/ $ curl -O 'http://ftp.vim.org/pub/vim/patches/7.3/7.3.[001-189]' $ cd .. $ cat patches/* | patch -p0 $ ./configure --with-features=huge --enable-multibyte --enable-perlinterp --disable-selinux $ make $ sudo make install
カーソル下の単語を snake_case や camelCase などに変換する Vim プラグインを書きました
カーソル下の単語を snake_case や camelCase などに順次変換する Vim プラグインを書きました。
実行例
例えば getElementById という単語の上にカーソルがある状態で :call ToggleCase() を実行すると下記の順に記法が切り替わります。
- GetElementById
- get_element_by_id
- GET_ELEMENT_BY_ID
- getElementById
ダウンロード
インストールの前に
ToggleCase.vim は Perl インタフェースを利用しています。ご使用の Vim が Perl インタフェース非対応の場合は、再コンパイルしてください。こちらの「インストールの前に」を参照ください。
インストール
- GitHub のリポジトリから ToggleCase.vim をダウンロードします。
- ~/.vim/plugin/ に ToggleCase.vim をコピーします。
- 適当なキーに ToggleCase() をマッピングします。
私は C-k に割り当てています。
nnoremap <silent> <C-k> :<C-u>call ToggleCase()<CR>
また、プラグインの管理には pathogen.vim が便利です。
キーボードショートカットを定義できるライブラリ Hokke.js を書きました
キーボードショートカット (ホットキー) を簡単に定義できる Hokke.js という JavaScript ライブラリを書きました。名前の由来は、Hotkey → Hokke です。私はホッケの塩焼きが好きです。
Hokke.js
使い方
インタフェースは、3 つあります。
- Hokke.map(key, callback);
- Hokke.unmap(key);
- Hokke.command(keys, callback, time);
機能は主に 4 つあります。
- 関数にホットキーを割り当てる。(map)
- リンクにホットキーを割り当てる。(map)
- ホットキーの割り当てを解除する。(unmap)
- 一連のキー入力を関数やリンクに割り当てる。(command)
1. 関数にホットキーを割り当てる
任意の関数にキーボードショートカットを割り当てる機能です。下記の例では、Shift-J に、alert を表示する無名関数を割り当てています。
Hokke.map("S-J", function() { alert("Hello"); });
2. リンクにホットキーを割り当てる
リンク (a タグ) にショートカットを割り当てる機能です。第二引数に関数の代わりに a タグの要素を渡すだけです。
Hokke.map("S-J", document.getElementById("someAnchorElement"));
3. ホットキーの割り当てを解除する
設定したホットキーを解除するには unmap を使用します。
Hokke.unmap("S-J");
4. 一連のキー入力を関数やリンクに割り当てる
一連のキー入力があった場合に関数やリンクを実行する機能です。いわゆる「コナミコマンド」を実現できます。
Hokke.command(["Up", "Up", "Down", "Down", "Left", "Right", "Left", "Right", "b", "a"], function() { alert("power up!"); }, 5000);
メジャーなブラウザでは恐らく動作すると思いますが、不具合がありましたらご報告いただければ幸いです。