LoginSignup
4
4

More than 5 years have passed since last update.

keymapを使わずにpecoを使いこなす方法

Posted at

背景

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は適当に名前を付けているだけなので、わかりやすくてペコラビリティの高い名前を付けてください。

git_repository.gif

例2

これまたよくあるやつ。プロセス一覧からプロセスを検索してkill。
scopeでProcess、targetでプロセス、actionでkillを選択するだけです。

process.gif
デモはwindows環境で動かしているので悪しからず。

例3

コンテナを選択してdockerコマンドを実行

docker.gif

使い方纏め

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

組み合わせはいろいろ考えられるので、ほかにもいろいろできます。

その他

ついでに、こんな機能もあればいいかなということで追加してみました。

  • zshbashに対応:.zshrc.bashrcに似ているけれどもちょっと違う設定を書くのが大変なのでまとめました
  • マルチプラットフォーム対応:一部のコマンドではプラットフォーム毎の違いを吸収
  • とは言いつつもよく使う機能にはkeymap: 履歴検索とディレクトリ移動はよく使うのでCtrl+r, Ctrl+hにkeymap
  • コンテキストに合わせてリストの表示内容を変更:例)dockerがインストールされていなければ、dockerに関する項目は非表示

以上、ゆるふわツールの紹介でした。
https://github.com/kenji0x02/pecorian

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4