SlideShare a Scribd company logo
1 of 38
Download to read offline
anyframeを使おう 
2014/11/30 
三宅 英明(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="tail -r" 
fi 
BUFFER=$(history -n 1 |  
eval $tac |  
peco --query "$LBUFFER") 
CURSOR=$#BUFFER 
zle clear-screen 
} 
zle -N peco-select-history
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とは 
現状ではあんまりはやってない 
ぜひ使いましょう
anyframeを使おう 
anyframeとは 
anyframeのインストール 
anyframeの設定 
anyframeでできること 
自分で関数を追加する
anyframeのインストール 
手動でインストールする方法 
$HOME/.zsh/の下にインストールす 
る場合の例 
# ディレクトリがまだない場合は作成する 
% mkdir $HOME/.zsh/ 
% cd $HOME/.zsh/ 
% git clone git@github.com:mollifier/anyframe.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^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
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コマンドで管理しているリポジトリに移 
動する 
anyframe-widget-insert-filename 
ファイル名をコマンドラインに挿入する
anyframeを使おう 
anyframeとは 
anyframeのインストール 
anyframeの設定 
anyframeでできること 
自分で関数を追加する
自分で関数を追加する 
もちろん、自分で関数を追加できる 
anyframeに含まれている他の関数 
が使える 
自分で一から書くより楽
自分で関数を追加する 
具体的な書き方は「ソースコード読 
んで」
自分で関数を追加する 
ほんとはちゃんとドキュメント書かな 
いといけない 
ドキュメントはだいぶ不足してる 
これがはやっていない原因の1つ
anyframeを使おう 
でも、普通に使う分にはだいたい使 
えると思う
anyframeを使おう 
ぜひ使ってみてください
anyframeを使おう 
ありがとうございました

More Related Content

What's hot

Shougoの開発環境
Shougoの開発環境Shougoの開発環境
Shougoの開発環境Shougo
 
Unite vim
Unite vim Unite vim
Unite vim Shougo
 
modern X86 environment
modern X86 environmentmodern X86 environment
modern X86 environmentShougo
 
neobundle.vimについて+おまけ
neobundle.vimについて+おまけneobundle.vimについて+おまけ
neobundle.vimについて+おまけShougo
 
neovim = VM
neovim = VMneovim = VM
neovim = VMShougo
 
Vimから見たemacs
Vimから見たemacsVimから見たemacs
Vimから見たemacsShougo
 
暗黒美夢王とEmacs
暗黒美夢王とEmacs暗黒美夢王とEmacs
暗黒美夢王とEmacsShougo
 
Vim = VM
Vim = VMVim = VM
Vim = VMShougo
 
Ultimate completion environment with neocomplcache in vim
Ultimate completion environment with neocomplcache in vimUltimate completion environment with neocomplcache in vim
Ultimate completion environment with neocomplcache in vimShougo
 
うわ…私のEmacs力、低すぎ...?
うわ…私のEmacs力、低すぎ...?うわ…私のEmacs力、低すぎ...?
うわ…私のEmacs力、低すぎ...?Masahiro Sano
 
Iemoto hatamotoハンズオン
Iemoto hatamotoハンズオンIemoto hatamotoハンズオン
Iemoto hatamotoハンズオン西村 州平
 
【サポーターズCoLab勉強会】「美少女になりたい…」お手軽VTuber入門ハンズオン
【サポーターズCoLab勉強会】「美少女になりたい…」お手軽VTuber入門ハンズオン【サポーターズCoLab勉強会】「美少女になりたい…」お手軽VTuber入門ハンズオン
【サポーターズCoLab勉強会】「美少女になりたい…」お手軽VTuber入門ハンズオンKohki Nakaji
 
Mon, Muninによる楽々監視生活
Mon, Muninによる楽々監視生活Mon, Muninによる楽々監視生活
Mon, Muninによる楽々監視生活Akihiro Kuwano
 
oh-my-zshを使うのは止めよう
oh-my-zshを使うのは止めようoh-my-zshを使うのは止めよう
oh-my-zshを使うのは止めようHideaki Miyake
 
すごいVimでhaskellを書こう@なごやまつり
すごいVimでhaskellを書こう@なごやまつりすごいVimでhaskellを書こう@なごやまつり
すごいVimでhaskellを書こう@なごやまつりcohama
 

What's hot (20)

Shougoの開発環境
Shougoの開発環境Shougoの開発環境
Shougoの開発環境
 
Unite vim
Unite vim Unite vim
Unite vim
 
