前言
作为程序员须要理解的货色有很多,日常编码和写脚本脱离不开各式语言与 Linux 命令。为了记住一些芜杂的或不被常常应用的知识点,咱们迫切需要一个“小抄”/ 备忘录,小抄内容多了天然繁冗,所以咱们心愿这个小抄要:
- 简洁:只蕴含你想要的内容,没有其余「花边」内容
- 疾速:能够立刻应用
- 全面:能根本蕴含你所有问题的答案
- 通用:它应该在任何中央、任何工夫都可用,不须要任何筹备
- 不唐突:它不应该让你从次要工作上分心(比方缩小利用切换)
- 辅导:它应该帮忙你学习这个科目(在答案根底上扩大常识)
- 不显眼:应该能够在齐全不被留神的状况下应用(就好比划词翻译,鼠标轻点就有答案)
老 gong,你是想介绍哆啦 A 梦吗?
<img src=”https://cdn.jsdelivr.net/gh/FraserYu/img-host/blog-img20201115205225.png” style=”zoom:25%;” />
非也,其实是 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, 理解这些根本的应用就曾经够了,还是那句话,好的工具是用来进步工作效率的,不要被工具适度捆绑
日拱一兵 | 原创