cheat.sh在手,天下我有

前言

作爲程序員需要了解的東西有很多,日常編碼和寫腳本脫離不開各式語言與 Linux 命令。爲了記住一些雜亂的或不被經常使用的知識點,我們迫切需要一個“小抄”/備忘錄,小抄內容多了自然繁雜,所以我們希望這個小抄要:

  1. 簡潔:只包含你想要的內容,沒有其他「花邊」內容
  2. 快速:可以立即使用
  3. 全面:能基本包含你所有問題的答案
  4. 通用:它應該在任何地方、任何時間都可用,不需要任何準備
  5. 不唐突:它不應該讓你從主要任務上分心(比如減少應用切換)
  6. 輔導:它應該幫助你學習這個科目(在答案基礎上擴展知識)
  7. 不顯眼:應該可以在完全不被注意的情況下使用(就好比劃詞翻譯,鼠標輕點就有答案)

老gong,你是想介紹哆啦A夢嗎?

非也,其實是 cheat.sh

cheat.sh 介紹

cheat.sh 就是一個可以滿足上述願望的小哆啦,目前在 Github 的形式是這樣滴:

Commit 也非常活躍,就是這麼一個哆啦

  • 它提供一個簡單的 curl/瀏覽器接口方便我們查詢
  • 目前覆蓋 58 種編程語言,多種 DBMS以及超過 1000 個UNIX/Linux 常用命令
  • 提供對世界上最好的社區驅動的備忘單存儲庫的訪問,與StackOverflow持平(絕對是高質量的內容)
  • 提供命令行客戶端
  • 可以嵌套在代碼編輯器中使用,比如 Intellij IDEA 和 VS-Code
  • 支持一個特殊的隱身模式,可以完全隱形的使用它 (感覺挺神祕的呢)

先來認識一下,打開命令行終端,使用 curl 命令輸入:

curl cht.sh

如何使用 cheat.sh

先拿幾個常用的 UNIX/Linux 命令練練手:

curl cht.sh/tar

瞧這整理的規範和簡潔不?

curl cht.sh/tr

答案依舊整潔規範, 同時還高亮顯示,友好的很啊

如果你不知道某個命令,還可以使用 ~Keyword 的形式來查詢,比如你想查看如何建立快照

curl cht.sh/~snapshot

上面說過, cheat.sh 包含 1000 多個常用的 UNIX/Linux 命令,當需要的時候,按照語法 curl cht.sh/<you-cmd> 盡情查詢吧

除了 Linux 命令,我們還說支持 58 種語言,當寫代碼時某個 API 不會用或需要完成某些操作,cheat.sh 依舊可以幫上忙,比如我總是記不住 Java Lambda 的 group 操作

curl cht.sh/java/lambda+group

記住下面的標準格式,搜索的結果都是和 StackOverflow 一樣的高質量

如果這個答案還不是你想要的,你就可以添加數字進行翻頁獲取其他結果

另外你覺得結果中的註釋很礙眼的話,可以在每次查詢的後面加上 \?Q ,就像這樣:

curl cht.sh/java/lambda+group\?Q

當然每種語言都默認支持 :list 和 :help 兩種查詢方式,作爲幫助指令,大家可以自行嘗試了,比如 go 語言

curl cht.sh/go/:list
curl cht.sh/go/:help

相信到這裏,你已經可以掌握 cheat.sh 的基本使用方式了

但是,這種 curl 方式總是顯得不是很方便,比如空格要用 + 替代,日常工作語言比如只有 Java,每次都要輸入 curl cht.sh/java/xxxxxxx 這樣就會顯得很麻煩, 爲了解決這些問題,cheat.sh 很貼心,也提供了命令行客戶端,大大簡化了搜索操作

Cheat.sh 命令行客戶端

安裝

安裝 CLI Client (Command Line Client)非常簡單,只需要依次執行下面的命令即可:

# 注意你的環境變量 PATH 已經 import 了 ~/bin 下的內容
mkdir -p ~/bin/
curl https://cht.sh/:cht.sh > ~/bin/cht.sh
chmod +x ~/bin/cht.sh

如果要保證 shell 模式可用,還需要安裝一個依賴 rlwrap, 下面兩種安裝方式都可以(我直接用brew安裝的)

brew install rlwrap
# 或者
sudo apt install rlwrap

使用

有了 CLI Client 之後,來看一看搜索上的變化:

這個 CLI Client 還提供了一個更加便利的 shell 模式:

cht.sh --shell

如下圖,每次直接按照語言搜索相關內容就可以了:

通常我們編程在一段時間內會用一種語言,我們可以進一步簡化搜索過程,cd 到某個語言目錄下:

如果進入 shell 模式,同時想一次性進入某個語言目錄,也可以通過一條命令搞定:

cht.sh --shell java

隱身模式

相信很多小夥伴都配有劃詞工具,比如某個單詞不會了,選中相應的單詞,就會出來解釋,cheat.sh 也有類似的模式,進入某個語言目錄下之後,輸入 stealth Q 就可以進入這個模式了:

用鼠標選中文本後,用起來的效果就是這樣滴:

不過這裏建議,搜索的單詞不要超過 5 個

以上這些使用方式,默認都會調用它自己的服務,爲了更快速的響應,我們可以搭建自己的服務,前提是要更改 CLI Client 的 server URL:

打開或新建 ~/.cht.sh/cht.sh.conf ,添加

CHTSH_URL=https://cht.sh            # URL of the cheat.sh server

然後就可以 run 自己的服務

git clone https://github.com/chubin/cheat.sh.git
cd cheat.sh
docker-compose up

最後訪問服務: http://localhost:8002

集成主流編輯器

cheat.sh 同樣和主流編輯器有很好的集成:

Feature Emacs Sublime Vim VSCode IDEA QtCreator
Command queries
Queries from buffer
Toggle comments
Prev/next answer
Multiple answers
Warnings as queries
Queries history
Session id
Configurable server

Vim 的集成度是最高的,大家可以根據 cheat.sh-vim 自行配置

VSCode 和 IDEA 是大家高頻使用的兩個 IDE,和他們集成就很簡單了,只需要安裝相應的插件:

VSCode 插件

安裝 vscode-snippet 就可以在 VSCode 中快速使用這個功能了

IDEA 插件

安裝 idea-cheatsh-plugin 這個插件就可以在 Intellij IDEA 中使用這個功能了

總結

至於支持的 58 種語言都是什麼,請大家自行參考 README 文檔,關於 cheat.sh, 瞭解這些基本的使用就已經夠了,還是那句話,好的工具是用來提高工作效率的,不要被工具過度捆綁
個人博客:https://dayarch.top
加我微信好友, 進羣娛樂學習交流,備註「進羣」

歡迎持續關注公衆號:「日拱一兵」

  • 前沿 Java 技術乾貨分享
  • 高效工具彙總 | 回覆「工具」
  • 面試問題分析與解答
  • 技術資料領取 | 回覆「資料」

以讀偵探小說思維輕鬆趣味學習 Java 技術棧相關知識,本着將複雜問題簡單化,抽象問題具體化和圖形化原則逐步分解技術問題,技術持續更新,請持續關注......


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