modern X86 environment
modern X86 environmentmodern X86 environment
modern X86 environment
 
neobundle.vimについて+おまけ
neobundle.vimについて+おまけneobundle.vimについて+おまけ
neobundle.vimについて+おまけ
 
neovim = VM
neovim = VMneovim = VM
neovim = VM
 
Vimから見たemacs
Vimから見たemacsVimから見たemacs
Vimから見たemacs
 
暗黒美夢王とEmacs
暗黒美夢王とEmacs暗黒美夢王とEmacs
暗黒美夢王とEmacs
 
Vim = VM
Vim = VMVim = VM
Vim = VM
 
Ultimate completion environment with neocomplcache in vim
Ultimate completion environment with neocomplcache in vimUltimate completion environment with neocomplcache in vim
Ultimate completion environment with neocomplcache in vim
 
うわ…私のEmacs力、低すぎ...?
うわ…私のEmacs力、低すぎ...?うわ…私のEmacs力、低すぎ...?
うわ…私のEmacs力、低すぎ...?
 
rucs_vim LT
rucs_vim LTrucs_vim LT
rucs_vim LT
 
Iemoto hatamotoハンズオン
Iemoto hatamotoハンズオンIemoto hatamotoハンズオン
Iemoto hatamotoハンズオン
 
【サポーターズCoLab勉強会】「美少女になりたい…」お手軽VTuber入門ハンズオン
【サポーターズCoLab勉強会】「美少女になりたい…」お手軽VTuber入門ハンズオン【サポーターズCoLab勉強会】「美少女になりたい…」お手軽VTuber入門ハンズオン
【サポーターズCoLab勉強会】「美少女になりたい…」お手軽VTuber入門ハンズオン
 
Vimはこわくない
VimはこわくないVimはこわくない
Vimはこわくない
 
Mon, Muninによる楽々監視生活
Mon, Muninによる楽々監視生活Mon, Muninによる楽々監視生活
Mon, Muninによる楽々監視生活
 
oh-my-zshを使うのは止めよう
oh-my-zshを使うのは止めようoh-my-zshを使うのは止めよう
oh-my-zshを使うのは止めよう
 
Zsh 2
Zsh 2Zsh 2
Zsh 2
 
すごいVimでhaskellを書こう@なごやまつり
すごいVimでhaskellを書こう@なごやまつりすごいVimでhaskellを書こう@なごやまつり
すごいVimでhaskellを書こう@なごやまつり
 
Symfony2 workshop-1
Symfony2 workshop-1Symfony2 workshop-1
Symfony2 workshop-1
 
宇宙zsh #2
宇宙zsh #2宇宙zsh #2
宇宙zsh #2
 

Similar to anyframeを使おう

Scala 初めての人が Heroku で Web アプリを公開するまで
Scala 初めての人が Heroku で Web アプリを公開するまでScala 初めての人が Heroku で Web アプリを公開するまで
Scala 初めての人が Heroku で Web アプリを公開するまでHideaki Miyake
 
Xamarin で Prism を使いたい! ~「正式対応」 まで待てない人のための Prism 利用 Tips~
Xamarin で Prism を使いたい! ~「正式対応」 まで待てない人のための Prism 利用 Tips~Xamarin で Prism を使いたい! ~「正式対応」 まで待てない人のための Prism 利用 Tips~
Xamarin で Prism を使いたい! ~「正式対応」 まで待てない人のための Prism 利用 Tips~Tatsuji Kuroyanagi
 
秋のVim祭り Rubyを添えて
秋のVim祭り Rubyを添えて秋のVim祭り Rubyを添えて
秋のVim祭り Rubyを添えてYuta Ogura
 
Traffix Jam インストール方法
Traffix Jam インストール方法Traffix Jam インストール方法
Traffix Jam インストール方法kohiharu
 
Vimプラグインを使おう
Vimプラグインを使おうVimプラグインを使おう
Vimプラグインを使おうHideaki Miyake
 
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境Masashi Shinbara
 
Programming camp Codereading
Programming camp CodereadingProgramming camp Codereading
Programming camp CodereadingHiro Yoshioka
 
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfesTakeshi Komiya
 
1.29.user,user,user
1.29.user,user,user1.29.user,user,user
1.29.user,user,userTonny Xu
 
Vim の開発環境
Vim の開発環境Vim の開発環境
Vim の開発環境eagletmt
 
今どきのPerl開発にvimを対応させる
今どきのPerl開発にvimを対応させる今どきのPerl開発にvimを対応させる
今どきのPerl開発にvimを対応させるKenta Kase
 
