Emacs org-mode整理

基础

Org-mode的实践场景有笔记管理,任务计划,项目管理等必需的诸项日常工作,此处也是促使我工作中使用Emacs的一个重要原因。

使用该功能有段时间没使用了, 整理一下以前写的文章, 准备再开启漫漫的学习编程的历程.

用大纲组织文档结构

org使用*号来列提纲的标题。
实例:

  • org-mode
    ** 大纲
    介绍
    ** 语法
  • 文档导出

段落

   1. 段落通过至少一个空行来实现区分划分;
   2. 如果是在一个段落里面分行,后面增加\\,有种续段的意思;
   3. VERSE是一个诗歌模式,提供类似文本的所见即所得的效果;
   4. QUOTE用于引用标识,在实际导出的网页格式中没有观察到实际的效果;
  5. CENTER可以让一段信息居中,如果是分行续段的,几行内容会一起居中;
   6. 结构的使用分别用#+BEGIN_xxx #+END_xx来框定。

语法

使用* 号标记,位于行首,之后跟一个空格再输入标题。与md的#类似。
最多支持10及的标题。

展开及收缩

快捷键描述
S-Tab所有标题展开
Tab光标所在标题展开

标题跳转

快捷键描述
C-c C-n/p下/上标题
C-c C-f/b下/上标题 仅同一标题
C-c C-u跳到上一级标题
C-c C-j跳转到

插入及编辑

快捷键说明
M-Ret插入同级标题
M-S-Ret插入同一级的ToDo标题(ToDo会在下篇介绍)
M-Left/Right将当前标题升/降级
M-S-Left/Right将当前标题及子树升/降级
M-S-Up/Down将当前标题及子树上/下移
C-c *将本行设置为标题/正文
C-c C-w将子树及区域移动至另一标题处(通常我直接用文本剪切)
C-x n s/w只显示当前标题及子树/返回(有用,编辑时可专注于当前标题),org narrow
C-c C-x b在新缓冲区显示当前标题及子树/返回(同 C-c n s)
C-c /只显示搜索结果的大纲并高亮(检索时用)
C-c C-c取消高亮
注:更多的快捷键使用C-c C-x C-h查询

显示方式

使用M-x org-indent-mode 切换带缩进的显示方式。
如果想在打开时进入该模式,在文档头部增加
#+STARTUP:indent
如果希望所有org文件都以此种方式打开,在.emacs中增加

(setq org-startup-indented t)

个人感觉缩进很好,树形的展示很容易看出整个结构,但在编辑时与文本的查看习惯不太一致,故我基本不用。

超链接

符合超链接的规则的内容,自动视为超链接
例如:

https://www.baidu.com/ baidu
file:home

链接类型

Possible completions are:
bbdb: 	bibtex: 	docview: 	doi: 	elisp: 	file+emacs:
file+sys: 	file: 	ftp: 	gnus: 	http: 	https:
info: 	irc: 	mailto: 	message: 	mhe: 	news:
rmail: 	shell:

对于文件链接,可以在后面增加::定位到行数或搜索选项

file:home/tmp/hello.txt::12
file:home/tmp/hello.txt::My Target 找到目标<>

可以自定链接

[[link][description]]
[link]

编辑链接

快捷键说明
C-c C-l编辑链接(此处为小写L)
C-c C-o打开链接(相当有用)

内部链接
定义锚点#<>

[[myanchor][内部链接]]

注: 常用功能,内部跳转

脚注
添加脚注链接

[[fn:footprint1][脚注]]

定义脚注

  • fn:footprint1
    注:必须以标题形式定义,我几乎未用过,请用过的朋友指点。

显示图片

使用如下标签插入图片,使用 C-c C-x C-v inline 方式显示图片,或者使用C-c C-o打开链接。

[[file:a.png]]

字体

符号描述
*粗体*粗体
/斜体/
+删除线+
_下划线_

表格

强大的表格处理操作,目前唯一缺点是对中文支持有问题,无法对齐,我暂时尚未找到方案解决,有好方法的兄弟请留言介绍一下。

