SlideShare a Scribd company logo
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="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とは
特徴
普通の人が使いたいと思う関数が
だいたい入ってる
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 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コマンドで管理しているリポジトリに移
動する(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の下に配置する場
合の例
# ディレクトリがまだない場合は作成する
# このディレクトリ名は何でも良い
% mkdir -p $HOME/.zsh/anyframe-custom
% cd $HOME/.zsh/anyframe-custom
# このディレクトリ名は固定
% mkdir -p anyframe-functions/widgets
自分で関数を追加する
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
自分で関数を追加する
これでひとまず準備完了
自分で関数を追加する
次に、作ったディレクトリの下
($HOME/.zsh/anyframe-custom)
にファイルを作って、zshの関数の中身
を書く。
history -n -r 1 
| anyframe-selector-auto 
| anyframe-action-execute
自分で関数を追加する
後は、aliasを設定するかbindkeyでキ
ーバインドを割り当てる
alias ah=anyframe-widget-execute-history
# または
bindkey '^xr' anyframe-widget-execute-history
ファイル名が関数名になるので、実際
にはanyframe-widget-execute-
historyの部分はファイル名に置き換
える
自分で関数を追加する
自分で追加するのはちょっとややこ
しい
詳しくは以下の記事を参照
http://qiita.com/mollifier/
items/81b18c012d7841ab33c
3
anyframeを使おう
でも、普通に使う分にはだいたい使
えると思う
anyframeを使おう
ぜひ使ってみてください
anyframeを使おう
ありがとうございました

More Related Content

PDF
pecoを使おう
PDF
zshでコマンドライン履歴を活用する
PDF
anyframeを使おう
PDF
本格的に始めるzsh
PDF
oh-my-zshを使うのは止めよう
PDF
PDF
宇宙zsh #2
PDF
かなりすごい発表(かなり) at VimConf2014
pecoを使おう
zshでコマンドライン履歴を活用する
anyframeを使おう
本格的に始めるzsh
oh-my-zshを使うのは止めよう
宇宙zsh #2
かなりすごい発表(かなり) at VimConf2014

What's hot (20)

PDF
Vimを学びたい初心者のための5つの豆知識
PDF
Unite vim
PDF
我が evil-mode を嫌いな理由 〜evil-mode の闇〜
ODP
modern X86 environment
PDF
neobundle.vimについて+おまけ
PPTX
初心者Vimmerによるvim+rails開発
PDF
Shougoの開発環境
PDF
Iemoto hatamotoハンズオン
PDF
neovim = VM
PDF
Vim = VM
PDF
rucs_vim LT
PDF
Symfony2 workshop-1
PDF
【サポーターズCoLab勉強会】「美少女になりたい…」お手軽VTuber入門ハンズオン
PDF
15分でわかる zsh
PDF
Vimから見たemacs
PDF
Vimはこわくない
PDF
暗黒美夢王とEmacs
PDF
LT middleman で tumblr テーマ が開発してみた件
ODP
Ultimate completion environment with neocomplcache in vim
PDF
うわ…私のEmacs力、低すぎ...?
Vimを学びたい初心者のための5つの豆知識
Unite vim
我が evil-mode を嫌いな理由 〜evil-mode の闇〜
modern X86 environment
neobundle.vimについて+おまけ
初心者Vimmerによるvim+rails開発
Shougoの開発環境
Iemoto hatamotoハンズオン
neovim = VM
Vim = VM
rucs_vim LT
Symfony2 workshop-1
【サポーターズCoLab勉強会】「美少女になりたい…」お手軽VTuber入門ハンズオン
15分でわかる zsh
Vimから見たemacs
Vimはこわくない
暗黒美夢王とEmacs
LT middleman で tumblr テーマ が開発してみた件
Ultimate completion environment with neocomplcache in vim
うわ…私のEmacs力、低すぎ...?
Ad

Similar to anyframeを使おう (7)

PDF
5年間Yokohama.vimをやってみて感じた事
 
ODP
Firefox os simulatorについて
PPTX
おすすめVimプラグインまとめ
PDF
C# から Ruby に乗り換えた
PDF
Ruby on vim yokohama.vim発表資料
PDF
こわくないSymfony2 - 業務で使って気づいた7つの良いところ
PDF
Scala 初めての人が Heroku で Web アプリを公開するまで
5年間Yokohama.vimをやってみて感じた事
 
Firefox os simulatorについて
おすすめVimプラグインまとめ
C# から Ruby に乗り換えた
Ruby on vim yokohama.vim発表資料
こわくないSymfony2 - 業務で使って気づいた7つの良いところ
Scala 初めての人が Heroku で Web アプリを公開するまで
Ad

anyframeを使おう