cheat.sh 在手,天下我有
点击上方蓝色“程序猿DD”,选择“设为星标”
回复“资源”获取独家整理的学习资料!
前言
作为程序员需要了解的东西有很多,日常编码和写脚本脱离不开各式语言与 Linux 命令。为了记住一些杂乱的或不被经常使用的知识点,我们迫切需要一个“小抄”/备忘录,小抄内容多了自然繁杂,所以我们希望这个小抄要:
简洁:只包含你想要的内容,没有其他「花边」内容
快速:可以立即使用
全面:能基本包含你所有问题的答案
通用:它应该在任何地方、任何时间都可用,不需要任何准备
不唐突:它不应该让你从主要任务上分心(比如减少应用切换)
辅导:它应该帮助你学习这个科目(在答案基础上扩展知识)
不显眼:应该可以在完全不被注意的情况下使用(就好比划词翻译,鼠标轻点就有答案)
老gong,你是想介绍哆啦A梦吗?
非也,其实是 cheat.sh
cheat.sh 介绍
cheat.sh[1] 就是一个可以满足上述愿望的小哆啦,目前在 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, 了解这些基本的使用就已经够了,还是那句话,好的工具是用来提高工作效率的,不要被工具过度捆绑,公众号回复「工具」获取更多内容
参考
[1]cheat.sh: https://github.com/chubin/cheat.sh
DD自研的沪牌代拍业务,点击直达
【往期推荐】
知乎热议:计算机专业钱景究竟如何?
2020-11-29
VS Code有哪些奇技淫巧?
2020-11-29
API网关是否真的起到了它该有的作用?
2020-11-28
18香警告:一个女生勿近的邪恶开源项目...
2020-11-28
TiDB 数据库的 4 大应用场景分析
2020-11-27
扫一扫,关注我
一起学习,一起进步
每周赠书,福利不断
﹀
﹀
﹀
深度内容
推荐加入
cheat.sh 在手,天下我有相关推荐
- OpenAI Codex,GitHub Copilot 和cheat.sh 三个代码建议工具对比
在本文中,我们将对比 OpenAI Codex.GitHub Copilot 和cheat.sh 的智能感知和代码建议. OpenAI Codex简单的集成 OpenAI Codex 是 OpenAI ...
- 三国志战略版鸿蒙梦魇,三国志战略版:双控在手天下我有,洞察震慑枪已成吴国梦魇!...
相信大家和村夫一样,一直对蜀国武将的搭配情有独钟.因为三战从S1赛季开始,蜀国武将就一直占据着战场的主流,虽然到了S6,S7赛季吴国魏国的各种组合搭配花样频出,但是也抵不过大家对于魏延.关银屏这些新武 ...
- 任性安装苹果应用,安装包在手天下我有
教程开始了 点击添加图片描述(最多60个字) 编辑 常见问题, 1.安装后灰色或闪退应用证书掉了,解决方案越狱或等待修复 2.没有shu苹果id.账号下载即可 3.很多用不了,注意系统版本 ##### ...
- 【神奇的Turtle库】海龟在手—天下我有:这款秘制“海龟闯关”小游戏值得拥有,强烈推荐哦~
导语 哈喽!大家好!我是木木子~ 纵观之前的文章--我发现了一个特点,很多小伙伴儿都喜欢学习Turtle或游戏代码,没错吧~ 那今天这篇文章就是为这2方面的小伙伴儿精心准备滴!Turtle+游戏一起安 ...
- Windows 的这款工具,有时让我觉得 Mac 不是很香
你有一个思想,我有一个思想,我们交换后,一个人就有两个思想 If you can NOT explain it simply, you do NOT understand it well enough ...
- Cheat sheet -----几乎所有编程语言的速查表
偶然发现一个比较好用的工具,可以用它作为学习任何一门编程语言reminder. cheat.sh 这就是要介绍的主角了.不需要安装,只要联网且有http服务就可以岁时查询任何编程语言的一些语法和关键字 ...
- 最后的人 - 主机程序员十年的分享
最后是 我 一个人走过 这片海 桌面邮件叮的一声,收到了 admin 小姐姐发出的邮件,原来今天是系统操作部门主管最後一天的上班,主管买了好多小零食,大家可以到编号 xxx 柜里自己领取. 想一想原来 ...
- 致谢 开源开发者的贡献_对开源做出的贡献如何使我成为更好的开发人员,以及如何做到这一点...
致谢 开源开发者的贡献 by Luciano Strika 通过卢西亚诺·斯特里卡(Luciano Strika) 对开源做出的贡献如何使我成为更好的开发人员,以及如何做到这一点 (How contr ...
- IDEA 解决 Java8 的数据流问题,用过的都说好!!!
以下文章来源方志朋的博客,回复"666"获面试宝典 相信不少胖友的 Lambda 使用的贼 666,今儿来看看 IDEA 在这方面的助力! IDEA在手 天下我有 我们打算将Pon ...
最新文章
- Java中jsonObject与String等互转问题
- Java动态代理的实现
- CF#1288A Deadline (函数求最值问题)
- 周五话营销 | 数据分析强势解决营销人三大痛点
- 小程序wx:key中的关键字*this
- 留言板JavaScript实现
- nc65右键生成菜单_DbSchema生成表单和报表,原来如此简单
- mysql触发器_MySQL视图\触发器\事务初步认识
- mysql ddl 失败_PHP加载mysql DDL会失败
- 【Elasticsearch】关于 Analyzers 的一切,第2部分
- 一键把动态IP自动设置为静态IP
- Excel 表格打印篇(批量添加标题,同页打印,打印logo与页码)
- directx安装后找不到_如何下载,安装,更新到最新的DirectX
- 空间几何变换 之 齐次坐标
- Python之qq自动发消息
- Windows自带远程桌面,非常好用的全新体验。
- MyBatis(3)
- 懒猫社长便利店成焦虑boy的温暖港湾!
- L3-001. 凑零钱
- 同步辐射X射线断层扫描成像技术的应用领域和场景
热门文章
- ant 使用常见问题
- linux qemu 报错 Unable to reserve 0xfffff000 bytes of virtual address space at 0x1000 解决方法
- linux c 创建子进程 执行任务
- linux centos 网络设置 优先使用ipv4 其次ipv6
- 漫谈 Weblogic CVE-2020-2555
- linux top 报错 TERM environment variable not set.
- mysql 时间日期类型 datetime、timestamp、date、time、year
- linux rqm包制作 spec文件详解
- linux c 结构体初始化的四种方法
- windbg学习-------.expr和masm表达式