summaryrefslogtreecommitdiff
path: root/docs/zh-cn/cli_configuration.md
blob: d3bca4a3383688f5b328c596f41a13c048937b8b (plain)
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# QMK CLI 配置

<!---
  original document: 0.15.12:docs/cli_configuration.md
  git diff 0.15.12 HEAD -- docs/cli_configuration.md | cat
-->

本文详述了 `qmk config` 功能及作用。

# 介绍

QMK CLI的配置系统是一套键/值(key/value)数据系统,每个键由一个子指令和一个参数名组成,通过点号(英文句号)分隔。这使得配置项可以简单直接地映射到命令行参数上。

## 简单示例

作为一个示例,对于指令 `qmk compile --keyboard clueboard/66/rev4 --keymap default`

其存在两个命令行参数,可以通过如下方式从配置中读取:

* `compile.keyboard`
* `compile.keymap`

可以这样设置:

```
$ qmk config compile.keyboard=clueboard/66/rev4 compile.keymap=default
compile.keyboard: None -> clueboard/66/rev4
compile.keymap: None -> default
Ψ Wrote configuration to '/Users/example/Library/Application Support/qmk/qmk.ini'
```

现在每次执行 `qmk compile` 时都不需要指定键盘及键映射参数了。

## 设置用户级的默认配置

当你需要在多个命令中使用一致的配置项时,比如很多命令都需要的 `--keyboard` 参数,相比于每次执行命令都去指定该参数值,你可以直接设置用户级的配置值,即可将该配置用于所有的命令。

示例:

```
$ qmk config user.keyboard=clueboard/66/rev4 user.keymap=default
user.keyboard: None -> clueboard/66/rev4
user.keymap: None -> default
Ψ Wrote configuration to '/Users/example/Library/Application Support/qmk/qmk.ini'
```

# CLI文档 (`qmk config`)

`qmk config` 命令可以管理配置数据。当不带额外参数执行时,会输出所有已有配置。存在参数时这些参数将被视为配置项参数,其格式须满足如下形式且无空格分隔:

    <subcommand|general|default>[.<key>][=<value>]

## 设置配置值

在配置项的键后加 = 号进行值的设置,配置项的键必须是 `<section>.<key>` 的完整形式。

举例:

```
$ qmk config default.keymap=default
default.keymap: None -> default
Ψ Wrote configuration to '/Users/example/Library/Application Support/qmk/qmk.ini'
```

## 读取配置值

可以读取整个配置文件、单独配置键或是一整个配置系列,也可以同时指定读取多个配置项。

### 全量配置读取示例

    qmk config

### 单系列配置读取示例

    qmk config compile

### 单配置项读取示例

    qmk config compile.keyboard

### 多配置项读取示例

    qmk config user compile.keyboard compile.keymap

## 删除配置值

将配置值设置为 `None` 即可删除该配置值。

示例:

```
$ qmk config default.keymap=None
default.keymap: default -> None
Ψ Wrote configuration to '/Users/example/Library/Application Support/qmk/qmk.ini'
```

## 批量操作

一个指令中可以合并执行多个读写操作,将依序进行执行输出:

```
$ qmk config compile default.keymap=default compile.keymap=None
compile.keymap=skully
compile.keyboard=clueboard/66_hotswap/gen1
default.keymap: None -> default
compile.keymap: skully -> None
Ψ Wrote configuration to '/Users/example/Library/Application Support/qmk/qmk.ini'
```

# 用户配置相关的配置项

| 配置项 | 默认值 | 描述 |
|-------|-------|------|
| user.keyboard | None | 键盘路径(举例:`clueboard/66/rev4`) |
| user.keymap | None | 键盘名称(举例:`default`) |
| user.name | None | 用户的Github用户名 |

# 所有配置项

| 配置项 | 默认值 | 描述 |
|-------|-------|------|
| compile.keyboard | None | 键盘路径(举例:`clueboard/66/rev4`) |
| compile.keymap | None | 键盘名称(举例:`default`) |
| hello.name | None | 执行时展示的欢迎信息 |
| new_keyboard.keyboard | None | 键盘路径(举例:`clueboard/66/rev4`) |
| new_keyboard.keymap | None | 键盘名称(举例:`default`) |