快捷键描述
C-c |创建表格
C-c C-c重新调整表格缩进
Tab移动至下一个区域,必要时(行尾)创建一行
S-Tab移动至上一个区域
S-Ret移动至下一行,必要时(行尾)创建一行
M-Left/Right移动列
M-Up/Down移动行
M-S-Left/Right删除/插入列
M-S-Up/Down删除/插入行
C-c -插入水平分割线
C-c Ret插入水平分割线并跳到下一行
C-c ^根据当前列排序

段落

对于单个回车的文本,org认为是在同一个段落,导出时会转化成不同行的同一段落。如果要起新的段落,请敲空白行。

列表

分类: 有序列表,无序列表,描述列表

无序列表,以 - + * 开头
有序列表, 以1.或1)开头
描述列表, 以::将描述隔开

快捷键描述
Tab折叠列表项
M-Ret插入项
M-S-Ret插入带复选框的项
M-S-Up/Down移动列表项
M-Left/Right升/降级列表项 不包括子项
M-S-Left/Right升/降级列表项 包括子项
C-c C-c改变复选框状态
C-c -更换列表标记
Shift更换列表标记

大纲管理文档的进阶

标签定义

对于信息的管理,有分类和标签两种方式。

分类: 形式固定,很少变化
            树状结构,结构清晰
            过于简单,不能表达复杂信息
标签: 随时增加,查找方便
           多维度

标签的特点:org的标签自动按照大纲树继承,即子标题自动继承父标题的标签。使用:tag:表示,例如

* meeting  :work:
** title :boss:
*** TODO prepare list :action:

如果希望文件内所有文档都具有某些标签,在开头定义元数据:

#+FILETAGS:Secret:

快捷键描述
C-c C-q创建标签
C-c C-c在标题上使用,创建标签

预定义标签

在文件开头使用元数据标记,例如:

#+TAGS: Host(h) VM(v)
#+TAGS: meeting(m) work home

提醒: 更改后在定义处记得使用C-c C-c激活修改,否则无法显示

同时,可以通过变量org-tag-alist来创建一个全局标签列表。

如果你已经用 org-tag-alist 定义了喜欢的全局标签, 但又想在一个特定的文件中使用动态标签,那么可以通过添加一个空的 TAGS 选项到这个文件来达到这个目的:

#+TAGS:

默认情况下,org使用mini buffer 输入标签,如果希望使用一个键来完成选择,需要为标签提供唯一的字符,即 Host(h)
在配置文件中这样配置

