前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >GitBook + Typora + Git 编写电子文档

GitBook + Typora + Git 编写电子文档

作者头像
Devops海洋的渔夫
发布于 2019-06-02 05:27:29
发布于 2019-06-02 05:27:29
3.6K00
代码可运行
举报
文章被收录于专栏:Devops专栏Devops专栏
运行总次数:0
代码可运行

前言

近期使用Typora编写文档的时候,写一些篇章比较短的文章还好。但是当篇章过长,标题目录过多的时候,那样就会导致阅读效果很差。

为了提升更加好的体验效果,我下一步就需要考虑使用Gitbook的方式来编写管理文章了。

搭建GitBook 环境

下载安装Typora 和 git 工具

因为是使用 GitBook + Typora + Git 三件套来进行电子书管理,所以你还需要安装 Typora(一个很棒的支持 macOS、WindowsLinux 的 Markdown 编辑工具)和 Git 版本管理工具。戳下面:

安装nodejs

因为 GitBook 是基于 Node.js,所以我们首先需要安装 Node.js(下载地址:https://nodejs.org/en/download/),找到对应平台的版本安装即可。

因为我的系统版本是 win10 64位,那么我就下载这个版本来进行安装。

安装步骤只要下一步安装即可。

使用npm安装gitbook

现在安装 Node.js 都会默认安装 npm(node 包管理工具),所以我们不用单独安装 npm,打开命令行,执行以下命令安装 GitBook:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm install -g gitbook-cli

使用Git Bash操作如下图:

好了,准备好了三件套工具之后,就是来看看怎么编写GitBook了。

编写GitBook

创建电子书的文件夹目录

想象一下,现在你准备构建一本书籍,你在硬盘上新建了一个叫 mybook 的文件夹,按照以前的做法,你会新建一个 Word 文档,写上标题,然后开始巴滋巴滋地笔耕。

初始化Gitbook

但是现在有了 GitBook,你首先要做的是在 mybook 文件夹下执行以下命令:

使用gitbook init初始化gitbook,操作如下:

执行完后,你会看到多了两个文件 —— README.md 和 SUMMARY.md,它们的作用如下:

  • README.md —— 书籍的介绍写在这个文件里
  • SUMMARY.md —— 书籍的目录结构在这里配置

使用Typora来编写框架内容

这时候,我们启动恭候多时的 Typora 来编辑这两个文件了:

编辑 SUMMARY.md 文件,内容修改为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 目录

* [前言](README.md)
* [第一章](Chapter1/README.md)
  * [1节:衣](Chapter1/.md)
  * [2节:食](Chapter1/.md)
  * [3节:住](Chapter1/.md)
  * [4节:行](Chapter1/.md)
* [第二章](Chapter2/README.md)
* [第三章](Chapter3/README.md)
* [第四章](Chapter4/README.md)

显示如下:

重新使用gitbook根据目录,初始化篇章

然后我们回到命令行,在 mybook 文件夹中再次执行 gitbook init 命令。GitBook 会查找 SUMMARY.md 文件中描述的目录和文件,如果没有则会将其创建。

Typora 是所见即所得(实时渲染)的 Markdown 编辑器,这时候它是这样的:

启动服务,预览书籍

接着我们执行 gitbook serve 来预览这本书籍,执行命令后会对 Markdown 格式的文档进行转换,默认转换为 html 格式,最后提示 “Serving book on http://localhost:4000”。嗯,打开浏览器看一下吧:

构建书籍

当你写得差不多,你可以执行gitbook build命令构建书籍,默认将生成的静态网站输出到_book目录。实际上,这一步也包含在gitbook serve里面,因为它们是 HTML,所以 GitBook 通过 Node.js 给你提供服务了。

存在问题:3.2.3版本生成的静态html无法正常跳转

查看一下gitbook的版本,如下:

由于gitbook版本过高导致生成的html打开后无法跳转章节

gitbook降低版本到 2.6.7 就可以了

可以使用如下命令

gitbook build --gitbook=2.6.7

但是降级就会遇到错误:

Error loading version latest: Error: Cannot find module 'internal/util/types'

那么对付这个错误,就需要将node版本降级

  • linux & ubuntu 环境
    1. 安装node管理 n
      • sudo npm install -g n
    2. 降低版本,更新npm
      • sudo n 6
    3. 安装npm
      • sudo npm install npm -g
  • window 环境
    • nvm管理node版本
      • nvm install 6.16.0
      • nvm use 6.16.0
    • 因为切换了新的node环境需要重新安装gitbook-cli
      • npm install -g gitbook-cli

降级之后,运行gitbook2.6.7的命令即可。

gitbook build --gitbook=2.6.7

待转换完成后,将npm版本(例如 11.11.1)切回来即可,以免影响其他模块

  • linux & ubuntu
    • sudo n 11.11.1
  • window
    • nvm use 你的最新版

因为我的环境是win10,那么就以win10的环境演示一遍。

在win10下安装nvm

Node版本管理器--nvm,可以运行在多种操作系统上。nvm for windows 是使用go语言编写的软件。 我电脑使用的是Windows操作系统,所以我要记录下在此操作系统上nvm的安装和使用。

nvm最新的下载地址

我选择的是这个安装的版本,比较方便。前面的另一个是绿色版,需要配置。

注意事项: 安装之前的操作请注意: 在安装nvm for windows之前,你需要卸载任何现有版本的node.js。并且需要删除现有的nodejs安装目录(例如:"C:\Program Files\nodejs’)。因为,nvm生成的symlink(符号链接/超链接)不会覆盖现有的(甚至是空的)安装目录。

你还需要删除现有的npm安装位置(例如“C:\Users\weiqinl\AppData\Roaming\npm”),以便正确使用nvm安装位置。

以上操作完成之后,双击执行下载的setup文件。

Next之后,选择同意协议,之后选择nvm的本地安装目录,这里注意,nvm的安装路径名称中最好不要有空格。(注意:如果路径有空格,nvm use nodejs版本的时候就会报错。建议采用 D:\nvm 这样干净的路径。)

安装完毕后,在cmd输入nvm,会有相关的命令提示如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ nvm

Running version 1.1.7.

Usage:

  nvm arch                     : Show if node is running in 32 or 64 bit mode.
  nvm install <version> [arch] : The version can be a node.js version or "latest" for the latest stable version.
                                 Optionally specify whether to install the 32 or 64 bit version (defaults to system arch).
                                 Set [arch] to "all" to install 32 AND 64 bit versions.
                                 Add --insecure to the end of this command to bypass SSL validation of the remote download server.
  nvm list [available]         : List the node.js installations. Type "available" at the end to see what can be installed. Aliased as ls.
  nvm on                       : Enable node.js version management.
  nvm off                      : Disable node.js version management.
  nvm proxy [url]              : Set a proxy to use for downloads. Leave [url] blank to see the current proxy.
                                 Set [url] to "none" to remove the proxy.
  nvm node_mirror [url]        : Set the node mirror. Defaults to https://nodejs.org/dist/. Leave [url] blank to use default url.
  nvm npm_mirror [url]         : Set the npm mirror. Defaults to https://github.com/npm/cli/archive/. Leave [url] blank to default url.
  nvm uninstall <version>      : The version must be a specific version.
  nvm use [version] [arch]     : Switch to use the specified version. Optionally specify 32/64bit architecture.
                                 nvm use <arch> will continue using the selected version, but switch to 32/64 bit mode.
  nvm root [path]              : Set the directory where nvm should store different versions of node.js.
                                 If <path> is not set, the current root will be displayed.
  nvm version                  : Displays the current running version of nvm for Windows. Aliased as v.

如果要升级nvm

如果要升级的话,请重新下载最新的安装程序。并直接运行安装程序。它将安全的覆盖需要更新的文件,而无需关心nodejs的安装。 此次安装需要确保和上次使用相同的安装目录。 如果你最初安装到默认位置,则只需一直点击"下一步",直到完成。

使用nvm

nvm for windows是一个命令行工具,在控制台输入nvm,就可以看到它的命令用法。基本命令有:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nvm arch [32|64] : 显示node是运行在32位还是64位模式。指定3264来覆盖默认体系结构。
nvm install <version> [arch]: 该可以是node.js版本或最新稳定版本latest。(可选[arch])指定安装32位或64位版本(默认为系统arch)。设置[arch]为all以安装3264位版本。在命令后面添加--insecure ,可以绕过远端下载服务器的SSL验证。
nvm list [available]: 列出已经安装的node.js版本。可选的available,显示可下载版本的部分列表。这个命令可以简写为nvm ls [available]。
nvm on: 启用node.js版本管理。
nvm off: 禁用node.js版本管理(不卸载任何东西)
nvm proxy [url]: 设置用于下载的代理。留[url]空白,以查看当前的代理。设置[url]为none删除代理。
nvm node_mirror [url]:设置node镜像,默认为https://nodejs.org/dist/.。我建议设置为淘宝的镜像https://npm.taobao.org/mirrors/node/
nvm npm_mirror [url]:设置npm镜像,默认为https://github.com/npm/npm/archive/。我建议设置为淘宝的镜像https://npm.taobao.org/mirrors/npm/
nvm uninstall <version>: 卸载指定版本的nodejs。
nvm use [version] [arch]: 切换到使用指定的nodejs版本。可以指定32/64[arch]。nvm use <arch>将继续使用所选版本,但根据提供的值切换到32/64位模式的<arch>
nvm root [path]: 设置 nvm 存储node.js不同版本的目录 ,如果未设置,将使用当前目录。
nvm version: 显示当前运行的nvm版本,可以简写为nvm v

使用nvm安装nodejs

首先查看一下当前有哪些可用的版本,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ nvm list available

|   CURRENT    |     LTS      |  OLD STABLE  | OLD UNSTABLE |
|--------------|--------------|--------------|--------------|
|   11.13.0    |   10.15.3    |   0.12.18    |   0.11.16    |
|   11.12.0    |   10.15.2    |   0.12.17    |   0.11.15    |
|   11.11.0    |   10.15.1    |   0.12.16    |   0.11.14    |
|   11.10.1    |   10.15.0    |   0.12.15    |   0.11.13    |
|   11.10.0    |   10.14.2    |   0.12.14    |   0.11.12    |
|    11.9.0    |   10.14.1    |   0.12.13    |   0.11.11    |
|    11.8.0    |   10.14.0    |   0.12.12    |   0.11.10    |
|    11.7.0    |   10.13.0    |   0.12.11    |    0.11.9    |
|    11.6.0    |    8.15.1    |   0.12.10    |    0.11.8    |
|    11.5.0    |    8.15.0    |    0.12.9    |    0.11.7    |
|    11.4.0    |    8.14.1    |    0.12.8    |    0.11.6    |
|    11.3.0    |    8.14.0    |    0.12.7    |    0.11.5    |
|    11.2.0    |    8.13.0    |    0.12.6    |    0.11.4    |
|    11.1.0    |    8.12.0    |    0.12.5    |    0.11.3    |
|    11.0.0    |    8.11.4    |    0.12.4    |    0.11.2    |
|   10.12.0    |    8.11.3    |    0.12.3    |    0.11.1    |
|   10.11.0    |    8.11.2    |    0.12.2    |    0.11.0    |
|   10.10.0    |    8.11.1    |    0.12.1    |    0.9.12    |
|    10.9.0    |    8.11.0    |    0.12.0    |    0.9.11    |
|    10.8.0    |    8.10.0    |   0.10.48    |    0.9.10    |

This is a partial list. For a complete list, visit https://nodejs.org/download/release

可以从清单中看出,nodejs的版本较多,本次的目的是为了降级提供Gitbook导出的html可以跳转。

那么下面就安装一个较低的版本,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nvm install 6.16.0
nvm use 6.16.0

再重新安装Gitbook

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm install -g gitbook-cli

再生成Gitbook

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gitbook build --gitbook=2.6.7

打开生成html,侧边栏可以跳转章节了,但是没有了最新版本的search功能,如下:

不过,没关系了,如果要用齐全的功能,最好就是直接使用nodejs搭起服务,这样功能就完整了。

GitBook其他相关命令

当然,build 命令可以指定路径:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ gitbook build [书籍路径] [输出路径]

serve 命令也可以指定端口:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ gitbook serve --port 2333

你还可以生成 PDF 格式的电子书:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ gitbook pdf ./ ./mybook.pdf

生成 epub 格式的电子书:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ gitbook epub ./ ./mybook.epub

生成 mobi 格式的电子书:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ gitbook mobi ./ ./mybook.mobi

如果生成不了,你可能还需要安装一些工具,比如 ebook-convert。或者在 Typora 中安装 Pandoc 进行导出。

除此之外,别忘了还可以用 Git 做版本管理呀!在 mybook 目录下执行 git init 初始化仓库,执行 git remote add 添加远程仓库(你得先在远端建好)。接着就可以愉快地 commit,push,pull … 啦!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.04.01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
[源码解析] PyTorch 分布式(4)------分布式应用基础概念
本文以 PyTorch 官方文档 https://pytorch.org/tutorials/intermediate/dist_tuto.html 为基础,对如何编写分布式进行了介绍,并且加上了自己的理解。
罗西的思考
2021/11/16
2.8K1
[源码解析] PyTorch 分布式(4)------分布式应用基础概念
分布式机器学习的故事
从毕业加入Google开始做分布式机器学习,到后来转战腾讯广告业务,至今已经七年了。我想说说我见到的故事和我自己的实践经历。这段经历给我的感觉是:虽然在验证一个新的并行算法的正确性的时候,我们可以利用现有框架,尽量快速实现,但是任何一个有价值的机器学习思路,都值得拥有自己独特的架构。所以重点在有一个分布式操作系统,方便大家开发自己需要的架构(框架),来支持相应的算法。如果你关注大数据,听完我说的故事,应该会有感触。 大数据和分布式机器学习 特点 说故事之前,先提纲挈领的描述一下我们要解决的问题的特点。我见过
小莹莹
2018/04/18
1.1K0
分布式机器学习的故事
一个新时代 起源 分布式机器学习是随着“大数据”概念兴起的。在有大数据之前,有很多研究工作为了让机器学习算法更快,而利多多个处理器。这类工作通常称为“并行计算”或者“并行机器学习”,其核心目标是把计算任务拆解成多个小的任务,分配到多个处理器上做计算。分布式计算或者分布式机器学习除了要把计算任务分布到多个处理器上,更重要的是把数据(包括训练数据以及中间结果)分布开来。因为在大数据时代,一台机器的硬盘往往装不下全部数据,或者即使装下了,也会受限于机器的I/O通道的带宽,以至于访问速度很慢。为了更大的存储容量、吞
机器学习AI算法工程
2018/03/12
1.5K0
分布式机器学习的故事
Pytorch 分布式训练
即进程组。默认情况下,只有一个组,一个 job 即为一个组,也即一个 world。
肉松
2020/09/07
2.5K0
Pytorch 分布式训练
[源码解析] 深度学习分布式训练框架 Horovod (1) --- 基础知识
Horovod 是Uber于2017年发布的一个易于使用的高性能的分布式训练框架,在业界得到了广泛应用。
罗西的思考
2021/06/10
2.2K0
[源码解析] 深度学习分布式训练框架 Horovod (1) --- 基础知识
【AI系统】分布式通信与 NVLink
在进入大模型时代后,大模型的发展已成为 AI 的核心,但训练大模型实际上是一项比较复杂的工作,因为它需要大量的 GPU 资源和较长的训练时间。
用户11307734
2024/11/27
2210
ANGEL:一个新型的分布式机器学习系统
引自:http://www.ccf.org.cn/c/2017-08-16/603621.shtml
用户7886150
2021/04/21
1K0
人机共生时代,分布式机器学习是如何加速的?
导语 | 机器学习技术在现代社会中发挥着越来越重要的作用,深刻地影响着各行各业。同时,也面对着海量数据和复杂问题的挑战。今天我们主要讨论分布式机器学习技术是如何处理海量数据,利用海量算力加速训练,使得机器学习过程变得越来越快的。 一、前言 近些年来,人工智能技术,尤其是机器学习技术在众多领域都发挥了越来越重要的作用,每个人一天的生活中都在不断地与其打交道。不论是打开短视频App浏览关心的新闻或八卦,还是打开购物App逛一逛,甚至只是打开手机也需要用到人脸解锁,机器学习技术已经完全融入了每个人的生活当中
腾讯云开发者
2021/09/03
8100
[源码解析] 深度学习分布式训练框架 horovod (8) --- on spark
Horovod 是Uber于2017年发布的一个易于使用的高性能的分布式训练框架,在业界得到了广泛应用。
罗西的思考
2021/07/01
2.2K0
业界 | 详解Horovod:Uber开源的TensorFlow分布式深度学习框架
选自Uber 作者:Alex Sergeev、Mike Del Balso 机器之心编译 参与:李泽南、路雪 Horovod 是 Uber 开源的又一个深度学习工具,它的发展吸取了 Facebook「一小时训练 ImageNet 论文」与百度 Ring Allreduce 的优点,可为用户实现分布式训练提供帮助。本文将简要介绍这一框架的特性。 近年来,深度学习引领了图像处理、语音识别和预测等方面的巨大进步。在 Uber,我们将深度学习应用到了公司业务中,从自动驾驶搜索路线到防御欺诈,深度学习让我们的数据科
机器之心
2018/05/08
3.3K0
业界 | 详解Horovod:Uber开源的TensorFlow分布式深度学习框架
[源码解析] PyTorch 分布式(1)------历史和概述
本文主要在对PyTorch官方文档的翻译之上加入了自己的理解,希望给大家一个PyTorch分布式的历史脉络和基本概念,有兴趣的朋友可以仔细研究一下历史,看看一个机器学习系统如何一步一步进入分布式世界 / 完善其功能。
罗西的思考
2021/11/04
1.4K0
猿辅导登顶MSMARCO:机器阅读理解超过人类水平、力压百度微软
在著名的微软MSMARCO(Microsoft MAchine Reading COmprehension)机器阅读理解测试排行上,现在排名第一的团队,已经悄然变成了猿辅导。
量子位
2018/07/24
1.3K0
猿辅导登顶MSMARCO:机器阅读理解超过人类水平、力压百度微软
机器学习中的并行与分布式深度学习:C/C++实现详解
随着深度学习在各个领域的应用日益广泛,模型的规模和复杂性不断增加,传统的单机训练在计算效率上已难以满足需求。并行与分布式深度学习通过将计算任务分配到多台机器或多个GPU上,大大提升了模型训练速度,是应对大规模深度学习任务的重要手段。
用户11289931
2024/10/09
2990
【一】分布式训练---单机多卡多机多卡(飞桨paddle1.8)
     加快模型的训练速度。通过对训练任务按照一定方法拆分分配到多个计算节点进行计算,再按照一定的方法对需要汇总的信息进行聚合,从而实现加快训练速度的目的。
汀丶人工智能
2022/12/21
1.8K0
【一】分布式训练---单机多卡多机多卡(飞桨paddle1.8)
如何用Amazon SageMaker 做分布式 TensorFlow 训练?(千元亚马逊羊毛可薅)
TensorFlow 是广泛被用于开发大型深度神经网络 (DNN) 的开放源机器学习 (ML) 库,此类 DNN 需要分布式训练,并且在多个主机上使用多个 GPU。Amazon SageMaker 是一项托管服务,可通过主动学习、超参数优化、模型分布式训练、监控训练进展,部署培训模型作为自动扩展的 RESTful 服务,以及对并发 ML 实验进行集中式管理,从标签数据开始简化 ML 工作流。
机器之心
2020/08/07
3.6K0
如何用Amazon SageMaker 做分布式 TensorFlow 训练?(千元亚马逊羊毛可薅)
雅虎开源CaffeOnSpark:基于Hadoop/Spark的分布式深度学习
在基于Hadoop集群的大规模分布式深度学习一文中,雅虎介绍了其集Caffe和Spark之长开发CaffeOnSpark用于大规模分布式深度学习,并向github.com/BVLC/caffe贡献了部分代码。现在,雅虎机器学习团队又在这篇tumblr文章上宣布将整个CaffeOnSpark开源作为Spark的深度学习包。 Github:yahoo/CaffeOnSpark(Apache 2.0 license) 许多现有的DL框架需要一个分离的集群进行深度学习,而一个典型的机器学习管道需要创建一个复杂的程序
用户1737318
2018/06/06
4580
聊一聊深度学习分布式训练
在深度学习时代,训练数据特别大的时候想要单卡完成训练基本是不可能的。所以就需要进行分布式深度学习。在此总结下个人近期的研究成果,欢迎大佬指正。
NewBeeNLP
2022/06/06
3.4K2
聊一聊深度学习分布式训练
MLSys提前看 | 机器学习的分布式优化方法
随着机器学习算法和模型的不断发展,传统的软硬件平台、部署环境等无法支撑机器学习的应用,这也成为了目前机器学习方法落地及大规模推广应用的主要困难之一。目前,有关于 MLSys 的研究方向包括硬件领域、软件领域和对机器学习算法的改进三个方面,以 MLSys 2020 为例,本届大会的议题包括:Distributed and parallel learning algorithms(5 篇论文)、Efficient model training(8 篇论文)、Efficient inference and model serving(8 篇论文)、Model/Data Quality and Privacy(4 篇论文)、ML programming models and abstractions & ML applied to systems(5 篇论文)以及 Quantization of deep neural networks(4 篇论文)。整个会议一共录用 34 篇论文。
机器之心
2020/02/25
1.3K0
DMLC对于机器学习和系统开发者意味着什么?
摘要:本文由DMLC的作者之一陈天奇所写,从语言选择,设计理念等开发者的角度来介绍DMLC,同时也是作者近期的分布式机器学习实践的一个总结。 最近对于DMLC的宣传比较多。大部分宣传基本上都是从用户角度出发来做。今天想写一些东西,以我个人的观点来解释一下DMLC对于机器学习系统研究开发者意味着什么。 DMLC的起因 某一天我在和李沐闲聊的时候感叹目前c++的hacker各做各的。当时我们都在做分布式机器学习项目,中间涉及到的分布式数据读入,进程管理等都问题,于是我们似乎在两份目的相同的代码。我提
用户1737318
2018/06/05
3.2K0
【开源】北大团队大规模稀疏数据机器学习库xLearn,c++ trending 已超TensorFlow
编辑:弗格森 【新智元导读】 机器学习博士马超近日在微博上介绍他和导师肖臻教授一起开发的一款专门针对大规模稀疏数据的机器学习库xLearn并开源。并称, vision 是将 xLearn 打造成和 xgboost,MXNet一样的工业事实标准。 该项目由肖臻教授和马超博士合作完成。 肖臻教授 美国康奈大学博士 之前任美国AT&T 和 IBM 科学家。研究方向分布式系统和机器学习。在国际顶级刊物发表论文60余篇,论文引用超过4000次。 马超,北大云计算课题组博士生,研究方向分布式系统与大规模机器学习。同
新智元
2018/03/21
1.6K0
【开源】北大团队大规模稀疏数据机器学习库xLearn,c++ trending 已超TensorFlow
推荐阅读
相关推荐
[源码解析] PyTorch 分布式(4)------分布式应用基础概念
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验