たいちょーの雑記

ぼくが3日に一度くらい雑記をかくところ

cdx アップデート 2.1

cdxアップデート2.1

ついこないだ2.0を出したんですけど思うところあって2.1つくりました

github.com

Python3での書き直し

殆どのスクリプトをPython3で書き直し、分割しました
これにより動作にPython3が必要になりました
必要なパッケージはビルトインだけです

Fish shellに対応

bashだけでなくfish shellに対応しました

config.fishに以下を書き込めば使えるはずです

. /path/to/cdx/sh/func.fish
CDX_DEFAULT_OPTS=すきなオプション(空可)
CDX_DIR="/path/to/cdx"
CDX_FUZZY_COMMAND=いつもつかってるインタラクティブフィルター

変数の追加

CDX_DIR # cdxのディレクトリ

cdxに必要な環境変数

の三つです

–fuzzyの削除

–fuzzyオプションを削除しました
インタラクティブフィルターを使わない利用は無いと感じたからです

ディレクトリファジー検索文字を変更

(良い日本語が思いつかない)
これまでは

cdx ../**
cdx ~/**

とするとパスを展開してディレクトリのリストをインタラクティブフィルターに渡していましたがこれを

cdx ../--
cdx ~/--

に変更しました
理由は~/**だとカレントのファイルがリストアップされて引数に時に面倒だったからです

helpの書き換え

–fuzzyの削除があったためhelpを書き換えました

雑記

fishの文法がかなりつらくいままでのbashシェルスクリプトではうんともすんとも言いませんでした

例えばカレントにあるディレクトリにfzfを使って移動するとき
bashでは以下のように書けば動作しますが

pushd $(ls -l|grep '^d'|awk '{print $NF}'|fzf)

fishでは同じようにプロセス置換を使って書いても動作しません

pushd (ls -l|grep '^d'|awk '{print $NF}'|fzf)

()の中でfzfのようなツールを起動しても利用することができませんでした

解決策としては

ls -l|grep '^d'|awk '{print $NF}'|fzf|read dist;
pushd $dist

としました(bashではこれは使えませんでした)

本当はスクリプトからコマンドを吐いてプロセス置換とかで実装しようと思っていたのですが、細かな文法の違いや上記のことからめちゃくちゃしんどかったです