あるWebプログラマーの作業環境――豪傑の三種の神器【後編】新入学生/新社会人応援企画(1/3 ページ)

はてなという企業でプログラマーとして働くあの人の開発環境には欠かすことのできない三種の神器が存在する。後編となる今回は、前回紹介できなかった神器を紹介するとともに、意外と知られていないWebプログラマーの生態についてもみてみよう。

» 2007年03月14日 07時00分 公開
[はてな 伊藤直也,ITmedia]

Zshを使おう!

 前回紹介した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で履歴を共有


リスト1 Zshの履歴を共有する設定

 なお、ここで紹介したTIPSをはじめ、履歴に関するノウハウは、高林哲氏による「横着プログラミング 第3回:履歴マニア」(『UNIX Magazine』2002年3月号)*に掲載されていますのでぜひご一読ください。

 Zshには履歴を共有する以外にも、

  • sshの引数のホスト名を補完するなど、実行コマンドに合わせて引数をインテリジェントに補完できる
  • Bashやtcshなどのファイルの補完機能があるのはもちろん、補完候補をカーソルで選択できる
  • 「./configure――charset=ujis……」など、複数にまたがる長いコマンドの履歴も、改行をくずさずさかのぼることができる

などかゆいところに手が届く便利機能が満載です。ここで紹介したのはほんのわずかな一例ですので、ぜひ一度Zshもトライしてみてください。コマンドラインから、

$ zsh


とするだけでZshが使えます。

このページで出てきた専門用語

高林哲氏による「横着プログラミング 第3回:履歴マニア」(『UNIX Magazine』2002年3月号)

http://0xcc.net/unimag/3/でも読むことが可能です


       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