Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
anyframeを使おう2015/05/04
三宅 英明(mollifier)
自己紹介
名前: 三宅 英明
Twitter: @mollifier
はてなID: mollifier
神戸のプログラマ
好きなもの
zsh
vim
vimperator
ブログとか
はてなブログ
http://mollifier.hatenablog.com/
Twitter
http://twitter.com/mollifier
Qiita
http://qiita.com/mollifier
anyframeを使おう
anyframeとは
anyframeのインストール
anyframeの設定
anyframeでできること
自分で関数を追加する
anyframeを使おう
anyframeとは
anyframeのインストール
anyframeの設定
anyframeでできること
自分で関数を追加する
anyframeとは
pecoと組み合わせて使う関数が入
ってるやつ
mollifierさんが作った
https://github.com/mollifier/
anyframe
anyframeとは
要するに便利な関数が入ってるだ
け
自分で書けない/書きたくない人向
け
anyframeとは
作ろうと思ったきっかけ
anyframeとは
ググったらよく出てくるやつ
function peco-select-history() {
local tac
if which tac > /dev/null; then
tac="tac"
else
tac="tai...
anyframeとは
間違いではない
動く
でも無駄なことしてる
なんかかっこわるい
かっこわるいポイント1
evalしてる
eval $tac | 
# こうすればevalしなくてもいける
${=tac} |
かっこわるいポイント2
そもそもtacとかいらない
historyの-rオプションで上下順番が
逆になる
BUFFER=$(history -n -r 1 | 
peco --query "$LBUFFER")
anyframeとは
manに書いてある
man読めば分かる
anyframeとは
でも実際にはみんなコピペで使う
ブログとかにコピペで広まってる
多すぎてもう直せない
anyframeとは
じゃあちゃんとしたやつを作ろう
ブログ記事は直せない
でもGitHubに置けば直せる
プルリクもできる
anyframeとは
というわけでanyframeを作りました
anyframeとは
特徴
普通の人が使いたいと思う関数が
だいたい入ってる
peco、percol、fzfに対応してる
anyframeとは
特徴
aliasでもbindkey(キーボード シ
ョートカットから呼び出すやつ)でも、
どちらからでも使える
選んだ結果をすぐに実行するのも、
コマンドラインに挿入するのもできる
拡張しやすい
anyframeとは
現状ではあんまりはやってない
ぜひ使いましょう
anyframeを使おう
anyframeとは
anyframeのインストール
anyframeの設定
anyframeでできること
自分で関数を追加する
anyframeのインストール
まずは先にpeco、percol、fzfをイン
ストールしておく
どれかひとつ好きなやつでOK
特に理由がなければ、pecoが無難
anyframeのインストール
手動でインストールする方法
$HOME/.zsh/の下にインストールす
る場合の例
# ディレクトリがまだない場合は作成する
% mkdir $HOME/.zsh/
% cd $HOME/.zsh/
% git ...
anyframeのインストール
そのあと~/.zshrcに次の設定を追加
する
fpath=($HOME/.zsh/anyframe(N-/) $fpath)
autoload -Uz anyframe-init
anyframe-init
anyframeのインストール
Antigenでもインストールできる
antigen bundle mollifier/anyframe
anyframeを使おう
anyframeとは
anyframeのインストール
anyframeの設定
anyframeでできること
自分で関数を追加する
anyframeの設定
使い方は、関数があるので、それに
キーバインドを割り当てるだけ
anyframeの設定
~/.zshrcの設定の例
bindkey '^xb' anyframe-widget-cdr
bindkey '^x^b' anyframe-widget-checkout-git-branch
bindkey '^x...
anyframeの設定
割り当てできる関数は https://
github.com/mollifier/
anyframe/tree/master/
anyframe-functions/widgets の
中にある
anyframeを使おう
anyframeとは
anyframeのインストール
anyframeの設定
anyframeでできること
自分で関数を追加する
anyframeでできること
anyframe-widget-execute-history
コマンドライン履歴から選んで実行する
anyframe-widget-put-history
コマンドライン履歴から選んでコマンドライン
に挿入する
anyframeでできること
anyframe-widget-checkout-git-
branch
Gitブランチを切り替える
anyframe-widget-insert-git-
branch
Gitブランチ名をコマンドラインに挿入する
anyframeでできること
anyframe-widget-cdr
過去に移動したことのあるディレクトリに移
動する(cdrが必要)
anyframe-widget-kill
プロセスをkillする
anyframeでできること
anyframe-widget-cd-ghq-
repository
ghqコマンドで管理しているリポジトリに移
動する(ghqが必要)
anyframe-widget-insert-filename
ファイル名を...
anyframeでできること
anyframe-widget-tmux-attach
tmuxセッションを選んでアタッチする
anyframe-widget-select-widget
anyframe-widget(anyframeで使える関...
anyframeを使おう
anyframeとは
anyframeのインストール
anyframeの設定
anyframeでできること
自分で関数を追加する
自分で関数を追加する
もちろん、自分で関数を追加できる
anyframeに含まれている他の関数
が使える
自分で一から書くより楽
自分で関数を追加する
具体的な書き方はと言うと
自分で関数を追加する
まず、ファイルを保存するためのディレ
クトリを作る。$HOME/.zsh/
anyframe-customの下に配置する場
合の例
# ディレクトリがまだない場合は作成する
# このディレクトリ名は何でも良い
% mkdi...
自分で関数を追加する
antigen bundleする前(anyframe-
initを呼び出す前)に、このディレクトリ
を$fpathに追加する。
if [[ -f ~/.zsh/antigen/antigen.zsh ]]; then
so...
自分で関数を追加する
これでひとまず準備完了
自分で関数を追加する
次に、作ったディレクトリの下
($HOME/.zsh/anyframe-custom)
にファイルを作って、zshの関数の中身
を書く。
history -n -r 1 
| anyframe-selector-auto ...
自分で関数を追加する
後は、aliasを設定するかbindkeyでキ
ーバインドを割り当てる
alias ah=anyframe-widget-execute-history
# または
bindkey '^xr' anyframe-widge...
自分で関数を追加する
自分で追加するのはちょっとややこ
しい
詳しくは以下の記事を参照
http://qiita.com/mollifier/
items/81b18c012d7841ab33c
3
anyframeを使おう
でも、普通に使う分にはだいたい使
えると思う
anyframeを使おう
ぜひ使ってみてください
anyframeを使おう
ありがとうございました
Upcoming SlideShare
Loading in …5
×

anyframeを使おう

3,522 views

Published on

anyframeを使おう

Published in: Technology
  • Be the first to comment

anyframeを使おう

  1. 1. anyframeを使おう2015/05/04 三宅 英明(mollifier)
  2. 2. 自己紹介 名前: 三宅 英明 Twitter: @mollifier はてなID: mollifier 神戸のプログラマ
  3. 3. 好きなもの zsh vim vimperator
  4. 4. ブログとか はてなブログ http://mollifier.hatenablog.com/ Twitter http://twitter.com/mollifier Qiita http://qiita.com/mollifier
  5. 5. anyframeを使おう anyframeとは anyframeのインストール anyframeの設定 anyframeでできること 自分で関数を追加する
  6. 6. anyframeを使おう anyframeとは anyframeのインストール anyframeの設定 anyframeでできること 自分で関数を追加する
  7. 7. anyframeとは pecoと組み合わせて使う関数が入 ってるやつ mollifierさんが作った https://github.com/mollifier/ anyframe
  8. 8. anyframeとは 要するに便利な関数が入ってるだ け 自分で書けない/書きたくない人向 け
  9. 9. anyframeとは 作ろうと思ったきっかけ
  10. 10. 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
  11. 11. anyframeとは 間違いではない 動く でも無駄なことしてる なんかかっこわるい
  12. 12. かっこわるいポイント1 evalしてる eval $tac | # こうすればevalしなくてもいける ${=tac} |
  13. 13. かっこわるいポイント2 そもそもtacとかいらない historyの-rオプションで上下順番が 逆になる BUFFER=$(history -n -r 1 | peco --query "$LBUFFER")
  14. 14. anyframeとは manに書いてある man読めば分かる
  15. 15. anyframeとは でも実際にはみんなコピペで使う ブログとかにコピペで広まってる 多すぎてもう直せない
  16. 16. anyframeとは じゃあちゃんとしたやつを作ろう ブログ記事は直せない でもGitHubに置けば直せる プルリクもできる
  17. 17. anyframeとは というわけでanyframeを作りました
  18. 18. anyframeとは 特徴 普通の人が使いたいと思う関数が だいたい入ってる peco、percol、fzfに対応してる
  19. 19. anyframeとは 特徴 aliasでもbindkey(キーボード シ ョートカットから呼び出すやつ)でも、 どちらからでも使える 選んだ結果をすぐに実行するのも、 コマンドラインに挿入するのもできる 拡張しやすい
  20. 20. anyframeとは 現状ではあんまりはやってない ぜひ使いましょう
  21. 21. anyframeを使おう anyframeとは anyframeのインストール anyframeの設定 anyframeでできること 自分で関数を追加する
  22. 22. anyframeのインストール まずは先にpeco、percol、fzfをイン ストールしておく どれかひとつ好きなやつでOK 特に理由がなければ、pecoが無難
  23. 23. anyframeのインストール 手動でインストールする方法 $HOME/.zsh/の下にインストールす る場合の例 # ディレクトリがまだない場合は作成する % mkdir $HOME/.zsh/ % cd $HOME/.zsh/ % git clone git@github.com:mollifier/anyframe.git
  24. 24. anyframeのインストール そのあと~/.zshrcに次の設定を追加 する fpath=($HOME/.zsh/anyframe(N-/) $fpath) autoload -Uz anyframe-init anyframe-init
  25. 25. anyframeのインストール Antigenでもインストールできる antigen bundle mollifier/anyframe
  26. 26. anyframeを使おう anyframeとは anyframeのインストール anyframeの設定 anyframeでできること 自分で関数を追加する
  27. 27. anyframeの設定 使い方は、関数があるので、それに キーバインドを割り当てるだけ
  28. 28. anyframeの設定 ~/.zshrcの設定の例 bindkey '^xb' anyframe-widget-cdr bindkey '^x^b' anyframe-widget-checkout-git-branch bindkey '^x^r' anyframe-widget-execute-history bindkey '^x^p' anyframe-widget-put-history bindkey '^x^g' anyframe-widget-cd-ghq-repository bindkey '^x^k' anyframe-widget-kill bindkey '^x^i' anyframe-widget-insert-git-branch
  29. 29. anyframeの設定 割り当てできる関数は https:// github.com/mollifier/ anyframe/tree/master/ anyframe-functions/widgets の 中にある
  30. 30. anyframeを使おう anyframeとは anyframeのインストール anyframeの設定 anyframeでできること 自分で関数を追加する
  31. 31. anyframeでできること anyframe-widget-execute-history コマンドライン履歴から選んで実行する anyframe-widget-put-history コマンドライン履歴から選んでコマンドライン に挿入する
  32. 32. anyframeでできること anyframe-widget-checkout-git- branch Gitブランチを切り替える anyframe-widget-insert-git- branch Gitブランチ名をコマンドラインに挿入する
  33. 33. anyframeでできること anyframe-widget-cdr 過去に移動したことのあるディレクトリに移 動する(cdrが必要) anyframe-widget-kill プロセスをkillする
  34. 34. anyframeでできること anyframe-widget-cd-ghq- repository ghqコマンドで管理しているリポジトリに移 動する(ghqが必要) anyframe-widget-insert-filename ファイル名をコマンドラインに挿入する
  35. 35. anyframeでできること anyframe-widget-tmux-attach tmuxセッションを選んでアタッチする anyframe-widget-select-widget anyframe-widget(anyframeで使える関数 )から選んでそれを実行する
  36. 36. anyframeを使おう anyframeとは anyframeのインストール anyframeの設定 anyframeでできること 自分で関数を追加する
  37. 37. 自分で関数を追加する もちろん、自分で関数を追加できる anyframeに含まれている他の関数 が使える 自分で一から書くより楽
  38. 38. 自分で関数を追加する 具体的な書き方はと言うと
  39. 39. 自分で関数を追加する まず、ファイルを保存するためのディレ クトリを作る。$HOME/.zsh/ anyframe-customの下に配置する場 合の例 # ディレクトリがまだない場合は作成する # このディレクトリ名は何でも良い % mkdir -p $HOME/.zsh/anyframe-custom % cd $HOME/.zsh/anyframe-custom # このディレクトリ名は固定 % mkdir -p anyframe-functions/widgets
  40. 40. 自分で関数を追加する antigen bundleする前(anyframe- initを呼び出す前)に、このディレクトリ を$fpathに追加する。 if [[ -f ~/.zsh/antigen/antigen.zsh ]]; then source ~/.zsh/antigen/antigen.zsh fpath=($HOME/.zsh/anyframe-custom(N-/) $fpath) # <= これを追加 antigen bundle mollifier/anyframe antigen apply fi
  41. 41. 自分で関数を追加する これでひとまず準備完了
  42. 42. 自分で関数を追加する 次に、作ったディレクトリの下 ($HOME/.zsh/anyframe-custom) にファイルを作って、zshの関数の中身 を書く。 history -n -r 1 | anyframe-selector-auto | anyframe-action-execute
  43. 43. 自分で関数を追加する 後は、aliasを設定するかbindkeyでキ ーバインドを割り当てる alias ah=anyframe-widget-execute-history # または bindkey '^xr' anyframe-widget-execute-history ファイル名が関数名になるので、実際 にはanyframe-widget-execute- historyの部分はファイル名に置き換 える
  44. 44. 自分で関数を追加する 自分で追加するのはちょっとややこ しい 詳しくは以下の記事を参照 http://qiita.com/mollifier/ items/81b18c012d7841ab33c 3
  45. 45. anyframeを使おう でも、普通に使う分にはだいたい使 えると思う
  46. 46. anyframeを使おう ぜひ使ってみてください
  47. 47. anyframeを使おう ありがとうございました

×