Submit Search
pecoを使おう
•
15 likes
•
3,689 views
Hideaki Miyake
Follow
pecoを使おう
Read less
Read more
1 of 54
Download now
Download to read offline
More Related Content
pecoを使おう
1.
pecoを使おう2015/05/04 三宅 英明(mollifier)
2.
自己紹介 名前: 三宅 英明 Twitter:
@mollifier はてなID: mollifier 神戸のプログラマ
3.
好きなもの zsh vim vimperator
4.
ブログとか はてなブログ http://mollifier.hatenablog.com/ Twitter http://twitter.com/mollifier Qiita http://qiita.com/mollifier
5.
pecoを使おう pecoとは pecoのインストール pecoの基本 pecoで使う関数を作る
6.
pecoを使おう pecoとは pecoのインストール pecoの基本 pecoで使う関数を作る
7.
pecoとは インクリメンタルに絞り込んで、候補 から選んでなんかするやつ
8.
pecoとは プロジェクトページのURLは https://github.com/peco/peco
9.
pecoとは 言葉では説明しにくい
10.
pecoとは 典型的には、コマンドライン履歴か ら選んで、それを実行する
11.
pecoとは 去年はやった
12.
pecoとは Anything風インタフェースとか呼ば れることもある
13.
pecoとは Anything風インタフェースというの は、もともとEmacsのやつ Vimにもunite.vimという似たような やつがある pecoもそれに似てる
14.
pecoとは 似てるけど、たぶん元のEmacsのや つとはちょっと違う なので、「pecoはAnythingですー ^^」とか適当に言うと、たぶん本気 のEmacsの人に怒られる 気をつけたほうがいい
15.
pecoとは 使ってみないとよく分からない 使ってみましょう
16.
pecoを使おう pecoとは pecoのインストール pecoの基本 pecoで使う関数を作る
17.
pecoのインストール https://github.com/peco/ peco/releases にバイナリがある ので、ダウンロードして好きな場所 に置く 実行パーミッションを付ける
18.
pecoのインストール 安定したバージョンをインストール できる たぶん一番安心して使える方法 バージョンアップのときに手動でダ ウンロードしないといけないのが欠 点
19.
pecoのインストール Macを使っている場合はHomebrew でもインストールできる % brew install
peco
20.
pecoのインストール 前はbrew tap peco/pecoというのが 必要だったけど、今はいらない %
brew tap peco/peco #<= これは不要
21.
pecoのインストール 最新版とは限らない。若干バージョ ンが古いこともある 更新はbrew update pecoででき る。楽 Macの人にはわりとおすすめ
22.
pecoのインストール Macの人はbrew それ以外の人はバイナリを手動で ダウンロード
23.
pecoを使おう pecoとは pecoのインストール pecoの基本 pecoで使う関数を作る
24.
pecoの基本 とりあえずpecoを使ってみる
25.
pecoの基本 % cat /etc/passwd
| peco
26.
pecoの基本 要するに絞り込んで出力してるだけ 絞り込むときにインクリメンタルに絞 り込める grepを手動でやってる感じ
27.
pecoの基本 動作自体は非常に単純 peco単体では役に立たない
28.
pecoの基本 たぶん意図的に単純にしてる 単純だから、他のコマンドと組み合 わせやすい cutとかsedとかawkとか 複数の候補から選ばせるときに、 「選ばせる」という操作だけをpeco に任せる感じ
29.
pecoを使おう pecoとは pecoのインストール pecoの基本 pecoで使う関数を作る
30.
pecoで使う関数を作る pecoは入力を絞り込んで出力する だけのツール 他と組み合わせて使う 「他」の部分を作ってみましょう
31.
pecoで使う関数を作る pecoは入力を絞り込んで出力する だけのツール
32.
pecoで使う関数を作る 「入力」が必要 pecoの出力を「どうするか」という 処理も必要
33.
pecoで使う関数を作る 典型的な例 「入力」 = コマンドライン履歴 「どうするか」
= コマンドとみなして そのまま実行する
34.
pecoで使う関数を作る 雰囲気でいうとこんな感じ # コマンドライン履歴をpecoで絞り込む # その結果を一旦変数に入れる cmd=$(history
| peco) # それをそのまま実行する eval "$cmd"
35.
pecoで使う関数を作る 簡単な例 function h() { local
item item=$(builtin history -n -r 1 | peco) if [[ -z "$item" ]]; then return 1 fi eval "$item" }
36.
pecoで使う関数を作る コマンドラインでhと打って使う
37.
pecoで使う関数を作る いちいちEnterを押すのがめんどう という人は、Ctrl+rみたいなキーバ インドで実行することもできる
38.
pecoで使う関数を作る Ctrl+x Ctrl+rで実行する例 何かのキーバインドで関数を呼び出す ときはこう書く function peco-execute-history()
{ # この中に処理を書く } zle -N peco-execute-history bindkey '^x^r' peco-execute-history
39.
pecoで使う関数を作る Ctrl+x Ctrl+rで実行する例 function peco-execute-history()
{ local item item=$(builtin history -n -r 1 | peco) if [[ -z "$item" ]]; then return 1 fi BUFFER="$item" zle accept-line } zle -N peco-execute-history bindkey '^x^r' peco-execute-history
40.
pecoで使う関数を作る BUFFER="$item" で、今のコマンド ラインの内容を置き換える zle accept-lineでコマンドライン を実行する。つまりEnterを押したの と同じ
41.
pecoで使う関数を作る zle -Nとかいうのは、コマンドラインを 操作する処理を自分で作っているイメ ージ function peco-execute-history()
{ # この中に処理を書く } zle -N peco-execute-history bindkey '^x^r' peco-execute-history
42.
pecoで使う関数を作る 「コマンドラインを操作する処理」と いうのは、Ctrl+fでカーソルを右に 動かす、とかそういうの zshではそういうのを自分で作れる
43.
pecoで使う関数を作る さらにその中では現在のコマンドラ インとかを変更できる
44.
pecoで使う関数を作る 「手でコマンドラインを入力して」 「Enterを押す」という操作をzshの シェルスクリプトから操作できる peco自体は他のシェルでも使える けど、zshはこのへんが柔軟なので pecoと組み合わせて使いやすい
45.
pecoで使う関数を作る さっきと同じだけど、コマンドラインに 代入するだけの例 function peco-put-history() { local
item item=$(builtin history -n -r 1 | peco) if [[ -z "$item" ]]; then return 1 fi BUFFER="$item" CURSOR=$#BUFFER } zle -N peco-put-history bindkey '^x^p' peco-put-history
46.
pecoで使う関数を作る さっきのzle accept-line(Enterを 押す)をなくしただけ これも便利
47.
pecoで使う関数を作る ここまででできたこと 「履歴から選んで実行する」 「履歴から選んでコマンドラインに 挿入する」
48.
pecoで使う関数を作る 他には? もちろん工夫次第でいろいろできる
49.
pecoで使う関数を作る 工夫次第? 工夫次第 = シェルスクリプトでがん ばれば
50.
pecoで使う関数を作る 普通のシェルスクリプトで書ける head, sort, uniq,
sed, awk など など テキスト処理なので、Perl, Rubyと かを使ってもいい
51.
pecoで使う関数を作る シェルスクリプトでがんばれば がんばりたくない
52.
pecoで使う関数を作る シェルスクリプトが苦手な人はどう したらええの? そういう人向けのやつがあります
53.
pecoで使う関数を作る 続きは次の発表で
54.
pecoを使おう ありがとうございました
Download