nobu417.jp

ブログエントリー

忙しい忙しいと言いながら、世間はお盆で休みなのか・・・と考えていたら、ターミナルで現実逃避してみたくなった。僕はターミナルの zshvim (Mac OS X の GUI 付きの kaoriya-macvim) だけで果たして生きていけるのか。

はじめに・・・仕事では Adobe CS スイートが必須

まず最初に言っておかなくてはならないこととして、仕事のウェブ制作では Adobe CS の Dreamweaver や Photoshop を絶対に使わなければならない。なので制作の仕事が絡んでいる時だけはこの zsh と vim だけではどうにもならない。この点だけご留意いただいた上で読んでいただけたら、と思う。

zsh on ターミナルの使い方

あくまでもメインのフロントエンドのユーザーインターフェイス的な部分を zsh on ターミナルにしようと考えただけで、別に SafariMailiCaliTunes を使わないわけではない。そこだけは誤解がないようにしておかないといけない。ウェブを閲覧するのに Safari は必須だし、到着したメールを読むのも Mail の方がわかりやすい。ターミナル上でできないこともないが、GUI の恩恵に与った方が圧倒的に便利だ。iCal だってそうだし、音楽を整理したり iPhone や iPad の母艦として iTunes だって必須だ。その他 Mac のアプリケーションで必要、必須なものが僕にはたくさんある。ただ、普段の作業をターミナル上と vim 上だけである程度完結させてやりたくなっただけだ。

シェルスクリプトと AppleScript でアプリケーションを制御

まずは iTunes 隠したまま起動しておいて、daemon 的に使ってやろうと思い、iTunes 自体を操作してやるための AppleScript とその AppleScript 群を zsh から呼び出してやれるようにシェルスクリプトを書いてみた。

% iTunes nowplaying
% iTunes play
% iTunes pause
% iTunes next
% iTunes back

それぞれ引数に nowplaying で現在の曲を取得、play で再生、pause で一時停止、next で次の曲へ、back で曲の頭 or 前の曲へ、となるようにしてみた。ちなみに iTunes コマンドとして全部入力するのが面倒なので、.zshrc に alias で、引数部分だけの入力で iTunes を制御できるようにしておいた。

Google 検索もシェルスクリプトにしてしまう

以下のようにしてやるだけで、Safari に Google 検索の結果が出るようにもしてみた。

% g 検索キーワード

よく使うサイトも簡単にアクセスしたかったので、Google の I'm Feeling Lucky を使ってワンラインでアクセスするスクリプトも以下のように実行できるようにした。

% im 検索キーワード

im facebook なら Facebook が開くし、im youtube なら YouTube が開く。I'm Feeling Lucky 頼りなので時々意図しないサイトが開くことがあるが、まあ大体問題ない。

ついでに Wikipedia もターミナルから検索できるように・・・。

% wp キーワード

これだけターミナルとウェブ (Safari) を繋げてやったことで、大体必要なことはターミナルだけで実行できるようになってきた。

ターミナルをアプリケーションスイッチャー代わりに使う

MacBook Air にしてからスワップを気にしなくなり、常に10個以上、あるいはもっと数多くのアプリケーションを立ち上げているような状態になってしまった。今現在、起動しているアプリケーションを列記しておこう。cmd + tab で左から vimTerminalSafariDreamweaverPhotoshopIllustratorSkypeTwitterMail 、iTunesFinderLast.fmiCalDay OneReminderNotesLimeChatOmniPlanPreview ・・・実に19個のアプリケーションを同時起動していることになる。そうなってくると、もう cmd + tab も崩壊気味になってきていて、よく使うアプリケーションはターミナルでコマンドを打つと表示されるようにした方が手っ取り早く感じるようになってきた。なので今列挙したアプリケーション群のほとんどは .zshrc で alias 定義しておいてやって、ターミナルでコマンドを打って切り替えてやっている。あとは Spotlight と併用・・・だ。

vim はテキストエディタとして

ここまで vim に触れてこなかったが、ここからは vim について書いていこう。

テキストエディタとして、途中 Emacs に何度か浮気しながらも今日まで10年以上にわたって使っている vim で、メールも書きたくなったので、vim で無名バッファを適当に作って、そこにメールの草稿を書いて、その本文をそのまま Mail.app に渡すような VimScript や AppleScript も書いてみた。エヌズのサイトに掲載してあるので、そっちを参照ということで。

日々のログも VimScript でシンタックスを使いやすいように定義して、ChangeLog を自分専用に改悪?したような ChangeLog もどきのファイル ([Note] バッファとして使っている) として管理してやるようにしている。重要なメールもこの [Note] にそのままコピペしておいてやり、処理を忘れないようにしたりしている。

作業効率化のためのスクリプトなんかも、当然の如く vim で書いてターミナルでパーミッションを設定して実行していたりする。なんというか、シェルスクリプト的なものは UI を考えたりしなくていいので、気軽に作れるし、気軽に捨てることもできて個人的には最近お気に入りだ。

Mail.app をメールリーダー兼 sendmail 的に使う

メール環境として Mac の Mail.app を手放せない理由は他にもある。確かにテキストは vim で書いていた方が手が慣れているので早かったりするのだが、To や CC なんかに、アドレスブックの連絡先が使えるのはやっぱり大きい。それにアドレスブックの連絡先は iCloud で Mac のみならず iPhone や iPad とも同期しているので、iPad でメールを書く時 (実はこれが結構、いや、かなりある。) も使えるし、他のメーラー+連絡先管理のアプリに移行するのも今更・・・と言った感じだ。この Mail とアドレスブックも、もう10年来使っている組み合わせだからというのも少なからずあるだろうが。

今回紹介したシェルスクリプトなどは・・・

ちょっと公開しよっかなー・・・などと思ってはみたものの、とりあえず自分用にサクっと作ったものでしかないので、動作も保証できなければソースも汚ったらしい。ということで、今回の記事は、こんな使い方しているよ!的なオチで締めたいと思う。

※ 2012年8月19日追記
一部のシェルスクリプトを GitHub で公開しました。

この記事へのコメント