marsevilspirit's blog

cheat命令的妙用

cheat是一个用go写的命令行工具,它允许你查看和创建自定义的命令行备忘单。它的使用非常简单,只需要输入cheat命令,后面跟上你想要查询的命令即可。如果你想要创建一个新的备忘单,只需要输入cheat -e命令,然后输入你想要添加的命令即可。

安装 cheat

arch linux:

1
$ yay cheat

建议选择cheat-bin,cheat要重新编译,还要下很多依赖。

设置 cheat 的配置文件路径

我是放在fish的config.fish中,设置cheat配置文件路径的环境变量:

1
export CHEAT_CONFIG_PATH="~/.config/cheat/conf.yml"

配置 cheat

我的conf.yml如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
---
# 用于 'cheat -e <sheet>' 的编辑器。默认为 $EDITOR 或 $VISUAL。
editor: /usr/bin/nvim

# 是否应始终对 'cheat' 的输出进行着色?
colorize: true

# 应用到输出的 'chroma' 颜色方案?
# 可选项在此查看:
# https://github.com/alecthomas/chroma/tree/master/styles
style: base16-snazzy

# 应用哪种 'chroma' "格式化器"?
# 选择之一: "terminal", "terminal256", "terminal16m"
formatter: terminal256

# 输出应通过哪个分页器传输?
# 在 Unix 系统上推荐 'less -FRX'
# 在 Windows 上推荐 'more'
pager: less -FRX

# 将 cheatsheet 分类到不同的 cheatpaths 中可以帮助更好地组织。
# 例如,您可能希望为社区 cheatsheet 设置一个 cheatpath,
# 为个人 cheatsheet 设置一个,为与您的工作相关的 cheatsheet 设置一个,
# 为代码片段设置一个,等等。
#
# Cheatpaths 是有作用域的,因此更“本地”的 cheatpaths 优先于更“全局”的 cheatpaths。
#(最全局的 cheatpath 列在此文件的开头;最本地的列在最后。)
# 例如,如果 global 和 local 路径中都有一个 'tar' cheatsheet,
# 默认情况下您将看到 local 的。('cheat -p' 可用于查看其他 cheatpaths 的 cheatsheet。)
#
# Cheatpaths 也可以标记为“只读”。这指示 cheat 不会在只读的 cheatpath 上自动创建 cheatsheet。
# 相反,当您希望使用 'cheat -e' 编辑只读的 cheatsheet 时,
# cheat 会将该 cheatsheet 从只读 cheatpath 复制到可写的 cheatpath。
#
# 当您希望在一个 cheatpath 上维护一个“原始”的社区 cheatsheet 仓库,
# 在另一个 cheatpath 上维护一个可编辑的个人 cheatsheet 仓库时,这非常有用。
#
# Cheatpaths 还可以配置为自动将标签应用于某些路径上的 cheatsheet,这对于查询非常有用。
# Example: 'cheat -t work jenkins'.
#
# 社区 cheatsheet 需要单独安装,尽管您可能在安装 'cheat' 时已自动下载它们。如果没有,您可以在此处下载:
#
# https://github.com/cheat/cheatsheets
cheatpaths:
# Cheatpath properties mean the following:
# 'name': the name of the cheatpath (view with 'cheat -d', filter with 'cheat -p')
# 'path': the filesystem path of the cheatsheet directory (view with 'cheat -d')
# 'tags': tags that should be automatically applied to sheets on this path
# 'readonly': shall user-created ('cheat -e') cheatsheets be saved here?
- name: community
path: /home/mars/.config/cheat/cheatsheets/community
tags: [ community ]
readonly: true

# 如果您有个性化的 cheatsheet,请最后列出它们。它们将优先于更全局的 cheatsheet。
- name: personal
path: /home/mars/.config/cheat/cheatsheets/personal
tags: [ personal ]
readonly: false

# 虽然这里不需要配置,但值得注意的是,cheat 会自动附加当前工作目录中的名为 '.cheat' 的目录到 'cheatpath'。
# 如果您希望将 cheatsheet 与源代码目录等紧密关联,这将非常有用。
#
# 这些“目录范围”的 cheatsheet 将被视为最“本地”的 cheatsheet,并将覆盖较少“本地”的 cheatsheet。
# 同样,目录范围的 cheatsheet 将始终是可编辑的 ('readonly: false')。

ok,到此配置完成,以后有什么遗漏再补充。

Sep 2024