cheat.sh在手,天下我有

前言

做爲程序員須要瞭解的東西有不少,平常編碼和寫腳本脫離不開各式語言與 Linux 命令。爲了記住一些雜亂的或不被常用的知識點,咱們迫切須要一個「小抄」/備忘錄,小抄內容多了天然繁雜,因此咱們但願這個小抄要:java

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

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

<img src="https://cdn.jsdelivr.net/gh/FraserYu/img-host/blog-img20201115205225.png" style="zoom:25%;" />程序員

非也,實際上是 cheat.shgithub

cheat.sh 介紹

cheat.sh 就是一個能夠知足上述願望的小哆啦,目前在 Github 的形式是這樣滴:docker

Commit 也很是活躍,就是這麼一個哆啦shell

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

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

curl cht.sh

如何使用 cheat.sh

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

curl cht.sh/tar

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

curl cht.sh/tr

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

若是你不知道某個命令,還可使用 ~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, 瞭解這些基本的使用就已經夠了,仍是那句話,好的工具是用來提升工做效率的,不要被工具過分捆綁日拱一兵 | 原創

相關文章
相關標籤/搜索