(setq org-tag-alist '((“@host” . ?h) (“@vm” . ? v ) (“@switch” . ?s)))

如果希望标签仅仅和当前使用的文件关联,使用 @Host(h)
换行可加入\n或者多行配置

标签支持分组,类似单选,允许多个分组

#+TAGS: { @Host(h) VM(v) } Switch(s) Firewall(f)

提醒: 大括号前后空格不要忘记

配置文件中设置组参考以下例子:

(setq org-tag-alist '((:startgroup . nil)
                      ("@host" . ?h) ("@vm" . ?v)
                      ("@docker" . ?d)
                      (:endgroup . nil)
                      ("switch" . ?s) ("firewall" . ?firewall))

如果至少为一个标签定义了快捷键,按 C-c C-c 时会展示一个特殊的界面,其中列出了当前标题已经继承了的标签,还包含一个可选的标签列表。这个界面提供了下面的快捷键:

a-z...       按这些键时会将对应的标签添加到当前的标题列表中或从当前的标题列表中移除。选择一个具体排它性的标签组时,会将标签组的其它标签移除。
TAB        在迷你缓冲区中输入一个标签,即使这个标签不在预定义的标签列表中。对于缓冲区内的标签,提供了自动完成。当然也可以一次添加多个标签,只要把他们用冒号 ':' 分开。
SPC         清除这行的所有标签。
RET         确认修改
C-g         取消修改
q            如果 /q/ 不是某一个标签的快捷键的话,效果和 *C-g* 相同。
!            关闭组的排它性。这样就可以分配一个组的多个标签。
C-c        在下次修改后(参见下面的详细说明),切换 *auto-exit* 。如果是在专家模式下,第一个 *C-c* 会提供一个窗口。

如果你发现在大部分时候,仅仅需要一个键去修改标签列表,那么可以设置 org-fast-tag-select-single-key 参数。这样就不用按回车来退出快速标签选择了——它会在第一次修改立刻退出。

如果在个别情况下需要多个按键,按 C-c 为当前的标签选择关闭 auto-exit (实际上是用 C-c C-c C-c 开始了选择而不是 C-c C-c )。

如果将这个变量的值设置为 expert 那么除了多按一个 C-c 时,一般情况下在单键输入标签时选择窗口根本不会出现。

标签搜索

建立好了tag系统,可以将相关信息收集到一个表中.

C-c / m 或 C-c \ 标准检索, 按照tag进行检索
C-c a m 按标签搜索多个文件 需要把文件加入全局agenda

##导出和发布
自带导出功能: C-c C-e
image.png

元数据设置:

\#+TITLE: Emacs 最好的编辑器,没有之一
\#+AUTHOR: GuoPei
\#+EMAIL: xxx@xxx
\#+KEYWORDS:emacs ,org-mode

导出为markdown:

M-x org-md-export-as-markdown
必须支持html a标签

以上是简单例子,其他元数据请自行查阅资料,内容相当之多。我最喜欢plain text。

小技巧: 
  如果遇到段落导出无法换行问题,请在开头加入以下Option,
  #OPTIONS: \n:t

发布时设置内容元数据

通常在文档开头,以#+开头

  • 分行区块

#+BEGIN_VERSE

  • 内容区块

#+END_VERSE

发布为html时,转化为

 <p class="verse">
   p.verse { margin-left: 3%; }
  • 缩进区块

    #+BEGIN_QUOTE

区块

#+END_QUOTE

发布为html时,转化为

<blockquote>

  • 居中区块
    #+BEGIN_CENTER
    区块
    #+END_CENTER

  • 代码区块
    #+BEGIN_SRC ruby
    区块
    #+END_src

  • 例子
    #+BEGIN_EXAMPLE
    多行例子使用区块
    单行例子以冒号开头
    #+END_EXAMPLE

  • 注释
    #+BEGIN_COMMENT
    多行注释
    单行以#开头
    #+END_COMMENT

  • HTML 区块
    #+BEGIN_HTML
    嵌入的
    #+END_HTML

日程定义

日常用org最多的地方就是日程管理,能够管理日程的软件很多,手机电脑都有很好的工具,至于为什么我选择使用emacs,因为我喜欢纯文本。功能强大和易用本身就是矛盾,使用纯文本算是简单易用,使用org又可以保证一定的功能性。

定义状态

系统内置状态有两种: TODO和DONE
强大之处在于可以任意定义状态

例如:

#+SEQ_TODO: TODO(T!) | DONE(D@) CANCELED(C@/!)
#+SEQ_TODO: BUG(b) KNOWNCASE(k) | FIXED(f)

将定义放在文档任意位置,我选择放头部。
重要: 光标移动至定义处,使用 C-c C-c使定义生效。

将光标移动至任务处,使用C-c C-t 打开缓冲区,长得像下图这个样子,此时即可选择自定的状态。

image.png

状态改变之后,变成如下的状态

***** TODO Check compute node in demo center
- State “TODO” from “” [2018-03-16 Fri 09:34]

  • 可以定义多组状态序列,每个“#+SEQTODO”行定义一组
  • 状态之间用空格分隔
  • 可以在()中定义附加选项,包括:
    • 字符:该状态的快捷键
    • !:切换到该状态时会自动增加时间戳
    • @ :切换到该状态时要求输入文字说明
    • 如果同时设定@和!,使用“@/!”
+ 用“|”分隔未完成状态和已完成状态。未完成状态在查询待办事项时会列出。
快捷键功能
C-c C-t打开状态切换buffer
S-LEFT/RIGTH切换状态

优先级

org中有三种优先级,分别为A,B,C,在安排日程时,可以按照优先级进行排序。

快捷键功能
S-UP/DOWN优先级设置

例:

***** TODO [#A] Check Network connection
***** TODO [#B] Check Nic status
***** TODO [#B] Check Storage status
***** TODO [#C] Check Power supply

子任务

org中,可为某个日程设置若干子任务。支持在上级任务上增加标记,当子任务状态发生改变时,自动更新上级任务完成情况。有两种表现形式,百分比和分数, 例如: [80%] 和 [3/8]
设置方式实在上级标题中,任意位置插入[%] [/], 当子任务发生改变时,自动跟新其中的数字。

例:
两种显示

***** Blade[25%] [1/4]
****** DONE [#A] Check Network connection
****** TODO [#B] Check Nic status
****** TODO [#B] Check Storage status
****** TODO [#C] Check Power supply

此处需注意:

  • 当子任务状态改变时,只更新上一级,不可级联。
  • 当所有子任务完成,只能标记为100% ,并不会标记为DONE。如果需要自动设定为完成,可以通过更新emacs配置文件进行设置,作者不喜欢这么做,请自行查找。

***** Blade[1/4]
****** DONE [#A] Check Network connection
****** TODO [#B] Check Nic [1/2] status
- State “TODO” from “” [2018-03-17 Sat 19:29]

******* TODO Nic1
******* DONE Nic2
****** TODO [#B] Check Storage status

小提醒:
org 是文本,所以copy一个区域时 ,使用标准复制(M-w)是全文本复制,被隐藏的子标题也会被复制下来,如果希望只将显示的文本复制而不复制隐藏的子标题,使用快捷键 C-c C-x v (org-copy-visible)

非标题的子任务

上一个主题是介绍的子任务是以子标题的形式。如果希望非主题的子任务,可以使用列表,并在列表开头添加 “[ ]” 作为复选框,形成局部的子任务。
例如:

****** TODO [#B] Check Storage status [2/3]
- State “TODO” from “” [2018-03-17 Sat 19:29]
- [X] HD
- [X] SSD
- [ ] Block

快捷键功能
C-c C-c改变复选框状态
M-S-Rec增加一个子项
M-Rec增加一个子项(不带复选框)

任务查询

在org 基础功能中,已经介绍过,使用C-c /, 可列出多种检索方式,如下图
image.png

选项功能
[t]odo列出所有TODO状态的task
[T]odo-kwd根据key word 选择状态,可以多个状态, 例如 TODO|DONE

时间

任务可以设置两种,计划时间(SCHEDULED)和截止时间(DEADLINE)。
首先,先熟悉一下Emacs的时间戳

时间戳

使用”< >“进行标记, 说多没用,看例子:

<2018-03-16 Fri>
<2018-03-17 Sat 21:00>
<2018-03-18 Sun 10:00-12:00>
<2018-03-16 Fri 10:00 +1w>

可以标记时间点和间隔,间隔用天(d)、周(w)、月(m)年(y)来表示
应为是文本,可以手工输入,或者使用 C-c .来创建。

选项功能
C-c .创建时间戳(在日历中,使用S-Left/Right选择日期,输入时间)
C-c <当前日期
C-c >查看日历
C-c !与任务不相关的日期 (以中括号标记)
S-Left/Right更改日期,天为单位
S-Up/Down改变光标所在的位置的时间单位,用来单独修改时间和日期

用两个连续的“–”将两个时间戳连接起来表示时间段

<2018-03-17 Sat>–<2018-03-19 Mon>

选项功能
C-c .连续使用可以创建时间段
C-c C-y计算间隔

org的时间戳

可以为任务设置计划时间与截止时间。

选项功能
C-c C-s设置计划时间
C-c C-d设置截止时间

****** TODO [#C] Check Power supply
DEADLINE: <2018-03-18 Sun 21:00> SCHEDULED: <2018-03-18 Sun>

设置timer

给org插入一个count down的 timer,用来给某个任务提示。
使用C-c C-x ; 开始一个timer。开始时,会在状态栏倒计时;结束时,会在buffer中提示。例如:

TODO [#C] Check Power supply: time out

属性

C-c C-x P 可以为任务设置属性。例如:

****** TODO [#B] Check Storage status [2/4]
- State “TODO” from “” [2018-03-17 Sat 19:29]
:PROPERTIES:
😛: 1
:Mail: send
:END:

* CD collection
:PROPERTIES:
:NDisks_ALL: 1 2 3 4
:Publisher_ALL: “Deutsche Grammophon” Philips EMI
:END:

属性可继承,并可以全局设置,文件所有内容都会继承,在文件头添加
key后面添加_All可以设置该key的可选value

#+PROPERTY: P_ALL 1 2 3 4

使用+号为一个属性添加新的value

#+PROPERTY: var foo=1
#+PROPERTY: var+ bar=2

* CD collection
** Classic
:PROPERTIES:
:GENRES: Classic
:END:
*** Goldberg Variations
:PROPERTIES:
:Title: Goldberg Variations
:GENRES+: Baroque

选项功能
C-c C-x P设置属性,k-v键值对
C-u M-x org-insert-drawer插入一个空的属性语法块
C-c C-c属性操作列表
C-c C-c s设置当前属性
C-c C-c d删除当前属性
C-c C-c D全局删除当前属性
S-Left/Right切换下一个候选的value

特殊的属性:

ALLTAGS All tags, including inherited ones.
BLOCKED “t” if task is currently blocked by children or siblings.
CLOCKSUM The sum of CLOCK intervals in the subtree. org-clock-sum
must be run first to compute the values in the current buffer.
CLOCKSUM_T The sum of CLOCK intervals in the subtree for today.
org-clock-sum-today must be run first to compute the
values in the current buffer.
CLOSED When was this entry closed?
DEADLINE The deadline time string, without the angular brackets.
FILE The filename the entry is located in.
ITEM The headline of the entry.
PRIORITY The priority of the entry, a string with a single letter.
SCHEDULED The scheduling timestamp, without the angular brackets.
TAGS The tags defined directly in the headline.
TIMESTAMP The first keyword-less timestamp in the entry.
TIMESTAMP_IA The first inactive timestamp in the entry.
TODO The TODO keyword of the entry.

查看属性的好办法是使用column view,使用C-c C-x C-c (org-columns)开启。

命令如下:

选项功能
r重新载入
q退出
n/p切换value
e编辑value
v显示value
a编辑可能的value
S-M-right插入一个vlaue
S-M-left删除当前column

可以使用两种方式定义:

#+COLUMNS: %25ITEM %TAGS %PRIORITY %TODO

** Top node for columns view
:PROPERTIES:
:COLUMNS: %25ITEM %TAGS %PRIORITY %TODO
:END:

列定义的语法 如下:

%[width]property[(title)][{summary-type}]

width: 显示字符数
property: 属性
title : 显示的title
summary-type: 聚合的定义,例如 {+} {+;%.1f} 等。

属性功能有点多,参考官方文档深挖。

Drawer

属性(property)是特殊的drawer,可以通过C-c C-x d添加任意drawer。
此处不详细介绍了。

** This is a headline
Still outside the drawer
:DRAWERNAME:
This is inside the drawer.
:END:
After the drawer.

日程管理

至此,可以用org来管理日程了,其他功能太多,不详细介绍了。
设置了日程,如何查看呢,后面着重介绍 Agenda。

日程 Agenda

定义完ToDo之后,使用M-x org-agenda 打开日程buffer,可看到当前排的所有日程,并可以直接进行优先级等操作。那如何归纳整理自己的日程表呢,通常我使用多个文件来代表不同的类型。

日程文件

可以针对不同的任务类型,定义多个日程或任务文件,然后将文件加入全局的日程文件列表,统一纳入org的管理。

以下来举例:
使用C-h v 查看变量org-agenda-flies,当前有一个文件,现在我们再加入另一个

image.png

打开org文件,使用org-agenda-file-to-front或者快捷键C-c [ 将当前文件加入到全局列表。这样一来,我们定义的日程就会加入到全局列表,使用emacs统一进行管理了。也可以通过emacs配置文件加入。

image.png

然后就可以使用M-x org-agenda a 打开agenda界面了。
image.png

快捷键功能
C-c [将当前文件加入全局列表
C-c ]将当前文件移除全局列表
C-c C-x <锁定当前文件即在org agenda的buffer中只显示当前文件的日程(org-agenda-set-restriction-lock)
C-c C-x >解锁(org-agenda-remove-restriction-lock)

可以打开speedbar ,在文件上使用< 和> 来锁定和解锁。

日程操作

前一章已经介绍过,使用org-agenda打开日程buffer,此时可以选择多种视图方式,以便更加方便的查看日程。

image.png

Emacs 内置了多种视图,下面会一一介绍,首先来看都有哪些操作。

###视图中的操作
其他快捷键及功能:

快捷键功能
bdaily视图
wweekly视图
n/p上/下移动光标
N/P上/下按日程移动光标
SPC在另一缓冲区显示任务在org文件中的定义的位置
TAB在另一缓冲区显示任务在org文件中的定义的位置,并且光标跳转至此
L显示任务在文件中位置并且光标居中
RET在当前buffer打开文件并跳转
F打开跟踪模式,即移动光标时,另一buffer显示当前任务的定义处
C-c C-x b显示任务及子树,并可以设置层数
C-c C-o打开链接
o关闭另一个buffer
A打开另一种视图并嵌入到当前视图中
v弹出多个命令进行选择
f/b下一天
.跳转至当天
j选择日期并跳转
D包含日记
r刷新agenda buffer
/通过tag过滤
<通过类型过滤
^通过 top headline 过滤
=通过模式匹配过滤
|去除所有过滤
t改变状态
C-S-Left/C-S-Right改变状态
C-k删除
C-w重新归档某项日程
$归档,通常是另一个文件
T显示所有tag
:设置tag
,设置优先级
+/- 或者 S-up/down设置优先级
z添加note
C-c C-a附件
C-c C-s安排日程
C-c C-d设置deadline
S-Left/Right改变日期
>改变日期
I插入clock
O停止上一个clock
X取消当前clock
J跳转之clock处
M-Up/Down拖拽一个日程
mmark当前日程
*mark所有日程为重点
u取消mark当前日程
U取消mark所有日程
M-m设置/取消当前mark
M-×设置/取消所有mark
Bbulk action
C-x C-w导出。可以为.html .pdf .ps .org
q退出
x退出,包括所有相关打开的buffer

太多了,大家通过帮助自己尝试吧。

###Weekly/daily 视图
输入M-x org-agenda 时, 选择a 进入此视图。

在此视图中,操作在上一节介绍过。大家实践一下,通常使用的也就几个功能,碰到需要用的其他,再来查询具体快捷键。

###ToDo 视图

输入M-x org-agenda 时, 选择t/T 进入此视图。
t, 列出所有的todo
T,可以选择特殊的key来进行过滤。

Tag和属性过滤视图

输入M-x org-agenda 时, 选择m/M 进入此视图。
m, 根据tag进行过滤

语法:
‘work’: 选择tag ‘:work:’.
‘work&boss’: 选择tag ‘:work:’ 和 ‘:boss:’.
‘+work-boss’: 选择tag ‘:work:’, 忽略 tag ‘:boss:’.
‘work|laptop’: 选择tag ‘:work:’ 或 ‘:laptop:’.
‘work|laptop+night’:选择有laptop 并且有night的tag

除了tag,还可以使用正则表达式,例如: ‘work+{^boss.*}’ ,选择带有work的tag并且以boss开头

更多的语法及表达式就不介绍了,有需要时,查文档获取。

search 试图

输入M-x org-agnda 时, 选择s 进入此视图。
根据关键字查找或者正则。

stuck project试图

输入M-x org-agnda 时, 选择# 进入此视图。
参考了David Allen的GTD方法,一个stuck的project是没有定义下一步action的日程,不会在todo显示

分类

每个org todo文件都有一个分类,默认就是文件名。

可以在文件开头加入:

#+CATEGORY: xxx

可以在某项日程中加入属性:

:CATEGORY: xxx

之后在检索过滤时,可以根据分类来进行u过滤

Column 视图

列模式在上篇文章已经介绍过。
使用C-c C-x C-c 进入列模式。
此处不介绍了。

格式

导出时,Html等格式可以定义更多的格式,所以Emacs 可以定义更多的格式。

例如:

*bold*, /italic/, underlined, =verbatim= and code,

我只用到导出纯文本,故此项未深入了解。

最后

终于将org从头开始过了一遍, 有日子没用了, 从别的地方把以前写的文章挪过来看一遍, 后面再慢慢整理.

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机械猿始人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值