gistpad (2) スマートなファイル指定、自動コミット & プッシュ、ファイル重複時の候補表示、zsh によるファイル名補完
gistpad を修正して汎用的に使えるようにしてみた。だいぶ便利になったはず。
alias gi='gistpad'
スマートなファイル指定
gist の番号を指定しなくてもファイル名だけで編集できる。
~# gi storygen.js # http://gist.github.com/365874 の storygen.js を編集する
自動コミット & プッシュ
オプションを指定するとエディタ終了後に自動で comit / push origin master が行われる。
~# gi -c memo.txt # auto commit ~# gi -p memo.txt # auto push ~# gi -pc memo.txt # auto commit & push
ファイル重複時の候補表示
同名のファイルが存在していた場合には候補を表示して選択をうながす。
~# gi gistfile1.js ambiguous filename: [0] /home/tily/gists/133515/gistfile1.js # // ==UserScript== [1] /home/tily/gists/120302/gistfile1.js # // ==UserScript== [2] /home/tily/gists/133756/gistfile1.js # // ==UserScript== > 2 [ENTERキーを押す]
zsh によるファイル名補完
今まで gist にポストしたファイルから番号なしでファイル名を自動補完する。
~# gi [TABキーを押す] AllEvents.java gistfile1.rb other_class_instance_spec.rb HelloAndroid.java gistfile1.yml output.txt array_spec_01.rb gistpad result.txt blog.md google_image_search_rakugaki.user.js server.rb blog.txt hatena_bookmark_tags_to_trac_wiki_notation.rb simple_twitter.user.js bot.rb how_to_mock_kernel_method_spec.rb solamimi.rb browse input.txt stammer.rb cgi-erb-sample.rb inspect_object_model.rb storygen.js consistent_hash.rb itunes_delete_redundant_files.rb stubbed_and_mocked_spec.rb decent_links.user.js japanese_spec.rb tategaki_all.user.js delete_hatena_bookmark_tags.rb java_style_new.rb teinei.rb delete_hatena_diary_entries.rb kissa.rb trac_sortable_ticket.user.js enumerable_class.rb kissa.yml twitter_statuses_to_tumblr_chat.rb enumerarerable.rb make_ldrize_stumble.rb vb.rb example.txt make_zozo_search_better.user.js vb_spec.rb fast_look_up_kihwanujish.user.js memo.txt gistfile1.js omniscient.rb ~# gi s[TABキーを押す] server.rb solamimi.rb storygen.js simple_twitter.user.js stammer.rb stubbed_and_mocked_spec.rb
この機能を使うには以下のような設定が必要。
- .zshrc
fpath=(~/zshcomp ${fpath}) autoload -U compinit; compinit
- 補完用関数の設定
~# gi -z > ~/zshcomp/_gistpad