ぼくがMacBook Airを買わない理由
MacBook Airが発売され、Twitterを眺めてみれば「注文した」だの「買った」だの「発送メールきた」だのと歓喜の声に溢れています。さて、そのような中、ぼくもそろそろモバイル用の新しいマシンが欲しいなあなんて思っていたので買う最後の一押しとして実物を見に行きました。その結果買わないことになりました。以下、買わない理由を列挙していきます。
理由1 キーボードがへぼい
MacBook Pro程度のキーボードならまだ良かったんですが、MacBook Airはキーボードがへぼいです。実際には長く使わないとわからない部分なのですが、軽く触っただけでもキーストロークの浅さが気になりました。キーボードの気持ち悪さは致命的になりかねません。デスクトップの代わりとしての高性能ノートパソコンなら外部キーボードを接続して使えばいいのでキーボードの悪さはたいした問題にはなりませんが、モバイル用途ではそれも無理です。キーボードを持ち運ぶような変態さんでない限り無理です。
理由2 CPUとメモリがしょぼい
CPUは1.5世代前、メモリは標準2GBで最大でも4GB。最新のスペックと比較すると見劣りします。いや、これは正直なところよくわかりません。CPUやメモリを特に酷使するような用途でなければ問題は無いと思います。少なくとも展示してある実機を触っている感じではそこそこ良さそうでした。この理由はある程度は数を挙げないといけない気になったので挙げただけです。
理由3 ぼくはiPadを持っていない
MacBook Air買うくらいならiPad買います。MacBook Airで使えるアプリはMac miniでも基本的には使えますが、iPadで使えるアプリはiPadでしか使えません。なので、iPadを買ったほうが楽しそうなのです。MacBook Airの隣に置いてあったiPadを改めて触ってみてちょっと欲しくなりました。だからMacBook Airを買うくらいならiPadを買います。
まとめ
キーボードがへぼくてスペックがしょぼいMacBookはいらん!
裏まとめ
自分自身に言い聞かせるために書いてみました。誰かMacBook Airください!
Command-T がすばらしい
Command-T は FuzzyFinder のように適当にファイルを検索することができる vim プラグイン。ぼくは FuzzyFinder をほとんど使っていなかったから正確に比較することはできないけれど、Command-T のほうが使いやすいと感じた。
使い方
Command-T を起動して、ファイルパスに含まれている文字を適当に入力すると、適当にマッチして絞り込んでくれる。
インストール方法
Command-T のインストール方法は vim.org や 本家ページ を参照してもらえばいいんだけど、一応ここにも記載しておく(2010/08/10時点での方法。バージョン0.8bが対象)。
- command-t-0.8b.vba をダウンロードする
- vim で command-t-0.8b.vba を開く
- vim で :source %
- (ターミナルに戻る)
- cd ~/.vim/ruby/command-t
- ruby extconf.rb
- make
ここまでは本家ページとかに書いてあるとおり。次からはぼくが mac と linux で環境を分ける必要があるために追加した操作。
~/.vim.local を作成し C extension を含む ruby ディレクトリをそのまま移動させた。runtimepath/ruby ディレクトリを探すようなので .vim.local を runtimepath に追加しておけば勝手に .vim.local から探して使ってくれるのでなんの問題もない。
というわけで最後に
- .vimrc に以下を追加
set runtimepath+=~/.vim.local let g:CommandTMaxHeight=15 nnoremap <silent> <Space>f :<C-u>Command-T<Return>
.vimrcに書いた内容の説明
runtimepath に .vim.local を追加しているのは上で説明したとおりの理由。
g:CommandTMaxHeight は候補一覧ウィンドウの最大の高さで、デフォルトの状態だとカレントウィンドウいっぱいになっている。けどそれだと高すぎるので15に設定した。そもそも15でも候補の数としては十分に多いのに、それ以上出ていても探すのが面倒なだけで意味はないと判断した。あと、第1候補は最上部に表示されるので、もしもカレントウィンドウいっぱいに広がるといきなり視点をウィンドウの最上部へ移さなければならいのが嫌だったという理由もある。
最後の keymap は適当に好きなように設定すればいいと思う。ぼくは FuzzyFinder で
まとめ
Command-T は使いやすいし、C extension を使っているだけあってさすがに速い。異種環境で同じ設定を使い回しているときにちょっとした工夫が必要だけど、これだけ快適に使えるのならば何の文句もない。
Command-T すばらしいよ。
screen でウィンドウタイトルを自動設定する方法
久しぶりにちょっと dot ファイルをいろいろといじっていたのでついでに書いておく。man screen に載っている内容だけど簡潔に。シェルは zsh を使っているとする。
.zshrc
local SETTITLE=$'\033k\033\134' PROMPT=$SETTITLE'> '
.screenrc
shelltitle '> |zsh' caption always '%{=r dd} %-w%{=b dd} %n %t %{-}%+w %='
ポイント
まとめ
とりあえず man 読め。
Vim で複数のタブを閉じる
すぐにタブを開いてしまうのはきっと Opera 使いの気性だから仕方ない。もちろん vim ですぐにタブページを開いてしまう。
さて、vim では
:tabclose {count}
で指定した番号のタブページを閉じることはできる。けれど、複数のタブページを指定して閉じることはできない。そこで以下のような設定を .vimrc に追加した。
これで
<Space>td 1 2 3<Return>
と入力すればタブページ 1 と 2 と 3 が閉じられる。
reverse(sort(copy(a:000)))
としているのは、大きい番号のタブページから閉じていかないと順番が狂うから。例えばタブページ 1, 2, 3 をこの順番に閉じていくと、タブページ 1 が閉じられた後は、最初 2 だったタブページが 1 になり、最初 3 だったタブページが 2 になる。で、次にタブページ 2 を閉じようとすると、最初 3 だったタブページが閉じられ、最初 2 だったタブページは閉じられない。これを回避するために、大きい番号のタブページから順番に閉じるようにした。
だれも喜ばない設定だけど、ぼくが喜ぶのでそれでよし。
vim script の関数呼び出しは遅いとか遅くないとか
vim のプラグインである vimfiler を最近使い出したんですが、vimfiler バッファにおける j/k での移動がなんかひっかかる感じになっていました(vimfiler ではバッファの一番上で k を押すと一番下にジャンプし、一番下で j を押すと一番上にジャンプするという挙動をします)。MacVim では特に問題なかったんですが、Linux Mint 上の gvim ではひっかかる感まるだし。
ひっかかる感がストレスフルだったので j/k を unmap して、とりあえずひっかかる感を解消させました。上下のループはできなくなったけど、ひっかかる感が残るよりはましです。それでそのことについて twitter で以下のようにつぶやいたら
この間10分ほど。はええ。
それで早速試したところ確かに引っかかる感じがごく小さくなっていました。ちなみにアップデートコマンドは以下の通り。
wget -qO - http://github.com/Shougo/vimfiler/tarball/master | tar -xzC ~/.vim --strip-components=1
何をしたんだろうと diff を見ると関数呼び出しをやめているようでした。それで関数呼び出しでどの程度コストがかかるのかちょっと気になったので調べてみました。実行したスクリプトは以下のようなものです。
実行するには gvim の起動オプションに -S を指定。
gvim -S performance-comparison.vim
結果は以下のようになりました。
without function : 7.358529 with function1 : 11.212190 with function2 : 13.246932
function1 は単純に関数にしてそれを呼び出すようにしたもので、function2 は三項演算子を使っていた部分を if/else に置き換えたもの。見てのとおり、関数呼び出しにしたら 1.5 倍くらい時間がかかりました。三項演算子を if/else したらさらに遅くなりました。
パフォーマンスを追求する場合、関数呼び出しはできるだけ減らした方が良さそうですね。まあ、1000000回で4秒、つまり1回あたり0.004ミリ秒なんですけどね。うん、相当おかしなことしない限り気にしなくていいよ。扇動的なタイトルでごめんなさい。
Vimで現在時刻をファイル名に持つファイルを作成する方法2
http://d.hatena.ne.jp/tacroe/20100608/1276007562 で書いた方法でもいいけど、単純に以下のように .vimrc に書いておいて、現在時刻が欲しくなったときに
cnoremap <expr> <C-o>t strftime('%Y%m%d-%H%M%S')