背景
peco
を愛してやまないペコリアンの皆さん、こんにちは。
peco
のinitial commitから早くも3年とちょっと経ったようですが、今や人類はpeco
なしでは生きていけなくなってしまいました。
そんな生活必需品、無人島に1つ持っていくならpeco
なんですが、唯一の問題点が、処理ごとにaliasやkeymapを設定しないといけないという点です。もちろん、そんなことしなくても使えますが、生で記述すると記述量が増えるので、どうしてもaliasかkeymapを設定してしまいます。そうすると、aliasがどんどん増えていって覚えきれなくて、結果、よく使うコマンドは2、3個になってしまいます。ペコあるあるです。。
解決策
scope, target, actionという3つの項目をpeco
を使って選択するだけで、任意のコマンドを生成できるようにしてみました。
簡単に言うと、Unite.vim
のsource, kind, actionの概念に似たようなものだと思っていただければと。
例1
よくあるやつですが、ghq
を使ってgitフォルダへの移動するとき。
scopeはgit repository(ghq)、targetは移動先のリポジトリ名、actionはcdを選択すると、適当なコマンドを生成してくれるので、エンターを押すと移動できます。scopeは適当に名前を付けているだけなので、わかりやすくてペコラビリティの高い名前を付けてください。
例2
これまたよくあるやつ。プロセス一覧からプロセスを検索してkill。
scopeでProcess、targetでプロセス、actionでkillを選択するだけです。
例3
コンテナを選択してdockerコマンドを実行
使い方纏め
Purpose | Scope | Target | Action | Command ex. |
---|---|---|---|---|
ghq を使ってリポジトリにcd |
Git repository(ghq) | repository | cd | cd repository |
プロセス一覧からプロセスを検索してkill | Process | PID | kill | kill PID |
コンテナを選択してtop表示 | Docker a container | container | top | docker top ID |
docker-composeのログを表示 | Docker containers/images | container managed by Compose | logs | docker-compose logs -tf |
ファイルを選択してvi | Current dir | file | vi | vi file |
組み合わせはいろいろ考えられるので、ほかにもいろいろできます。
その他
ついでに、こんな機能もあればいいかなということで追加してみました。
-
zsh
とbash
に対応:.zshrc
と.bashrc
に似ているけれどもちょっと違う設定を書くのが大変なのでまとめました - マルチプラットフォーム対応:一部のコマンドではプラットフォーム毎の違いを吸収
- とは言いつつもよく使う機能にはkeymap: 履歴検索とディレクトリ移動はよく使うのでCtrl+r, Ctrl+hにkeymap
- コンテキストに合わせてリストの表示内容を変更:例)dockerがインストールされていなければ、dockerに関する項目は非表示
以上、ゆるふわツールの紹介でした。
https://github.com/kenji0x02/pecorian