anyframeを使おう

38
anyframeを使おう 2014/11/30 三宅 英明(mollifier)

Upload: hideaki-miyake

Post on 11-Jul-2015

750 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: anyframeを使おう

anyframeを使おう2014/11/30

三宅 英明(mollifier)

Page 2: anyframeを使おう

自己紹介

名前: 三宅 英明

Twitter: @mollifier

はてなID: mollifier

神戸のプログラマ

Page 3: anyframeを使おう

好きなもの

zsh

vim

vimperator

Page 4: anyframeを使おう

ブログとか

はてなブログ

http://mollifier.hatenablog.com/

Twitter

http://twitter.com/mollifier

Qiita

http://qiita.com/mollifier

Page 5: anyframeを使おう

anyframeを使おうanyframeとは

anyframeのインストール

anyframeの設定

anyframeでできること

自分で関数を追加する

Page 6: anyframeを使おう

anyframeを使おうanyframeとは

anyframeのインストール

anyframeの設定

anyframeでできること

自分で関数を追加する

Page 7: anyframeを使おう

anyframeとはpecoと組み合わせて使う関数が入ってるやつ

mollifier氏が作った

https://github.com/mollifier/anyframe

Page 8: anyframeを使おう

anyframeとは要するに便利な関数が入ってるだけ

自分で書けない/書きたくない人向け

Page 9: anyframeを使おう

anyframeとは作ろうと思ったきっかけ

Page 10: anyframeを使おう

anyframeとはググったらよく出てくるやつ

function peco-select-history() { local tac if which tac > /dev/null; then tac="tac" else tac="tail -r" fi BUFFER=$(history -n 1 | \ eval $tac | \ peco --query "$LBUFFER") CURSOR=$#BUFFER zle clear-screen}zle -N peco-select-history

Page 11: anyframeを使おう

anyframeとは間違いではない

動く

でも無駄なことしてる

なんかかっこわるい

Page 12: anyframeを使おう

かっこわるいポイント1evalしてる

eval $tac | \

# こうすればevalしなくてもいける${=tac} | \

Page 13: anyframeを使おう

かっこわるいポイント2そもそもtacとかいらないhistoryの-rオプションで上下順番が逆になる

BUFFER=$(history -n -r 1 | \ peco --query "$LBUFFER")

Page 14: anyframeを使おう

anyframeとはmanに書いてある

ちゃんとman読め

Page 15: anyframeを使おう

anyframeとはでも実際にはみんなコピペで使う

ブログとかにコピペで広まってる

多すぎてもう直せない

Page 16: anyframeを使おう

anyframeとはじゃあちゃんとしたやつを作ろう

ブログ記事は直せない

でもGitHubに置けば直せる

プルリクもできる

Page 17: anyframeを使おう

anyframeとはというわけでanyframeを作りました

Page 18: anyframeを使おう

anyframeとは現状ではあんまりはやってない

ぜひ使いましょう

Page 19: anyframeを使おう

anyframeを使おうanyframeとは

anyframeのインストール

anyframeの設定

anyframeでできること

自分で関数を追加する

Page 20: anyframeを使おう

anyframeのインストール手動でインストールする方法$HOME/.zsh/の下にインストールする場合の例

# ディレクトリがまだない場合は作成する% mkdir $HOME/.zsh/% cd $HOME/.zsh/% git clone [email protected]:mollifier/anyframe.git

Page 21: anyframeを使おう

anyframeのインストールそのあと~/.zshrcに次の設定を追加する

fpath=($HOME/.zsh/anyframe(N-/) $fpath)autoload -Uz anyframe-initanyframe-init

Page 22: anyframeを使おう

anyframeのインストールAntigenでもインストールできる

antigen bundle mollifier/anyframe

Page 23: anyframeを使おう

anyframeを使おうanyframeとは

anyframeのインストール

anyframeの設定

anyframeでできること

自分で関数を追加する

Page 24: anyframeを使おう

anyframeの設定使い方は、関数があるので、それにキーバインドを割り当てるだけ

Page 25: anyframeを使おう

anyframeの設定~/.zshrcの設定の例

bindkey '^xb' anyframe-widget-cdrbindkey '^x^b' anyframe-widget-checkout-git-branchbindkey '^x^r' anyframe-widget-execute-historybindkey '^x^p' anyframe-widget-put-historybindkey '^x^g' anyframe-widget-cd-ghq-repositorybindkey '^x^k' anyframe-widget-killbindkey '^x^i' anyframe-widget-insert-git-branch

Page 26: anyframeを使おう

anyframeの設定割り当てできる関数はhttps://github.com/mollifier/anyframe/tree/master/anyframe-functions/widgetsの中にある

Page 27: anyframeを使おう

anyframeを使おうanyframeとは

anyframeのインストール

anyframeの設定

anyframeでできること

自分で関数を追加する

Page 28: anyframeを使おう

anyframeでできること

anyframe-widget-execute-history

コマンドライン履歴から選んで実行する

anyframe-widget-put-history

コマンドライン履歴から選んでコマンドラインに挿入する

Page 29: anyframeを使おう

anyframeでできること

anyframe-widget-checkout-git-branch

Gitブランチを切り替える

anyframe-widget-insert-git-branch

Gitブランチ名をコマンドラインに挿入する

Page 30: anyframeを使おう

anyframeでできること

anyframe-widget-cdr

過去に移動したことのあるディレクトリに移動する(cdrが必要)

anyframe-widget-kill

プロセスをkillする

Page 31: anyframeを使おう

anyframeでできること

anyframe-widget-cd-ghq-repository

ghqコマンドで管理しているリポジトリに移動する

anyframe-widget-insert-filename

ファイル名をコマンドラインに挿入する

Page 32: anyframeを使おう

anyframeを使おうanyframeとは

anyframeのインストール

anyframeの設定

anyframeでできること

自分で関数を追加する

Page 33: anyframeを使おう

自分で関数を追加する

もちろん、自分で関数を追加できる

anyframeに含まれている他の関数が使える

自分で一から書くより楽

Page 34: anyframeを使おう

自分で関数を追加する

具体的な書き方は「ソースコード読んで」

Page 35: anyframeを使おう

自分で関数を追加する

ほんとはちゃんとドキュメント書かないといけない

ドキュメントはだいぶ不足してる

これがはやっていない原因の1つ

Page 36: anyframeを使おう

anyframeを使おうでも、普通に使う分にはだいたい使えると思う

Page 37: anyframeを使おう

anyframeを使おうぜひ使ってみてください

Page 38: anyframeを使おう

anyframeを使おうありがとうございました