macでインフォマティクス

macでインフォマティクス

NGS関連のインフォマティクス情報についてまとめています。

移動履歴を学習し、移動をナビゲートする autojump

2018 11/17 分かりにくい文章を修正

 

autojumpは、これまでの移動結果をウエイトをつけて記憶し(学習)、補完機能によって移動を助けたり、ファイラーへの表示を助けるcdのパワーアップ版コマンド。

 

wiki

https://github.com/wting/autojump/wiki

 

autojumpに関するツイート

他にもいくつかcdの拡張コマンドはあるようですね。 

 

 インストール

mac os10.14でテストした。

依存

  • Python v2.6+ or Python v3.3+
  • Supported shells
    • bash - first class support
    • zsh - first class support
    • fish - community supported
    • tcsh - community supported
    • clink - community supported
  • Supported platforms
    • Linux - first class support
    • OS X - first class support
    • Windows - community supported
    • BSD - community supported
  • Supported installation methods
    • source code - first class support
    • Debian and derivatives - first class support
    • ArchLinux / Gentoo / openSUSE / RedHat and derivatives - community supported
    • Homebrew / MacPorts - community supported

#hokmebrew
brew install autojump

#またはソースから
git clone git://github.com/wting/autojump.git
cd autojump
./install.py or ./uninstall.py

autojump -h

$ autojump -h

usage: autojump [-h] [-a DIRECTORY] [-i [WEIGHT]] [-d [WEIGHT]] [--complete]

                [--purge] [-s] [-v]

                [DIRECTORY [DIRECTORY ...]]

 

Automatically jump to directory passed as an argument.

 

positional arguments:

  DIRECTORY             directory to jump to

 

optional arguments:

  -h, --help            show this help message and exit

  -a DIRECTORY, --add DIRECTORY

                        add path

  -i [WEIGHT], --increase [WEIGHT]

                        increase current directory weight

  -d [WEIGHT], --decrease [WEIGHT]

                        decrease current directory weight

  --complete            used for tab completion

  --purge               remove non-existent paths from database

  -s, --stat            show database entries and their key weights

  -v, --version         show version information

 

Please see autojump(1) man pages for full documentation.

または"j"でも動く(jに別のaliasを割り当ててなければ)。

 

使い方

例1

一度は端末から該当ディレクトリにアクセスしておく必要がある。~/Desktopにfastqというディレクトリを作成して中に入る。

mkdir ~/Desktop/fastq
cd ~/Desktop/fastq

現在のパスを確認

$ pwd

/Users/kazuma/Desktop/fastq

テストのため、別のパス、例えばmusicに移動しておく。

cd ~/music

autojumpを試す。フルネームは手間なので、autojumpのラッパー"j"を使う (jumpするjと覚える)。

j fastq

これで~/Desktop/fastqにジャンプした。autojumpをインストール後、一度アクセスしてfastqというディレクトリ名をautojumpが記憶しているため、フルパス指定なしでジャンプすることが可能になっている。

$ pwd

/Users/kazuma/Desktop/fastq

ちゃんと移動できている。

 

例2

該当文字を含むディレクトリが複数あり、いずれにもアクセスしたことがあるなら、部分一致の状態でタブキーx2を打つと候補一覧が番号付きで表示される。その状態から該当番号を打てばジャンプできる。例えば2つのディレクトリreference_human、reference_bacteriaを作ってテストしてみる。

#作って一度アクセスする
mkdir ~/genome/reference_human/ && cd ~/genome/reference_human
mkdir ~genome/reference_bacteria && cd ~/genome/reference_bacteria

#テスト前に適当な場所に移動。ここではroot直下に移動
cd /

準備できたのでテストする。refまで打ってみる(候補は増えるが、"re"でも、"r"一文字だけでもautojumpは機能する)。

j ref

タブキーx2で候補を表示。

$ j ref__

ref__1__/Users/kazuma/genome/reference_human     

ref__2__/Users/kazuma/genome/reference_bacteria 

reference_bacteriaに飛びたいので"2"を打ち、タブキーを1度押す。2がパスに変換される。そのままエンターキーを打てばジャンプする。

 j /Users/kazuma/genome/reference_bacteria 

/Users/kazuma/genome/reference_bacteria

パス確認

$ pwd

/Users/kazuma/genome/reference_bacteria

root直下からジャンプできている。非常に便利。

 

例3

ジャンプする代わりに、ディレクトリのウィンドウを開くこともできる(mac osのopenコマンドに近いが( "open .")、こっちの方が便利)。

jo music

joコマンドには候補表示機能はありません。パス情報が不完全だとデータベースにある中でウエイトが一番高いパスに飛びます(データベースやウエイトは"j -s"で確認)。

f:id:kazumaxneo:20181117112654p:plain

 

フルパスを忘れたなら、例2のようにjコマンドでまず候補を表示、確定し、それからCtrl + aで先頭にバック、joに変えた方が早そうですね。

 

 

データベースには消去したディレクトリも残っているので、補完すると消したパスも表示され視認性が悪くなります。邪魔になってきたら"autojump --purge <directory>"で消して下さい。--increaseや--decreaseで表示のウエイトを変えることもできます。

引用

GitHub - wting/autojump: A cd command that learns - easily navigate directories from the command line

 

参考HP