Glide Note

glidenote's blog

gistコマンドが便利だったのでzsh補完関数を書いた

Gist使ってますか!

普段はmattnさんのgist-vim経由でGistにpostしているんですが、 コマンドの結果とかをパイプとかで渡して、Gistにpost出来ないものかと思ってたら、 GitHub開発者のdefunkt氏が作ってた。全然知らなくて情弱丸出しだった。

メンテもちゃんとされてて、ver4.1.1以降なら2段階認証にも対応してる。

導入方法

1
gem install gist

Macなら

1
brew install gist

初期設定

1
gist --login

GH:E使ってる場合は、下記のような感じでURLを .bashrcとか.zshrcに書いておく

1
export GITHUB_URL=http://ghe.tokyo.pb/

使い方

a.rbをPOST。これが一般的な使い方

1
gist a.rb

複数を一気にPOST

1
2
gist a b c
gist *.rb

-fでファイル名を設定して、a.rbをPOST

1
gist -f test.rb <a.rb

などなど。

そのほかの使い方は公式ページを見てもらうのが良いかと思います。

https://github.com/defunkt/gist#command

私の実際の使い方

私はコマンドの結果を直接GistにPOSTしたいとき使ってるんですが、 SSL証明書を入れ替えして、opensslコマンドで確認したり

1
2
3
openssl s_client -connect github.com:443 -showcerts << EOF | gist
HEAD / HTTP/1.0
EOF

GistにPostされている内容

とかみたいに、使ってます。

その他の便利設定

下記のように.zshrcとかにaliasを設定しておくと、Gistにpostした後に ブラウザが開いて、GistのURLがクリップボードに自動で入ってくれるようになってます。

1
alias gist='gist -c -o -p'

あと用途的にコマンドとかの結果を直接POSTしてるので、思わぬ事故を防止するために-pを付けて、 デフォルト非公開でPOSTしてます。 社用MacはPOST先が社内GH:Eサーバなので、インターネット上に公開されるわけで無いんですが、念のため。 Gistは非公開設定でもURL知ってれば閲覧出来るので、誰かに伝えるときはURL渡して デフォルト非公開でも運用的に問題も無い感じです。

公開するものは基本的に見やすいようにvimで整形するので、 gist-vim経由でPOSTとgistと使い分けをしてます。

zshでの利用

zshで補完されないと不便だったので、zsh補完関数を書いて、zsh-completionsにmergeされているので、 zsh-completionsを利用していれば、gistコマンドが下記のように補完されるようになってます。

参考

Comments