navi 工具使用

 

命令行忘性大?這個開源備忘工具一次解決你的所有煩惱

機器之心Pro 2019-09-23 15:54:41

機器之心報道

原文地址:https://www.toutiao.com/i6739770718839374343/

參與:思源

實名推薦這個小工具,交互式的命令行備忘錄,簡直解決了我們記不住命令的煩惱。

命令行是非常高效的工具,但一個很常見的現象是,很多命令行過一段時間就容易忘。舉個栗子,如果我們常用 git 命令行管理代碼、利用 conda 命令管理開發環境,如果過一段時間沒用了,那麼你還記得如何用 git 將本地代碼同步到 GitHub,還記得如何用 conda 命令刪除一個本地環境嗎?

當然,我們可以在網上搜索一下,也能快速找到答案,但總之還是挺不方便的。我們常見的做法是,將容易忘記的命令行寫到筆記中去,忘了再查就是。但現在,有一個新的開源項目 navi,它提供了一個交互式的備忘錄。

看看下面的動圖,可以說,不用做筆記、不用查 History,我們再也不用擔心忘記命令行了。

命令行忘性大?這個開源備忘工具一次解決你的所有煩惱

 

如上所示,navi 允許我們查閱所有的備忘錄並執行對應的命令,值得注意的是,備忘錄是實時匹配的,如果我鍵入 git,那麼差不多就剩下 git 相關的命令行。

項目地址:https://github.com/denisidoro/navi

神奇的命令行備忘錄:navi

機器之心也嘗試了該工具,從安裝到使用,總體感覺非常便捷。我們可以使用已有的命令行備忘錄,也能自己導入以前常用的備忘錄。我們可以配置可以直接運行的命令行,只需要手動加上參數就行;也可以寫上備忘錄註釋,再手動鍵入命令行。

該項目表示,navi 的目標主要是:

  • 通過給定關鍵字或文字描述,更便捷地查找命令;
  • 如果作爲長命令的輔助部分,查找後的結果也可以直接複製粘貼到主命令;
  • 我們的命令行使用習慣或備忘錄可以與其它人共享;
  • 此外,該工具也能實現命令行的自動補全,不過這屬於高級用法。

總體而言,它就是有助於命令行的整體應用。如下圖所示,我們將幾個 conda 命令也加到了備忘錄中,鍵入命令行的時候就會顯示提示:

命令行忘性大?這個開源備忘工具一次解決你的所有煩惱

 

這幾條都常用的 conda 命令是我們手動加入的,其中最下一行的綠色「conda」是我們鍵入的內容,它縮小了命令行搜索範圍。最上面白框內的命令行是當前輸入的內容,按確認鍵就會執行該命令行。

navi 該怎麼用

我們是在 macOS 系統上測試的,可以便捷地使用 Homebrew 安裝:brew install denisidoro/tools/navi。其它系統估計滿足環境也是可以的,如下是沒有 Homebrew 時的安裝方法:

git clone http://github.com/denisidoro/navi /opt/navicd /opt/navi
sudo make install

安裝完成後,可以直接在命令行內鍵入 navi,從而進入到交互式備忘錄界面。對於初始的 navi,它一共包含 9 個內置的備忘錄,我們可以修改它們。

命令行忘性大?這個開源備忘工具一次解決你的所有煩惱

 

進入後的交互式界面如下圖所示,我們刪除了一些不太用得上的默認備忘錄。

命令行忘性大?這個開源備忘工具一次解決你的所有煩惱

 

下面在黃色光標的地方,就可以愉快地鍵入並運行命令行了。

自定義個備忘錄

navi 很重要的功能是能自定義備忘錄,我們可以仿照自帶的備忘錄寫一個新的。該項目表示,我們可以用命令行傳遞.cheat 文件,從而達到添加的目的:

navi --dir "/folder/with/cheats"

也可以直接把我們的備忘錄文件夾添加到 Bash 環境中。機器之心做了更簡單的一個操作,直接查找該工具的安裝目錄,然後手動刪增備忘錄,我們的發現這也是可以的。如果讀者也使用 Homebrew 安裝,那麼在 usr/local/Cellar/navi 路徑下就能找到默認備忘錄。

當然,我們是要把以前的筆記做成.cheat 純文本的,它的用法也不難,只不過要實現補全或帶參數的命令,還是需要一些特殊的語法。如下是一個標準的.cheat 文件:

命令行忘性大?這個開源備忘工具一次解決你的所有煩惱

 

cheat 語法主要有以下幾點:

  • 以「%」開頭的行包含了特定的 Tag,也就是說上圖「git」會作爲標籤加到該文件所有命令行最後;
  • 以「#」開頭的行描述了該命令行的用法;
  • 以「$」開頭的行應該爲給定參數生成建議值;
  • 其它所有非空行應該都爲可執行命令行。

如下所示爲有效的.cheat 文件:

% git, code
# Change branch
git checkout <branch>
$ branch: git branch | awk '{print $NF}'

最後,我們真的比較推薦這個新工具,用它來查備忘命令行實在是太方便了。當然,如果讀者們有用過更好的這類工具,也歡迎寫留言推薦推薦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章