Fasdコマンドで最近使ったファイルとディレクトリに素早くアクセス
Fasd(発音はfastに似ているということなので、ファースド?ファスド?)は作者の説明によるとautojump
やz
のようなコマンドラインの生産性を上げるツールで、よく使うファイルとディレクトリに素早くアクセスできるようになる。
Fasdはアクセスしたファイルとディレクトリの情報を記録しておき"frecency"というランク付けをする。"frecency"は"frequency"と"recency"を併せた造語で、頻繁かつ最近アクセスしたものほど高ランクになるらしい。
インストール
Fasdコマンドのインストール方法は下記ページに書かれている。
Installing via Package Managers · clvv/fasd Wiki · GitHub
$ sudo rpm -ivh https://build.opensuse.org/package/binary/utilities/fasd\?arch\=x86_64\&filename\=fasd-1.0.1-3.1.noarch.rpm\&repository\=CentOS_6
$ brew install fasd
次に初期設定コードを追加するが、oh-my-zshを使っている場合は.zshrc
を編集してプラグインを有効にすればよい。
plugins=( [plugins...] fasd)
oh-my-zshを使っていない場合は.zshrc
に下記行を追加する(最小限の設定)。
eval "$(fasd --init posix-alias zsh-hook)"
これでFasdコマンドが使えるようになる。
$ fasd --help fasd [options] [query ...] [f|a|s|d|z] [opions] [query ...] options: -s list paths with scores -l list paths without scores -i interactive mode -e <cmd> set command to execute on the result file -b <name> only use <name> backend -B <name> add additional backend <name> -a match files and directories -d match directories only -f match files only -r match by rank only -t match by recent access only -R reverse listing order -h show a brief help message -[0-9] select the nth entry fasd [-A|-D] [paths ...] -A add paths -D delete paths
基本的な使い方
Fasdをインストールすると以下のエイリアスが設定されている。
alias a='fasd -a' # any alias s='fasd -si' # show / search / select alias d='fasd -d' # directory alias f='fasd -f' # file alias sd='fasd -sid' # interactive directory selection alias sf='fasd -sif' # interactive file selection alias z='fasd_cd -d' # cd, same functionality as j in autojump alias zz='fasd_cd -d -i' # cd with interactive selection
Fasdは履歴を使用するため、まずはテストとして適当にディレクトリを移動したり、ファイルを編集しておく。
f
を実行すると最近使ったファイル、d
を実行すると最近使ったディレクトリ、a
を実行すると両方が表示される。ここで表示される数値は最近、頻繁に使用したものほど高くなり、この後説明するコマンドでマッチするものが複数ある場合に数値が高い方が優先される。
ディレクトリ移動
ディレクトリ移動するにはz
を実効する。上記のような状態でz fasd
を実行するとfasd
がマッチする.oh-my-zsh/plugins/fasd
ディレクトリに移動する。z f
のようにマッチすれば一文字でもよい。またz p f
のように各階層の文字列を指定することもできる。
zz
を実行するとインタラクティブにディレクトリを選択でき、番号を指定してリターンを押せば移動できる。
ファイルアクセス
同様な方法でファイルにもアクセスできるが、ファイルの場合は選択したファイルに対して何かを実行したいので-e
オプションでコマンドを指定する。
f -e vim rc$
を実行すればrc
で終わる($
は末尾指定)最近使用したファイル(この場合は.zshrc
)をvim
で編集できる。
このコマンドは長いので通常はエイリアスを指定してv rc$
のように実行する。
タブ補完
Fasdではタブを押せば補完ができる。以下の例のようにd,
を指定すればディレクトリ、f,
を指定すればファイル、,
は両方を指定して補完が可能。
$ vim ,rc,lo<Tab> $ vim /etc/rc.local $ mv index.html d,www<Tab> $ mv index.html /var/www/