命令行里打 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)
園長:翻譯完這篇我就馬上安裝了,最開始還不太習慣,不過感覺確實能快了不少。
極光日報,極光開發者旗下媒體。
每天導讀三篇英文技術文章。
推薦閱讀:
※學編程有前途嗎?
※關於在坐標系中旋轉平移物體的理論基礎解析
※編程中所講的「思維深度」的本質是什麼?
※家裡沒人怎麼防火防盜?裝上這段自動看家程序
※從零開始手敲次世代遊戲引擎(DX12特別篇)