aboutsummaryrefslogtreecommitdiff
path: root/docs/zh-cn/cli_commands.md
diff options
context:
space:
mode:
authorIskandarMa <epiciskandar@gmail.com>2022-01-19 02:24:02 +0800
committerGitHub <noreply@github.com>2022-01-18 18:24:02 +0000
commitf6a7f4d4aca4a1808850e2dcd8cc223ae5202062 (patch)
treefefc9beff20ea6438e9c1927d83319ed4c85a6b0 /docs/zh-cn/cli_commands.md
parent8a3dfe2246c4a6182cf18349e9c4d0d28cae4ec5 (diff)
downloadqmk_firmware-f6a7f4d4aca4a1808850e2dcd8cc223ae5202062.tar.gz
qmk_firmware-f6a7f4d4aca4a1808850e2dcd8cc223ae5202062.zip
update the Chinese translation based on the latest English version (#14924)
Co-authored-by: peepeetee <43021794+peepeetee@users.noreply.github.com> Co-authored-by: Joy Lee <chang.li@westberrytech.com> Co-authored-by: LitoMore <LitoMore@users.noreply.github.com> Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
Diffstat (limited to 'docs/zh-cn/cli_commands.md')
-rw-r--r--docs/zh-cn/cli_commands.md503
1 files changed, 503 insertions, 0 deletions
diff --git a/docs/zh-cn/cli_commands.md b/docs/zh-cn/cli_commands.md
new file mode 100644
index 000000000..08d1cc7e7
--- /dev/null
+++ b/docs/zh-cn/cli_commands.md
@@ -0,0 +1,503 @@
1# QMK CLI 命令
2
3<!---
4 original document: 0.15.12:docs/cli_commands.md
5 git diff 0.15.12 HEAD -- docs/cli_commands.md | cat
6-->
7
8# 用户命令
9
10## `qmk compile`
11
12该命令用于在指定目录下编译固件,可用于构建<https://config.qmk.fm>导出的JSON数据,代码库中的键映射,或是当前目录下的键盘。
13
14该命令会尝试感知目录路径,当你在键盘或键映射目录下执行时,KEYBOARD及KEYMAP参数将被自动填入。
15
16**用于配置器导出的数据时**:
17
18```
19qmk compile [-c] <configuratorExport.json>
20```
21
22**用于键映射时**:
23
24```
25qmk compile [-c] [-e <var>=<value>] [-j <num_jobs>] -kb <keyboard_name> -km <keymap_name>
26```
27
28**在键盘目录下时**:
29
30须在存在默认键映射的键盘目录下执行,或是在键盘的键映射子目录下,否则须指定参数 `--keymap <keymap_name>`
31```
32qmk compile
33```
34
35**构建所有支持该键映射的键盘时**:
36
37```
38qmk compile -kb all -km <keymap_name>
39```
40
41**示例**:
42```
43$ qmk config compile.keymap=default
44$ cd ~/qmk_firmware/keyboards/planck/rev6
45$ qmk compile
46Ψ Compiling keymap with make planck/rev6:default
47...
48```
49指定键映射参数时
50
51```
52$ cd ~/qmk_firmware/keyboards/clueboard/66/rev4
53$ qmk compile -km 66_iso
54Ψ Compiling keymap with make clueboard/66/rev4:66_iso
55...
56```
57位于键盘目录下时
58
59```
60$ cd ~/qmk_firmware/keyboards/gh60/satan/keymaps/colemak
61$ qmk compile
62Ψ Compiling keymap with make make gh60/satan:colemak
63...
64```
65
66**在配列目录下时**:
67
68必须是在 `qmk_firmware/layouts/` 下的键映射目录下。
69```
70qmk compile -kb <keyboard_name>
71```
72
73**示例**:
74```
75$ cd ~/qmk_firmware/layouts/community/60_ansi/mechmerlin-ansi
76$ qmk compile -kb dz60
77Ψ Compiling keymap with make dz60:mechmerlin-ansi
78...
79```
80
81**并行编译**:
82
83在编译时添加 `-j`/`--parallel` 开关可能有助于加快编译速度。
84```
85qmk compile -j <num_jobs> -kb <keyboard_name>
86```
87`num_jobs` 用于指定并行的job上限,将其设置为0可以实现无限制的并行编译。
88```
89qmk compile -j 0 -kb <keyboard_name>
90```
91
92## `qmk flash` :id=qmk-flash
93
94该命令与 `qmk compile` 类似,但额外地可以指定bootloader。bootloader参数是可选的,默认会指定为 `:flash`。可通过 `-bl <bootloader>` 来指定bootloader。请查阅[刷写固件](zh-cn/flashing.md)指引以深入了解可用的bootloader信息。
95
96该命令会尝试感知目录路径,当你在键盘或键映射目录下执行时,KEYBOARD及KEYMAP参数将被自动填入。
97
98**用于配置器导出的数据时**:
99
100```
101qmk flash [-bl <bootloader>] [-c] [-e <var>=<value>] [-j <num_jobs>] <configuratorExport.json>
102```
103
104**用于键映射时**:
105
106```
107qmk flash -kb <keyboard_name> -km <keymap_name> [-bl <bootloader>] [-c] [-e <var>=<value>] [-j <num_jobs>]
108```
109
110**列出所有bootloader**
111
112```
113qmk flash -b
114```
115
116## `qmk config`
117
118该命令用于配置QMK功能,完整的 `qmk config` 文档参见[CLI配置](zh-cn/cli_configuration.md)。
119
120**使用方法**:
121
122```
123qmk config [-ro] [config_token1] [config_token2] [...] [config_tokenN]
124```
125
126## `qmk cd`
127
128该命令会启动一个新的 shell 会话并定位到 `qmk_firmware` 所在目录。
129
130须留意如果你已经位于 `QMK_HOME` 下的某个位置(比如 `keyboards/` 目录中),该指令不会生效。
131
132若要退回到原来的 shell 会话,只需要执行 `exit`。
133
134**使用方法**:
135
136```
137qmk cd
138```
139
140## `qmk console`
141
142该命令用于连接键盘终端并展示调试信息。仅当键盘固件通过 `CONSOLE_ENABLE=yes` 编译时有效。
143
144**用法**:
145
146```
147qmk console [-d <pid>:<vid>[:<index>]] [-l] [-n] [-t] [-w <seconds>]
148```
149
150**示例**:
151
152连接到所有可用的键盘并输出终端信息:
153
154```
155qmk console
156```
157
158列出所有设备:
159
160```
161qmk console -l
162```
163
164仅输出 clueboard/66/rev3 键盘的信息:
165
166```
167qmk console -d C1ED:2370
168```
169
170仅输出第二把 clueboard/66/rev3 键盘的信息:
171
172```
173qmk console -d C1ED:2370:2
174```
175
176输出时间戳及VID:PID以替代键盘名:
177
178```
179qmk console -n -t
180```
181
182屏蔽bootloader的消息:
183
184```
185qmk console --no-bootloaders
186```
187
188## `qmk doctor`
189
190该命令用以检查你的开发环境并对发现的潜在的构建及刷写问题进行提醒,如果您乐意,它也可以修复其中大部分问题。
191
192**用法**:
193
194```
195qmk doctor [-y] [-n]
196```
197
198**示例**:
199
200检查开发环境中的问题并提示是否修复:
201
202 qmk doctor
203
204检查开发环境中的问题并自动进行修复:
205
206 qmk doctor -y
207
208检查开发环境中的问题,仅生成报告:
209
210 qmk doctor -n
211
212## `qmk format-json`
213
214将JSON文件格式化为(尽量)便于阅读的形式。会自动分辨JSON结构类型(info.json还是keymap.json),必要时也可以通过 `--format` 指定。
215
216**用法**:
217
218```
219qmk format-json [-f FORMAT] <json_file>
220```
221
222## `qmk info`
223
224展示QMK中的键盘及键映射信息,该命令用来获取键盘信息,输出配列,展示底层按键矩阵,及格式化地输出键映射JSON数据。
225
226**用法**:
227
228```
229qmk info [-f FORMAT] [-m] [-l] [-km KEYMAP] [-kb KEYBOARD]
230```
231
232该命令会尝试感知目录路径,当你在键盘或键映射目录下执行时,KEYBOARD及KEYMAP参数将被自动填入。
233
234**示例**:
235
236输出键盘的基础信息:
237
238 qmk info -kb planck/rev5
239
240输出键盘的矩阵信息:
241
242 qmk info -kb ergodox_ez -m
243
244输出键盘的键映射JSON数据:
245
246 qmk info -kb clueboard/california -km default
247
248## `qmk json2c`
249
250从QMK配置器导出的数据中生成 keymap.c 文件
251Creates a keymap.c from a QMK Configurator export.
252
253**用法**:
254
255```
256qmk json2c [-o OUTPUT] filename
257```
258
259## `qmk c2json`
260
261从 keymap.c 文件中生成 keymap.json
262**注意:** 解析C代码文件并不容易,该命令有可能无法对你的键映射文件生效,不使用C预处理代码有时可以解决问题。
263
264**用法**:
265
266```
267qmk c2json -km KEYMAP -kb KEYBOARD [-q] [--no-cpp] [-o OUTPUT] filename
268```
269
270## `qmk lint`
271
272检查键盘及键映射数据并提示出常见错误与问题,以及不符合模板规范的地方。
273
274**用法**:
275
276```
277qmk lint [-km KEYMAP] [-kb KEYBOARD] [--strict]
278```
279
280该命令会尝试感知目录路径,当你在键盘或键映射目录下执行时,KEYBOARD及KEYMAP参数将被自动填入。
281
282**示例**:
283
284基本的lint检查:
285
286 qmk lint -kb rominronin/katana60/rev2
287
288## `qmk list-keyboards`
289
290该命令可以列出 `qmk_firmware` 中所有的键盘
291
292**用法**:
293
294```
295qmk list-keyboards
296```
297
298## `qmk list-keymaps`
299
300该命令可以列出指定键盘(及指定版本)下的所有键映射。
301
302该命令会尝试感知目录路径,当你在键盘或键映射目录下执行时,KEYBOARD及KEYMAP参数将被自动填入。
303
304**用法**:
305
306```
307qmk list-keymaps -kb planck/ez
308```
309
310## `qmk new-keyboard`
311
312该命令可基于现有模板创建出新的键盘定义。
313
314对于未给出的参数,会提示你输入,若未传入 `-u` 参数且 .gitconfig 中设置了 `user.name`,则会提示你使用该值作为默认用户名。
315
316**用法**:
317
318```
319qmk new-keyboard [-kb KEYBOARD] [-t {avr,ps2avrgb}] -u USERNAME
320```
321
322## `qmk new-keymap`
323
324该命令可基于键盘已有的默认键映射创建新的键映射。
325
326该命令会尝试感知目录路径,当你在键盘或键映射目录下执行时,KEYBOARD及KEYMAP参数将被自动填入。
327
328**用法**:
329
330```
331qmk new-keymap [-kb KEYBOARD] [-km KEYMAP]
332```
333
334## `qmk clean`
335
336该命令会清理 `.build` 目录,若传入 `--all` 开关,在 `qmk_firmware` 下的所有.hex及.bin文件也会一并删除。
337
338**用法**:
339
340```
341qmk clean [-a]
342```
343
344---
345
346# 面向开发者的命令
347
348## `qmk format-text`
349
350该命令会重新格式化并统一文件的换行符。
351
352代码库下所有的文件须使用Unix换行符(LF)。
353若你在**Windows**下进行开发,必须确保文件中的换行符是正确的,才能让你的PR被允许合入。
354
355```
356qmk format-text
357```
358
359## `qmk format-c`
360
361该命令会使用clang-format来格式化C代码。
362
363不带参数地执行该命令以用来格式化核心代码相关的改动,默认会通过 `git diff` 来检查 `origin/master`, 可以通过 `-b <分支名>` 来改变检查的分支。
364
365带着 `-a` 开关执行命令会格式化所有的核心代码,也可以在命令行中传入文件名来指定格式化某个文件。
366
367**用以处理指定文件时**:
368
369```
370qmk format-c [file1] [file2] [...] [fileN]
371```
372
373**用以处理所有的核心代码时**:
374
375```
376qmk format-c -a
377```
378
379**用以处理 origin/master 下的所有改动时**:
380
381```
382qmk format-c
383```
384
385**用以处理指定分支下的所有改动时**:
386
387```
388qmk format-c -b branch_name
389```
390
391## `qmk generate-compilation-database`
392
393**用法**:
394
395```
396qmk generate-compilation-database [-kb KEYBOARD] [-km KEYMAP]
397```
398
399创建新 `compile_commands.json` 文件。
400
401你的IDE/编辑器是否使用了“编程语言本地服务器”(language server)且 _总是_ 无法找到全部的包含文件(include files)?是不是很讨厌红色的波浪线?想不想让你的编辑器看得懂 `#include QMK_KEYBOARD_H`?你需要的是一个[编译数据库](https://clang.llvm.org/docs/JSONCompilationDatabase.html)!而 QMK 可以帮助你构建出一个。
402
403该命令需要知道你在构建的是哪个键盘及键映射,它使用与 `qmk compile` 命令一样的选项:参数、当前目录以及配置文件。
404
405**示例:**
406
407```
408$ cd ~/qmk_firmware/keyboards/gh60/satan/keymaps/colemak
409$ qmk generate-compilation-database
410Ψ Making clean
411Ψ Gathering build instructions from make -n gh60/satan:colemak
412Ψ Found 50 compile commands
413Ψ Writing build database to /Users/you/src/qmk_firmware/compile_commands.json
414```
415
416现在可以打开你的开发环境并享受没有波浪线的日子了。
417
418## `qmk docs`
419
420该命令会在本地启动一个HTTP服务,从而你可以浏览及改进文档,默认端口号为8936,使用 `-b`/`--browser` 开关可以让该命令自动通过默认浏览器打开链接地址。
421
422**用法**:
423
424```
425qmk docs [-b] [-p PORT]
426```
427
428## `qmk generate-docs`
429
430该命令可以在本地生成QMK文档,用以文档的常规浏览使用,或进行文档改进工作。可以使用类似[serve](https://www.npmjs.com/package/serve)这样的工具来浏览生成的文档文件。
431
432**用法**:
433
434```
435qmk generate-docs
436```
437
438## `qmk generate-rgb-breathe-table`
439
440该命令可以生成用于[RGB灯光](zh-cn/feature_rgblight.md)的呼吸效果的查询表(LUT)头文件。将该文件命名为 `rgblight_breathe_table.h` 并放入键盘或键映射目录下,可以覆盖替换 `quantum/rgblight/` 下的默认LUT。
441
442**用法**:
443
444```
445qmk generate-rgb-breathe-table [-q] [-o OUTPUT] [-m MAX] [-c CENTER]
446```
447
448## `qmk kle2json`
449
450该命令可以将KLE原始数据转换成QMK配置器的JSON数据,可接受的输入可以是文件绝对路径,或当前目录下的文件名。若 `info.json` 文件存在,默认不会进行覆盖,通过指定 `-f` 或 `--force` 开关可以允许覆盖。
451
452**用法**:
453
454```
455qmk kle2json [-f] <filename>
456```
457
458**示例**:
459
460```
461$ qmk kle2json kle.txt
462☒ File info.json already exists, use -f or --force to overwrite.
463```
464
465```
466$ qmk kle2json -f kle.txt -f
467Ψ Wrote out to info.json
468```
469
470## `qmk format-python`
471
472该命令可以对 `qmk_firmware` 下的python代码进行格式化。
473
474**用法**:
475
476```
477qmk format-python
478```
479
480## `qmk pytest`
481
482该命令会执行python测试框架,在你更改了python代码后,应确保该命令可以成功执行。
483
484**用法**:
485
486```
487qmk pytest
488```
489
490**示例**:
491
492执行全部的测试套件:
493
494 qmk pytest
495
496执行指定的测试用例组:
497
498 qmk pytest -t qmk.tests.test_cli_commands
499
500执行单个测试用例:
501
502 qmk pytest -t qmk.tests.test_cli_commands.test_c2json
503 qmk pytest -t qmk.tests.test_qmk_path