cdxアップデート2.1
ついこないだ2.0を出したんですけど思うところあって2.1つくりました
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のディレクトリ
の三つです
–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ではこれは使えませんでした)
本当はスクリプトからコマンドを吐いてプロセス置換とかで実装しようと思っていたのですが、細かな文法の違いや上記のことからめちゃくちゃしんどかったです