爆速プレビュープロキシ pool
爆速プレビュープロキシ pool爆速プレビュープロキシ pool
爆速プレビュープロキシ poolmookjp
 
Dockerのディスクについて ~ファイルシステム・マウント方法など~
Dockerのディスクについて ~ファイルシステム・マウント方法など~Dockerのディスクについて ~ファイルシステム・マウント方法など~
Dockerのディスクについて ~ファイルシステム・マウント方法など~HommasSlide
 
20090415 すばらしきSymfonyの世界へようこそ
20090415 すばらしきSymfonyの世界へようこそ20090415 すばらしきSymfonyの世界へようこそ
20090415 すばらしきSymfonyの世界へようこそHiromu Shioya
 
terraform基礎
terraform基礎terraform基礎
terraform基礎risa buto
 
Arduino を PHP で制御する
Arduino を PHP で制御するArduino を PHP で制御する
Arduino を PHP で制御するKenichi Ahagon
 
GruntでJavaScript 前作業の自動化!
GruntでJavaScript 前作業の自動化!GruntでJavaScript 前作業の自動化!
GruntでJavaScript 前作業の自動化!leverages_event
 
Cloud Foundry Cli Plugin入門
Cloud Foundry Cli Plugin入門Cloud Foundry Cli Plugin入門
Cloud Foundry Cli Plugin入門Takeshi Morikawa
 

Similar to anyframeを使おう (20)

Scala 初めての人が Heroku で Web アプリを公開するまで
Scala 初めての人が Heroku で Web アプリを公開するまでScala 初めての人が Heroku で Web アプリを公開するまで
Scala 初めての人が Heroku で Web アプリを公開するまで
 
Xamarin で Prism を使いたい! ~「正式対応」 まで待てない人のための Prism 利用 Tips~
Xamarin で Prism を使いたい! ~「正式対応」 まで待てない人のための Prism 利用 Tips~Xamarin で Prism を使いたい! ~「正式対応」 まで待てない人のための Prism 利用 Tips~
Xamarin で Prism を使いたい! ~「正式対応」 まで待てない人のための Prism 利用 Tips~
 
秋のVim祭り Rubyを添えて
秋のVim祭り Rubyを添えて秋のVim祭り Rubyを添えて
秋のVim祭り Rubyを添えて
 
Traffix Jam インストール方法
Traffix Jam インストール方法Traffix Jam インストール方法
Traffix Jam インストール方法
 
Vimプラグインを使おう
Vimプラグインを使おうVimプラグインを使おう
Vimプラグインを使おう
 
Tdd vim
Tdd vimTdd vim
Tdd vim
 
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
 
20131227_appium+rspec
20131227_appium+rspec20131227_appium+rspec
20131227_appium+rspec
 
Programming camp Codereading
Programming camp CodereadingProgramming camp Codereading
Programming camp Codereading
 
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
 
1.29.user,user,user
1.29.user,user,user1.29.user,user,user
1.29.user,user,user
 
Vim の開発環境
Vim の開発環境Vim の開発環境
Vim の開発環境
 
今どきのPerl開発にvimを対応させる
今どきのPerl開発にvimを対応させる今どきのPerl開発にvimを対応させる
今どきのPerl開発にvimを対応させる
 
爆速プレビュープロキシ pool
爆速プレビュープロキシ pool爆速プレビュープロキシ pool
爆速プレビュープロキシ pool
 
Dockerのディスクについて ~ファイルシステム・マウント方法など~
Dockerのディスクについて ~ファイルシステム・マウント方法など~Dockerのディスクについて ~ファイルシステム・マウント方法など~
Dockerのディスクについて ~ファイルシステム・マウント方法など~
 
20090415 すばらしきSymfonyの世界へようこそ
20090415 すばらしきSymfonyの世界へようこそ20090415 すばらしきSymfonyの世界へようこそ
20090415 すばらしきSymfonyの世界へようこそ
 
terraform基礎
terraform基礎terraform基礎
terraform基礎
 
Arduino を PHP で制御する
Arduino を PHP で制御するArduino を PHP で制御する
Arduino を PHP で制御する
 
GruntでJavaScript 前作業の自動化!
GruntでJavaScript 前作業の自動化!GruntでJavaScript 前作業の自動化!
GruntでJavaScript 前作業の自動化!
 
Cloud Foundry Cli Plugin入門
Cloud Foundry Cli Plugin入門Cloud Foundry Cli Plugin入門
Cloud Foundry Cli Plugin入門
 

anyframeを使おう