はてなという企業でプログラマーとして働くあの人の開発環境には欠かすことのできない三種の神器が存在する。後編となる今回は、前回紹介できなかった神器を紹介するとともに、意外と知られていないWebプログラマーの生態についてもみてみよう。
この連載のバックナンバーは以下の通りです。併せてお楽しみください。
連載第2回:Windows上でLinuxを走らせてみよう――coLinux
連載第3回:あるWebプログラマーの作業環境――豪傑の三種の神器【前編】
前回紹介したWebアプリケーション開発における三種の神器。GNU Emacs、GNU screenと紹介してきましたが、締めくくりはZshです。ZshはBashやtcshなどと同じUNIXのシェルですが、プログラマー向けにさまざまな機能を搭載した高機能シェルといえます。Bashやtcshと比較して、機能的に大きく違うわけではありませんが、細かな使い勝手でほかのシェルにはない便利さが感じられると思います。
またわたしがほかのどのシェルよりもZshを推薦するのには理由があります。
Bashにしてもtcshにしても、シェル上で実行したコマンドをさかのぼる際にはCtrl+Rキーを押して、履歴のインクリメンタルサーチを行うのが便利です。例えばBashでは、
[naoya@colinux naoya]$
とプロンプトが表示されているときにCtrl+Rキーを押すと、
(reverse-i-search)`':
と履歴のインクリメンタルサーチモードに切り替わり、ここで「pe」と入力すると、
(reverse-i-search)`pe': perl script/server.pl
「pe」でコマンド履歴を検索した結果が得られます。このときCtrl+Rキーを再度押すと、
(reverse-i-search)`pe': sudo perl -MCPAN -e shell
「pe」での検索結果を1つずつさかのぼっていくことができます。この履歴の検索機能は非常に強力で、一度入力したものならどんな複雑なコマンドもすべて履歴を追うことですぐに実行できます。わたしの場合、UNIXのシェル上で何かコマンドを実行する場合は、よほど簡単なものでない限りは必ず履歴を検索して取り出し、必要に応じてそれを編集し実行するといった具合です。こうすることで、必要最低限のタイプ数でコマンドを実行でき快適です。
さて、前回GNU Screenを紹介しましたが、実はBashやtcshでは複数起ち上げたウインドウをまたいで履歴を共有できないのです。そのため、1番目のウインドウで実行したコマンドの履歴と、2番目のそれがまったく別に管理されてしまい、いざというときに履歴が追えなかったりと不都合が生じます。
Zshではウインドウをまたいだ履歴の共有機能が標準で搭載されているため、この問題が発生しません。わたしがZshをオススメする一番大きな理由がこれです。履歴の共有を有効にするには、~/.zshrcに、リスト1の設定を書いておけばOKです。
HISTFILE=$HOME/.zsh-history # 履歴の保存先
HISTSIZE=100000 # メモリに展開する履歴の数
SAVEHIST=100000 # 保存する履歴の数
setopt share_history # 同一ホストで動いているZshで履歴を共有
なお、ここで紹介したTIPSをはじめ、履歴に関するノウハウは、高林哲氏による「横着プログラミング 第3回:履歴マニア」(『UNIX Magazine』2002年3月号)*に掲載されていますのでぜひご一読ください。
Zshには履歴を共有する以外にも、
などかゆいところに手が届く便利機能が満載です。ここで紹介したのはほんのわずかな一例ですので、ぜひ一度Zshもトライしてみてください。コマンドラインから、
$ zsh
とするだけでZshが使えます。
http://0xcc.net/unimag/3/でも読むことが可能です
Copyright © ITmedia, Inc. All Rights Reserved.