よんちゅBlog

― このブログは自分用のメモや日々の問題などを共有するためのものです ―

20121005185841 お知らせ:  2013/07/17 ブログデザインをリニューアルしました。

gitで変更のあったファイルを簡単に開ける git-edit について

とにかく目的のファイルにすぐにアクセスしたかった。
ただそれだけ。

コードはGithubにあります。
github - yonchu/git-edit

インストール方法:

  • git-edit をPATHの通った所に置くだけ
  • zshを使用している場合は _git-edit をfpathの通った所に置いて下さい。

 (※ fpath は echo "$fpath" などで確認して下さい)

どういうコマンドなのか

変更のあったファイルをエディタで開くための gitサブコマンドです。

コマンド形式は以下

$ git edit [commit] [file ...]

こんな感じで使います。

$ git edit
$ git edit HEAD
$ git edit hoge
$ git edit *
$ git edit *.txt
$ git edit HEAD^ dir/*

コミットの指定はハッシュ値でも構いません。

zshの補完機能との連携

今回一番やりたかったこと。

git-edit単体でも、まあそれなりに使えますがzshと併用することで格段に使い勝手がよくなる…と思います。たぶん

こんな感じで変更のあったファイル名が補完できます。

$ git edit <TAB>
Editable Files
xxxx.txt    yyyy.sh    zzzz.c
Deleted Files
hoge.txt

$ git edit HEAD <TAB>
Commit Hash:62c91ef1f56d89b3328fa4aeae4bb52b579ad679
Editable Files
aaaa.txt    bbbb.sh    cccc.c
Deleted Files
fuga.txt
zshの設定について

zshの設定によっては上記とは違った表示になるかも。

補完候補の一覧表示はデフォルトでも有効になっているはずだけど、説明項目(ラベル)はデフォルトでは表示されないはず。

説明項目(ラベル)を表示させるには "~/.zshrc" 等に以下のように設定します。

zstyle ':completion:*' group-name ''
zstyle ':completion:*:descriptions' format '%B%d%b'

%B はボールド(太字)の有効、%b はボールドの無効 (不要なら消して下さい)
%F{color name} と %f で色を変更することもできます。
%d が説明項目(ラベル)の指定

注意事項

  • submodule の変更は無視されます。そこまではちょっと…
  • ファイル名をリネームした場合はリネーム前のファイル名が Deleted FIles に表示されます
  • HEADなどのコミットオブジェクトは補完されません。これはそのうち対応するかも

以上

ちょっと説明がざっくりし過ぎているが、そんな需要があるとも思えないのでよしとしよう。