zsh のプロンプト設定をメモ

最近、zsh とscreen を使い始めました。こりゃ便利ですね!特にzsh は便利すぎます。

  • cd で直前にいたディレクトリ以外にも一発ジャンプできる
  • svn とうって、Tab 押すと、diff とかupdate とかのコマンド候補一覧が補完対象として表示される
  • scp コマンドとかの際に、リモートマシン上のファイルに対しても補完機能が働く
  • screen と併用した際に、コマンド履歴を共有できる
  • 誤ってコマンドをうつと、「もしかしてこれ?」てきなものを聞いてきてくれる


などなど、まだ浅い部分しか使えてないと思いますが、それでもめちゃくちゃ便利です。Introduction of the ZSHにも、「それ、zsh でできるよ!」ってことが沢山書かれています。

zsh を導入したい方には新入学生/新社会人応援企画:あるWebプログラマーの作業環境――豪傑の三種の神器【前編】 (1/2) - ITmedia エンタープライズが分かりやすいと思います。

プロンプトの設定

なんか、前置きの方が長くなってしまったo(;゚Д゚)o
.zshrc で、プロンプトの表示を設定する際に上手く行かなかったのでメモ。zsh のプロンプと表示をLinux の形式に設定する。

  • .zshrc

PS1="[${USER}@${HOST%%.*} %1~]%(!.#.$) "


僕の環境では、ホームディレクトリにいる場合は以下のように表示されます。

[luke@macbook ~]$

メモ
  • ${USER}@${HOST%%.*} => lukesilvia@macbook

「.*」 と設定すると、ホスト名のうち、最初の「.」の前までしか表示しない。この設定をしないと、macbook.local とか表示できます。

  • %1~ => (カレントが/usr/local/bin だとすると)bin

カレントディレクトリのパス の内、最下層のディレクトリ。パスを全て表示すると長くなるので、最下層のみ表示させてます。また、「~」をつけることで、ホームディレクトリにいる場合には「~」として表示されます。

  • %(!.#.$) => (現在のユーザがroot ユーザでないとすると)#

root ユーザでログインしている場合は#, その他のユーザの場合は$ になります。