命令行里打 cd 簡直是浪費生命

簡評:作為工程師,你在命令行下最常打的命令無非就是 cd 與 ls。這些年你浪費了多少時間?
作為一個程序員或者在 shell 中花費大量時間的人,你可能會經常以一種低效率的方式在目錄中來回移動,特別是每天經常訪問相同目錄。

比如像這樣:

當然你可能用的稍微熟練點了,用 Tab 能省不少事,像這樣:

不錯!你大約節省了 20 次的輸入,值得稱贊。你也會使用 mkdir 創建新目錄并直接進入新建目錄(cd !$),你也能記住 project 的目錄,你就不用老 ls 來尋找文件。不過現實問題,人不是電腦,我們能記住一兩個,但不可能記住全部,我們的效率不夠高。

有沒有想過這種方式?

現在只需要 j d(或者 j dev、j develop)就可以跳轉到 ~/Develop 目錄,j p 就可以跳轉單 ~/Develop/project。效率大幅提高。

看看對比:

這是如何實現的?

用 AutoJump 可以做到。(GitHub 地址:wting/autojump

根據官方介紹,它能以更快的方式瀏覽系統文件,這并不準確,或者說很謙虛。據我完全估計,用 AutoJump 至少讓我省了 100 個小時,最起碼省了這么多。

Autojump 是如何工作的?

看看這兩個命令:

它們的作用相同。AutoJump 會記住 cd 命令并用 j 來進入所有的目錄。更重要的是 AutoJump 可以模糊匹配。意味著只需要提供一個字母,就可以匹配到之前訪問過的該首字母的目錄。

如果有兩個以 p 為開頭的目錄怎么辦?

這就是有趣的地方。

當你第一次輸入 cd directory_name,AutoJump 會記錄該目錄并成為絕對路徑,并將其指定權重為 10.0 分。

舉個例子:

然后輸入 j -s 命令可以看到(s 代表統計信息):

如果你再次 cd/var 后,j -s,看看會發生什么?

對,這個路徑的權重增加了。比如看看我電腦上的 j -s,我平時都在干什么你就會一目了然:

我第一個campus 和第四個 SodeSchool 都包含字母 c,那么 AutoJump 應該縣跳轉到哪個目錄呢?

由于 campus 權重低,所以會 j c 會跳到 CodeSchool 目錄,如果重復 j c 命令,就會跳轉到 campus 目錄。

如果你不喜歡 AutoJump 自動設置的路徑,你可以自己設置匹配:

你可以設置后面的數字, j c _4 就是 j c 跳轉到第四個目錄。

高級功能

  • jc(注意沒空格 不是上面的 j c)僅在子目錄下跳轉,非常適合尋找被嵌套的 log
  • jo 會在操作系統下打開匹配的目錄。
  • j -i 增加當前目錄權重
  • j -d 減少當前目錄權重
  • j --purge 消除所有的權重

安裝 AutoJump

AutoJump 支持:

  • Python v2.6+(除了 3.2 版本)
  • 支持的 shell:
  • bash v4.0+
  • zsh
  • fish
  • tcsh (experimental)
  • clink (Windows, experimental)

你可以通過許多 Linux 軟件包安裝器來安裝。對于 MacOS 我推薦 Homebrew 的 brew install autojump,真的超簡單方便。

把 Autojump 放在.bash_profile 或者 .szhrc 下,輸入命令行:

[ -f /usr/local/etc/profile.d/autojump.sh ] && . /usr/local/etc/profile.d/autojump.sh

它會自動檢查腳本是否可用并加載到 shell 中。

你也可以克隆 git 倉庫,手動安裝。不管怎么說,它都是一個非常簡單的、穩定的工具。

我用了它的這些年里,從來沒有后悔過。


下載地址:wting/autojump(GitHub)
推薦閱讀:用 iPad Pro 作為我的主力工作電腦

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容