rcmdnk's blog

シェルスクリプトで対話的な選択を出来るようにするスクリプトを作った で紹介したsentaku というスクリプトに対してリスト中のアイテムを上下出来る機能を実装しました。

Sponsored Links

やりたいこと

sentakuでは、インプットファイルを決めて

$ sentaku -F input.txt

などとすれば、その中のにあるものをリストし、リストから欲しい値を取る事ができたりします。

また、

$ sentaku -F input.txt -p new_word

とすれば、input.txt内のリストの先頭にnew_wordを加えられます 1

ここで、このスクリプトから追加することは出来るのですが、 保存したリストを変更したりすることがスクリプトから出来ないので、 どうしてもしたいときは直接ファイルを開いて手で変更してたりしました。

特に、rcmdnk/sd_cl 2-pオプションを使って予め作っておいたディレクトリリストへ移動する、 ということをしたい場合、 sd_clの中だと通常の履歴ディレクトリリストからpを押すと 保存リストに移せるのですが、よく使う物を上に置きたいので 気が向いたらリストを直接開いて編集、みたいなことをする必要があって面倒でした。

大体、変更したいな、と思うのはスクリプトを立ち上げた時なので、 やはり気づいたときに変更したいな、ということをするための機能追加です。

アイテム移動

アイテム移動はCtrl-iCtrl-oに それぞれ上に移動下に移動を割り当てました。

sentakuitemupdown

こんな感じでCtrl-i/Ctrl-oで 選択行のアイテムを上下に移動出来ます。 これらのキーの前に数字を押せば数字の分だけ移動することも出来ます。

これらのキーはVimモードでもEmacsモード 3 でも有効です。

ファイルから読み込んでリスト表示してる場合、移動するたびに保存し直されるので、 途中でq等で止めても移動した物が保存されて次からもその順番になっています。

同じような機能を持つもの

この前sentakuのアップデートを を紹介した時に同じような機能を持つものとして zawpercol というものがあた、との話をしましたが、 ここ最近pecoと言うものが作られて 話題になっています。 これはpercolのアイデアをgoで作った、と言うもの。

こちらはpecoというユーザー名も取得して 4 今後も積極的にいろんな人が貢献しながらアップデートしていきそうです。

sentakuの方も何か気づいたことがあったら是非教えて下さい。 とは言っても、何故か外国の人が主にスターを付けてくれてたりして (どうもどこかのブログで紹介してくれたらしい) 主に使ってる人はこれを見てない人のが多いのかもしれませんが。。。

Sponsored Links
  1. -pを使う場合、これ以降の文字列すべて(-Fなども)が追加すべきワードだと みなされるので、ファイル指定などをしたいときには-pより先に指定する必要があります。

  2. sentakuにEmacsキーバインドを実装した

  3. [Githubでpecoのアカウントを融通してもらった件 : D-7 ](http://lestrrat.ldblog.jp/archives/39456399.html)

Sponsored Links

« 古いMacの消去 sd_clにback機能追加 »