時:分」というフォーマット。「...」を太字のマジェンタ背景の白文字にする。2行目左にでるプロンプト。実行中のジョブ数が1つ以上ある場合だけ「(%j)」を表示。「...」を太字にする。一般ユーザなら「%」、rootユーザなら「#」になる。プロンプトフォーマットを展開した後の文字数を返す。プロンプトフォーマットを展開する。ANSIエスケープシーケンスを削除。Xのwcは数字の前に空白を出力するので削除する。プロンプトを更新する。プロンプトバーの左側の文字数を数える。いるのでこれは一番最初に実行しなければいけない。プロンプトバーに使える残り文字を計算する。$COLUMNSにはターミナルの横幅が入っている。パスに展開される「%d」を削除。「%d」を抜いた文字数を計算する。パスの最大長を計算する。「...」を算術演算した結果で展開する。パスに展開される「%d」に最大文字数制限をつける。xが真のときはtrue-textになり偽のときはfalse-textになる。ために用いているだけなので、xは必ず真になる条件を指定している。現在の絶対パスが/以下にあると真。長い分を削除して「...」にする。「${max_path_length}」カラムより長くなることはない。「${bar_rest_length}」文字分の「-」を作っている。後で切り詰めるので十分に長い文字列を作っているだけ。プロンプトバー全体を「${bar_rest_length}」カラム分にする。「...」を最大で「${bar_rest_length}」カラムにする。「...」を太字で緑背景の白文字にする。バージョン管理システムの情報を取得する。バージョン管理システムの情報があったら右プロンプトに表示する。コマンド実行前に呼び出されるフック。update_prompt)補完zshのとても大事な機能です。compinitcompinit補完候補をグループ化するとぐっと見やすくなります。補完方法毎にグループ化する。「...」を太字にする。''補完候補が多いときや日本語のファイル名のときはメニューから選択できると便利です。selectの他にtrueも設定できるのですが、それを設定するとすぐに補完された状態になり使い勝手が悪いため設定していません。補完侯補をメニューから選択する。補完候補を一覧から選択する。補完候補が2つ以上なければすぐに補完する。select=2パスを補完しているときにディレクトリやシンボリックリンクがパッと見てわかるので便利です。補完候補に色を付ける。空文字列はデフォルト値を使うという意味。""大文字を入力しなくても大文字の補完候補が出てきて便利です。Emacsのpartial-completion-modeのようにも補完できて、public_htmlをp_で補完できて便利です。補完候補がなければより曖昧に候補を探す。小文字を大文字に変えたものでも補完する。「.」「_」「-」の前にワイルドカード「*」があるものとして補完する。r:|[._-]=*'多めに補完方法を使っています。指定した順番に実行する。前回の補完結果を再利用する。globを展開しないで候補の一覧から補完する。ヒストリのコマンドも補完候補とする。補完候補にださないと指定したものも補完候補とする。似ている補完候補も補完候補とする。カーソル以降を無視してカーソル位置までで補完する。_prefix細々と便利な設定です。補完候補をキャッシュする。sudo時にはsudo用のパスも使う。カーソル位置で補完する。globを展開しないで候補の一覧から補完する。補完時にヒストリを自動的に展開する。補完候補がないときなどにビープ音を鳴らさない。辞書順ではなく数字順に並べる。numeric_glob_sort展開configureを使うときに便利です。「~」や「=コマンド」などのファイル名展開を行う。magic_equal_substあまり必要な機会はありませんが、設定しています。拡張globを有効にする。glob中で「(#...)」という書式で指定する。globでパスを生成したときに、パスがディレクトリだったら最後に「/」をつける。mark_dirsジョブ別の端末からgdbでアタッチするときにプロセスIDがわかると便利です。jobsでプロセスIDも出力する。明示的にtimeを使わずに済んで便利です。自動的に消費時間の統計情報を表示する。REPORTTIME=3ログイン・ログアウトクラックされたときにすぐに気づけ(ることがあり)ます。全てのユーザのログイン・ログアウトを監視する。ログイン時にはすぐに表示する。^Dでログアウトしないようにする。ignore_eof単語C-wで単語単位で削除するときにパスの1コンポーネントだけ削除できて便利です。M-f/M-bで単語移動をする人も便利でしょう。「/」も単語区切りとみなす。WORDCHARS=${WORDCHARS:s,/,,}aliasLとGが特に便利です。ページャーを使いやすくする。grepを使いやすくする。sed'rrをよく使います。ファイル操作を確認する。-i"poをよく使います。pdはauto_pushdを設定しているため使いません。pushd/popdのショートカット。po="popd"素のlsを使うことはほとんどなく、いつもlaを使っています。自分関連のプロセスのみ表示。;;esacウィンドウタイトルタブを切り替えているときに便利です。実行中のコマンドとユーザ名とホスト名とカレントディレクトリを表示。X環境上でだけウィンドウタイトルを変える。package.zshの使い方GitHubにあるおすすめ設定の中にpackage.zshという簡単なパッケージ管理*1システムも入っています。これを使えばGitHub上にあるzshを拡張するパッケージを簡単にインストールすることができます。auto-fuを使う場合は以下のようにします。auto-fuの設定をするファイルが~/.zsh.d/config/packages.zshなのはauto-fuがzshの標準機能ではなく追加パッケージだからです。このポリシーについてはこのページの先頭にある「ディレクトリ構成」のところを見直してください。パッケージ管理システムを読み込む。パッケージがインストールされていなければGitHubからcloneしてくる。パッケージを読み込む。auto-fuを初期化する。auto-fuをカスタマイズする。Enterを押したときは自動補完された部分を利用しない。おすすめ設定を読み込む。追加パッケージの設定を読み込む。~/.zsh.d/config/packages.zshこれで次にzshを起動するとauto-fuが使えるようになっています。まとめ長年漬け込んできたzshの設定を紹介しました。ここで紹介した内容はGitHubに置いておいたので、興味がある人は試してみてください。おすすめEmacs設定もありますので、Emacsも使っているひとはそちらも試してみてください。「管理」というより「インストール」というか「ダウンロード」。4.0とGFDLのデュアルライセンスで自由に利用できます。クリアコードはプログラミングが楽しいソフトウェア開発者を1名募集しています。クリアコードは「クリアコードをいい感じにする人」を1名募集しています。クリアコードはフリーソフトウェア開発で培った技術力を提供しています。Thunderbird)とRubyとGroonga(全文検索)に関連した開発を得意としています。