Minimalistic, powerful and extremely customizable Zsh prompt
最強のヒストリ補完を求めて シェルヒストリに不満を持っていたので自作しました。今の自分にとっては必要な機能を盛り込んでいて便利に使えていますが、誰かにとっては、もしくは数カ月後の自分にとってはぜんぜん最強じゃないかもしれないです。 以前このようなエントリを書きました。 www.tellme.tokyo このころから (いやもっと前から) シェルのヒストリ補完に不満を持っていました。 単純にデフォルトの C-r だと目的のものを探しづらい 例えばコマンド名の一部だけだとノイズが多すぎる けどディレクトリは覚えているからそれでもフィルタしたい、とか 他にも色々あって (その理由について先のエントリを見てもらうとして) zsh-history というツールを書きました。 GitHub - b4b4r07/zsh-history: A plugin for zsh history extended
やることの9割は以下の内容です。 zsh の vcs_info に独自の処理を追加して stash 数とか push していない件数とか何でも表示する 自分の環境で動作させようとしたときに軽くハマったので記載しておく。 RPROMPTじゃなくてPROMPTに表示しようとした場合 参照元のサイトだと、gitのステータスなんやらはRPROMPTに表示ですが、WindowsでPosh-Git使ってる見としてはPROMPTの右端に表示したいところ。 というわけでそのようにしてみますが、このままやろうとすると色の指定とかがエスケープ食らってそのまま(%F{yellow}~%fみたいに)表示されてしまうので、そこに気をつけましょう。 表示にはpsvarを使います。 function _update_vcs_info_msg() { psvar=() LANG=en_US.UTF-8 vcs_info
zsh で Git 使ってる人はプロンプトにブランチ名とかを表示してる人も多いと思う。 zsh に標準で入ってる vcs_info っていうのを使うとだいたいいい感じにできるんだけど、できないことも当然ある。 例えば stash した数の表示には対応していないので、自分で無理矢理な感じで Git コマンドを呼び出してプロンプトに表示してる人もいると思う。 でも zsh 4.3.11 ぐらいから vcs_info に Hooks というのが追加されて、元の機能に自分で処理を追加できるようになってる。これを使うと好きなようにカスタマイズできるようになるので紹介する。 この記事でできるようになること こんなことがプロンプトに表示できるようになる。 使用しているバージョン管理システムの名前(svn, git, hg, ...) 現在のブランチ名 マージ失敗のエラー表示 さらに Git の場合は以下
zshのターミナルに今いるパスのリポジトリの情報を表示してみることにします。最終目標はこんな感じ。 ブランチ名を表示 全てコミットされてきれいな状態であれば緑色 addされていないファイルがあれば+マークをつけて赤色 commitされていないファイルがあれば!マークをつけて黄色 ちなみにこの記事に書いてあることは zsh のバージョンが 4.3.10 以上に限って有効です。 さて、これを実現するには vcs_info というものを使います。以下のような記述を ~/.zshrc に追加します。 # この行は現在のパスを表示する設定です。ブランチを表示して色をつける設定とは関係ありません RPROMPT="%{${fg[blue]}%}[%~]%{${reset_color}%}" autoload -Uz vcs_info setopt prompt_subst zstyle ':vcs_i
# 補完を有効にする autoload -U compinit compinit -u # 補完メッセージを読みやすくする zstyle ':completion:*' verbose yes zstyle ':completion:*' format '%B%d%b' zstyle ':completion:*:warnings' format 'No matches for: %d' zstyle ':completion:*' group-name '' 補完関数のルール $fpath の通ったディレクトリに補完関数を置く nyan コマンドの補完関数なら _nyan という名前で保存する 補完関数の先頭には #compdef nyan と補完対象のコマンド名を書く ファイル名と同じ名前の関数を作りその中に補完関数を書く ~/zsh/functions/_nyan
会社でコードを書いていると、いろんなプロジェクトのディレクトリ間を頻繁に移動します。毎回cdするのはだるいので、それを解消する便利なzsh用の関数と補完関数を書いたので紹介します。はてなのエンジニアのひとと、zsh補完関数を書いてみたい人にはそこそこ役立つといった趣のエントリです。 会社のプロジェクトのリポジトリは、~/work/hatena というところに全部まとめています。だいたい以下のような感じです。 > ls ~/work/hatena Hatena-Antenna/ Hatena-Diary/ Hatena-Ugomemo/ git-hooks/ Hatena-Bookmark/ Hatena-Group/ Ridge/ iphone/ Hatena-Coco/ Hatena-Star/ android/ sketch/ 各プロジェクトのリポジトリには頻繁に移動するので、簡単なz
Homebrewの導入方法については以前の記事を参考にして下さい。 以下、homebrewおよびzshインストール後に設定していきます。 1.zsh流の環境変数PATHの設定方法 環境変数PAHTに "/usr/local/bin" などを追加する場合、zshでもbashと同じ方法で設定することができますが、今回はzsh流の設定方法を行いましょう。 以下の設定を "~/.zshrc" に追加して下さい。 ## 重複パスを登録しない typeset -U path cdpath fpath manpath ## sudo用のpathを設定 typeset -xT SUDO_PATH sudo_path typeset -U sudo_path sudo_path=({/usr/local,/usr,}/sbin(N-/)) ## pathを設定 path=(~/bin(N-/) /usr/l
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く