快速提高 Vi/Vim 使用效率的原则与途径

bash-support:在VimgVim中编辑Bash脚本。 插入代码段,运行,检查和调试代码并查找帮助 立即下载

引言

   Vi 最初是由 Bill Joy 在 1976 年编码实现的。而 Vim (Vi IMproved) 则是改进的 Vi,由 Bram Moolenaar 在 1991 年开发并发布。Vi/Vim 是所有 Unix/Linux 操作系统默认配备的编辑器。因其强大的功能和高效的操作,Vi/Vim 也成为众多 Unix/Linux 用户、管理员必须掌握并熟练使用的编辑工具之一。尤其是在没有图形界面的情况下,更是离不开 Vi/Vim。Vi/Vim 命令非常多、用法极为灵活,掌握起来有一定的难度。详细介绍 Vi/Vim 使用方法的文章有很多,因而本文就不一一述及 Vi/Vim 的诸多功能及命令。本文作者将结合自己的使用经验,分七个方面着重介绍哪些原则、途径或命令能快速提高 Vi/Vim 文件编辑效率,从而达到事半功倍的效果。本文述及的途径或命令均只针对系统默认配置的 Vi/Vim。关于 Vi/Vim 各种定制后的功能不在本文讨论范围之列。(注:本文中提到的所有命令均在 Red Hat Enterprise Linux Server release 6.1 上测试通过。)

Vi/Vim 版本的选择

  “工欲善其事,必先利其器”。在 Vi/Vim 版本的选择上,原则是“能用 Vim 就不要使用 Vi;能用最新版就不要守着旧版本”。Vim 提供的功能和特性要比 Vi 多得多,如语法加亮着色功能等。就使用效果及效率来说,编辑同样的文件,使用 Vim 更胜一筹;就版本来说,新版的往往会修复旧版的一些缺陷及不足。这就要求我们在可能的情况下一定要使用最新版的 Vim。

小技巧:

  在 Linux 下,如果以 root 用户登录系统的话,通过 vi 命令打开的 Vim 编辑器往往只加载最基本的功能,像语法加亮着色的功能基本上没有。在 root 用户下使用 Vim 所有功能的技巧是用 vim 命令打开 Vim 编辑器。

启动及关闭 Vi/Vim

  打开及关闭 Vi/Vim 的方法有很多,既可以只启动 Vi/Vim 编辑器本身,也可以在启动 Vi/Vim 编辑器的同时打开一个或多个文件;既可以放弃存盘退出,也可以只保存文件的一部分。以下为相关命令列表:

表 1. 启动及关闭 Vi/Vim 的基本命令
功能 命令 说明
启动 vi 打开 Vi/Vim
vi <file> 打开 Vi/Vim 并加载文件 <file>
 
退出 ZQ 无条件退出 
:q! 无条件退出 
ZZ 存盘并退出 
:wq 存盘并退出
 
保存部分文件 :m,nw <file> 将 m 行到 n 行部分的内容保存到文件 <file> 中 
:m,nw >> <file> 将 m 行到 n 行的内容添加到文件 <file> 的末尾
 

  掌握并熟练这些基本命令是使用 Vi/Vim 的基本要求。只有这样,才能在实际使用过程中做到按需选择,灵活使用,提高 Vi/Vim 的使用效率。需要说明的一点是:在使用 Vi/Vim 的时候,有时想临时退出 Vi/Vim,转到 shell 环境里去做一些操作,等这些操作结束后,再继续回到刚才的 Vi/Vim 状态。针对这一经常碰到的现实需求,很多人在大多数情况下会将保存退出 Vi/Vim,进入 shell 执行操作,然后再重新打开刚才编辑的文件。其实这是一个很低效的方法,因为再次打开需要重新定位刚才编辑的地方,麻烦不说,Vi/Vim 编辑器的状态也完全不一样了。其实,有两种方法可以可以实现临时退出 Vi/Vim、进入 shell 环境后再回来的要求:

方法一:使用 Ctrl-z 以及 fg 这两个命令组合。

  这一解决方法主要利用了 Linux/Unix 的作业机制。具体原理是:Ctrl-z 命令将当前的 Vi/Vim 进程放到后台执行,之后 shell 环境即可为你所用;fg 命令则将位于后台的 Vi/Vim 进程放到前台执行,这样我们就再次进入 Vi/Vim 操作界面并恢复到原先的编辑状态。

方法二:使用行命令 :sh。

  在 Vi/Vim 的正常模式下输入 :sh即可进入 Linux/Unix shell 环境。在要返回到 Vi/Vim 编辑环境时,输入 exit 命令即可。

  这两种方法实现机制不一定,但效果一样,都非常快捷有效。

移动光标

   Vi/Vim 中关于光标移动的命令非常多,这也是很多人经常困惑并且命令用不好的地方之一。其实 Vi/Vim 中很多命令是针对不同的操作单位而设的,不同的命令对应不同的操作单位。因而,在使用命令进行操作的时候,首先要搞清楚的就是要采用哪种操作单位,也就是说,是要操作一个字符,一个句子,一个段落,还是要操作一行,一屏、一页。单位不同,命令也就不同。只要单位选用得当,命令自然就恰当,操作也自然迅速高效;否则,只能是费时费力。这也可以说是最能体现 Vi/Vim 优越于其它编辑器的地方之一,也是 Vi/Vim 有人爱有人恨的地方之一。在操作单位确定之后,才是操作次数,即确定命令重复执行的次数。要正确高效的运用 Vi/Vim 的各种操作,一定要把握这一原则:先定单位再定量。操作对象的范围计算公式为:操作范围 = 操作次数 * 操作单位。比如:5h 命令左移 5 个字符,8w 命令右移 8 个单词。

   注:有些操作单位(如文件)是不能加操作次数。具体说明请参考 Vi/Vim 使用手册。

   Vi/Vim 中操作单位有很多,按从小到大的顺序为(括号内为相应的操作命令):字符(h、l)→ 单词 (w、W、b、B、e) → 行 (j、k、0、^、$、:n) → 句子((、))→ 段落({、})→ 屏 (H、M、L) → 页(Ctrl-f、Ctrl-b、Ctrl-u、Ctrl-d) → 文件(G、gg、:0、:$)。

  具体命令解释如下:

表 2. 移动光标的基本命令
操作单位 命令 说明
字符 h 左移一字符 
l 右移一字符
 
单词 w/W 移动到下一单词的开头 
b/B 移动到上一单词的开头 
e/E 移动到光标所在单词的末尾
W、B、E 命令操作的单词是以空白字符(空格、Tab)分隔的字串,比如字符串“str1-str2 str3-str4”,对 W、B、E 命令来说是两个单词,而对 w、b、e 命令来说则是四个单词。
行 j 下移一行 
k 上移一行 
0 移到当前行开头 
^ 移到当前行的第一个非空字符 
$ 移到当前行末尾 
:n 移动到第 n 行
0 为数字零(zero)
句子 ) 移动到当前句子的末尾 
( 移动到当前句子的开头
 
段落 } 移动当前段落的末尾 
{ 移到当前段落的开头
 
屏 H 移动到屏幕的第一行 
M 移动到屏幕的中间一行 
L 移动到屏幕的最后一行
 
页 Ctrl-f 向前滚动一页 
Ctrl-b 向后滚动一页 
Ctrl-u 向前滚动半页 
Ctrl-d 向后滚动半页
 
文件 G 移动到文件末尾
gg 移动到文件开头 
:0 移动到文件第一行 
:$ 移动到文件最后一行
0 为数字零(zero)

  除了这些基本单位之外,还有 %(跳转到与之匹配的括号处),`.(跳转到最近修改过的位置并定位编辑点),'.(跳转到最近修改过的位置但不定位编辑点)这三个命令也非常重要,在 Vi/Vim 中灵活使用会极大提高效率。% 除用于光标移动之后,还可用于检测源码中各种括号的匹配情况。

文本编辑

  与光标移动一样,Vi/Vim 中关于编辑操作的命令也比较多,但操作单位要比移动光标少得多。按从小到大的顺序为(括号内为相应的操作命令):字符 (x、c、s、r、i、a)→ 单词 (cw、cW、cb、cB、dw、dW、db、dB) → 行 (dd、d0、d$、I、A、o、O) → 句子((、))→ 段落({、})。这些操作单位有些可以加操作次数。操作对象的范围计算公式为:操作范围 = 操作次数 * 操作单位。比如:d3w 命令删除三个单词,10dd 命令删除十行。

  具体命令解释如下:

表 3. 文本编辑的基本命令
操作单位 命令 说明
字符 x 删除光标位置的字符 
c 更改当前字符并进入插入模式 
s 替换光标位置的字符并进入插入模式 
r 替换光标位置的字符但不进入插入模式 
i 在当前位置的字符之前进入插入模式 
a 在当前位置的字符之后进入插入模式
 
单词 cw/cW 删除当前单词从光标开始的部分并进入插入模式 
cb/cB 删除当前单词从光标所在位置至单词开始的部分并进入插入模式 
dw/dW 删除当前单词从光标开始的部分但不进入插入模式 
db/dB 删除当前单词从光标所在位置至单词开始的部分但不进入插入模式
cW、cB、dW、dB 命令操作的单词是以空白字符(空格、Tab)分隔的字串,比如字符串“str1-str2 str3-str4”,对 cW,cB,dW,dB 命令来说是两个单词,而对 cw、cb、dw、db 命令来说则是四个单词。
行 dd 删除当前行 
d0 删除从当前光标开始到行末的内容 
d$ 删除从当前光标开始到行末的内容 
I 在当前行的行首进入插入模式 
A 在当前行的行尾进入插入模式 
o 在当前行下方另起一行进入插入模式 
O 在当前行上方另起一行进入插入模式
  • d0 命令中的 0 为数字零
  • o 为小写英文字母 [əu]
  • O 为大写英文字母 [əu]
句子 d) 删除当前句子从光标位置开始到句末的内容 
d( 删除当前句子从光标位置开始到句首的内容
 
段落 d} 删除当前段落从光标位置开始到段末的内容 
d{ 删除当前段落从光标位置开始到段首的内容
 

  除上述最基本的文本编辑命令这外,Vi/Vim 还提供了许多其它的编辑命令或相关组合。使用这些命令或相关组合往往在极大提高文本编辑的效率与速度。现将这些命令按功能列如表下:

表 4. 文本编辑的高效命令
功能 命令 说明
复制与粘贴 yw 复制当前单词从光标开始的部分 
yy 复制光标所在行的所有字符 
p 将最后一个删除或复制文本放在当前字符 
P 将最后一个删除或复制文本放在当前字符之前
配合操作数使用可快速拷贝编辑文本
撤消与重做 u 撤消更改 
Ctrl-R 重做更改
非常实用的一个命令
重复操作 . 重复上次操作
  • . 为小数点(dot)
  • 配合光标移动命令使用;
  • 不用重复输入先前的复杂命令即可在不同的地方做同样的操作,有点象 MS Office 的格式刷
交换相邻字符或行 xp 交换光标位置的字符和它右边的字符 
ddp 交换光标位置的行和它的下一行
 
大小写转换 ~ 将光标下的字母大小写反向转换 
guw 将光标所在的单词变为小写 
guw 将光标所在的单词变为小写 
gUw 将光标所在的单词变为大写 
guu 光标所在的行所有字符变为小写 
gUU 光标所在的行所有字符变为大写 
g~~ 光标所在的行所有字符大小写反向转换
 
取得外部输入 : r!<cmd> 将命令 <cmd> 的输出结果插入到当前光标所在位置 
:r <file> 将文件 <file> 读入到当前光标所在位置
 
排序 :1,$!sort 将文件内的所有内容排序  
加入行号 :%!nl 在所有非空行前加入行号 
:%!nl -ba 在所有行前加入行号
利用 Linux 命令 nl 来实现的
缩进 >> 右缩进(可配合操作数使用)
<< 左缩进(可配合操作数使用)
配合操作数使用,在编辑源码的时候非常有用。
自动补全 Ctrl-p 自动补全 在编写代码的时候非常有用。比如,输入 prin 后按 Ctrl-p 将自动帮你输入 printf 函数名后面的部分,同时将相关备选函数在底下列出来。
显示当前编辑文件名 Ctrl-g 显示当前编辑文件名及行数 可以在不退出 Vi/Vim 情况下了解当前编辑文件的信息
显示字符内码 ga 显示光标所在字符的内码(包括十进制码,十六进制码以及八进制码) 显示的内码为当前 encoding 下的内码

文本搜索与替换

   Vi/Vim 用于文本搜索的主要有下面的三个基本命令:

表 5. 文本搜索的基本命令
功能 命令 说明
搜索 / 在文件中向前搜索 
? 在文件中向后搜索
  • 可使用正则表达式
  • 可配合操作数使用,比如 3/str 向前搜索字串 str 并将光标移到第三个找到的串
搜索下一个 n 搜索下一个 
N 反向搜索下一个
  • 可使用正则表达式
  • 可配合操作数使用,比如命令 3N 反向搜索第三个匹配的字符串

  除这三个基本命令之外,还有以下三个非常有效快捷的与搜索查找有关的命令:

表 6. 文本搜索的高效命令
功能 命令 说明
快速搜索 * 在文件中向前搜索当前光标所在的单词 
# 在文件中向后搜索当前光标所在的单词
非常快捷的搜索命令
显示搜索命令历史 q/ 显示搜索命令历史的窗口 
q? 显示搜索命令历史的窗口
可以选择重用以前用过的搜索查找命令
查找帮助 Shift-k 查找光标所在命令或函数的 man 帮助
  • 可以在不退出 Vi/Vim 情况下快速查询命令或函数的使用方法;
  • 按 q 键退出 man 帮助

  关于替换主是要结合搜索使用行命令来实现,命令格式为:

     :m,ns/str1/str2/g 将 m 行到 n 行中的字串 str1 全部替换为字串 str2。

  在众多使用正则表达式进行替换的命令中,平时需要掌握的一个命令是如何快速去除 ^M 字符。在 Linux/Unix 系统中编辑 Windows 操作系统中生成的文件时,如果上传时回车换行符处理不正确的话,用 Vi/Vim 打开经常会出现 ^M 字符。如果上传的文件是 shell 脚本的话,即使赋予了正确的执行权限该脚本还是无法运行。这也是各种文件在 Linux/Unix 和 Windows 中传输经常会出现问题的地方之一。其实,在 Vi/Vim 中使用替换命令 :1,$s/^M//g即可以很容易地快速去掉 ^M 字符。这里需要注意的是 ^M 是使用 Ctrl-v、Ctrl-m 输入的。

执行外部命令

  在 Vi/Vim 中还可以在正常模式下执行各种外部命令,命令格式如下:

表 7. 执行外部命令格式
功能 命令 说明
执行外部命令 :!<cmd> 执行外部命令 <cmd> 在正常模式下输入该命令
显示命令行命令历史 q: 显示命令行命令历史的窗口 可以选择重用以前用过的命令行命令

  其中命令 q:会显示使用过的行命令历史,可以从中选择重用以前用过的命令。这对于需要重复应用那些复杂的命令来说,非常方便快捷。

Vi/Vim 设置

   Vi/Vim 有很多内部变量,可以根据需要进行相应的设置。变量类型不同往往设置方式也不一样,简单的只要设置特定的变量名即可,复杂的则需要指定和分配一个显式值来设置变量。在实际应用中,如果有需要,请参考 Vi/Vim 的使用手册。这里主要列出大家经常使用并能提高编辑效率的一些设置命令:

表 8. Vi/Vim 设置命令
功能 命令 说明
查看设置的当前值 :set all 查看 vi 或 Vim 中设置的所有选项的当前值 
:set <option>? 查看特定选项 <option> 的当前值
 
设置行号显示与否 :set number 显示行号 
:set no number 取消行号显示
命令的简写形式:
:set nu 
:set no nu
设置自动缩进 :set autoindent 设置自动缩进 
:set no autoindent 取消自动缩进设置
命令的简写形式:
:set ai
:set no ai
设置缩进宽度 :set shiftwidth=4 设置缩进宽度为 4 命令的简写形式:
:set sw=4
设置大小写忽略与否 :set ignorecase 设置忽略大小 
:set no ignorecase 取消忽略大小设置
命令的简写形式:
:set ic
:set no ic
设置不可见字符显示与否 :set list 显示不可见字符 
:set nolist 取消显示不可见字符设置
在显示不可见字符的情况下,TAB 键显示为 ^I,而 $ 显示在每行的结尾。

  在正常模式 (Normal mode) 时,执行这些设置命令只修改当前会话的设置,退出或重启 Vi/Vim 这些设置就丢失了。要想保持住这些设置,就必须将这些设置写入 Vi/Vim 的 vimrc 文件。对 Linux/Unix 操作系统来说,每个用户的 vimrc 文件位于该用户的主目录下,文件名为 .vimrc。Vi/Vim 在每次启动的时候都会读取用户主目录下的 vimrc 文件并据此设置 Vi/Vim 的使用环境。Vi/Vim 在安装的同时也会安装 vimrc 文件的一个示例 vimrc_example.vim 到 /usr/share/vim/vim<version> 目录下。可以根据需要将这个示例文件拷贝到当前用户的主目录下并重命名为 .vimrc,在此基础上进行修改会相对容易一些。其它关于 Vi/Vim 的一些定制和键映射等相关设置基本上也是写入用户的 vimrc 文件中,更详细的介绍请参考 Vi/Vim 的使用手册。用户也可以维护一个自己的 vimrc 文件,并将这个文件拷贝到自己的使用的环境中,保持不同环境中 Vi/Vim 特性的一致,以符合自己的使用习惯。

51单片机通过计时器实现倒计时 51单片机通过计时器操作两位8段阳极数码管,实现倒计时 阅读详情

相关推荐

Unity热更实战:用YooAsset+HybridCLR实现小游戏资源与代码双更新(含避坑清单)

本文详细介绍了Unity小游戏开发中如何通过YooAsset与HybridCLR实现资源与代码双热更新方案。内容涵盖环境配置、架构设计、微信小游戏专项优化、热更代码工程化实践及真机调试技巧,帮助开发者解决审核周期长、紧急修复等痛点,提升更新效率与稳定性。

weixin_42520025的博客 501

技巧:快速提高 Vi/Vim 使用效率的原则与途径

http://www.ibm.com/developerworks/cn/linux/l-cn-tip-vim/ 引言:    Vi 最初是由 Bill Joy 在 1976 年编码实现的。而 Vim (Vi IMproved) 则是改进的 Vi,由 Bram Moolenaar 在 1991 年开发并发布。Vi/Vim 是所有 Unix/Linux 操作系统默认配备的编辑器。因其强大的功能和

helonSY欢迎您的到来! 1165

值得苦练的100道Python经典练手题(全网最全,附详细答案,建议收藏)

这100道Python练习题涵盖了从基础语法到高级算法、从数据库操作到Web开发的各个方面,是备考数据库系统工程师的绝佳素材。建议按照章节顺序逐一练习,遇到难点可反复钻研,真正掌握每一道题背后的知识点。通过这些练习,不仅能提升Python编程能力,还能加深对数据库系统原理的理解,为考试和实际工作打下坚实基础。

yue_yun_的博客 9386

Vim编辑器与shell脚本(.sh)

vim.vi编辑器 三个模式 命令模式 输入模式 行末模式 命令模式下可以通过dd,yy,/s/*/*等来进行删除,复制,替换,剪切等操作 输入模式:a,i,o , a,i的使用方法相仿,前者在光标当前位置,后者在光标的后一个位置。 o,会在当前的行尾自动回车跳到下一行空白行。 脚本文件: shell脚本文件以.sh结尾。 文件开头:#! /bin/bash bash 文件名 对文件进行操作 $...

a501868354的博客 3013

1.安装EMQX服务器

阿里云;EMQX

hfh8130的博客 5311

Keil5编译报错:ARM Compiler Version 5缺失的完整解决方案

本文提供了Keil5编译报错“ARM Compiler Version 5缺失”的完整解决方案。详细介绍了手动安装ARM Compiler Version 5的步骤,包括下载安装包、配置编译器路径及常见问题排查,帮助开发者快速恢复老项目的编译环境。

bb456的博客 945

Shell相关命令基础

1、文件准备 #创建文件 touch sh01.sh #添加执行权限 chmod +x sh01.sh #打开文件 vim sh01.sh #书写代码 a1='001' a2='002' echo $a1 echo ${a2} #执行文件 ./sh01.sh 2、循环 for skill in Ada Coffe Action Java; do echo "I am good at ${skill}Script" done 执行结果为: 3、已定义的变量,可以被重新定义,如:

weixin_44432032的博客 942

windows 10 等保3级配置核查与加固(附自动化加固脚本)

关闭注册表编辑器,然后重新启动计算机。\\r\\n 对于OPC通讯站(server\\\\client),【密码最长存留期】需要设置为0,即密码不过期。‌445端口‌:修改注册表禁用。打开命令提示符,运行命令“gpedit.msc”打开组策略编辑器,浏览到路径“本地计算机策略\\\\计算机配置\\\\Windows设置\\\\安全设置\\\\本地策略\\\\安全选项”,在右边窗格中找到“Microsoft网络客户端:将未加密的密码发送到第三方SMB服务器”,双击,配置为“已禁用”,确定。

悦分享 160

vim tips: 执行外部命令

简介: vim 是十分强大的文本编辑工具,但有一些事它做不了。本文简单说说在不离开 vim 编辑器的情况下,执行 shell 命令、工具。 1. 进入 shell (1)在 vim 中执行 :shell 或 :sh,当退出当前 shell 时,就会回到 vim; (2)也可以使用 ctr-z 进入 shell, 然后执行 fg 回到 vim。 上述功能可用于下述场景: 如我们

zkreats的博客 6958

《嵌入式-STM32开发指南》第三部分 外设篇 - 第2章 温度传感器DS18B20

2.1 理论分析 2.1.1概述 DS18B20 是 DALLAS 最新单线数字温度传感器,新的"一线器件"体积更小、适用电压更宽、更经济。Dallas 半导体公司的数字化温度传感器 DS1820 是世界上第一片支持 "一线总线"接口的温度传感器。 DS18B20采用的单总线协议,也就是只需占用主机一个I/O口,无需其他外围电路,直接将环境温度转换为数字信号,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。另外,以"一线总线"的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量

不问归期的博客 8304

神经形态芯片:IBM TrueNorth技术详解以及应用案例

2018年的一项演示中,机器人使用TrueNorth处理了复杂的路径规划,功耗仅为传统系统的1/10。它通过模仿人脑的结构,解决了传统芯片在功耗和并行性上的痛点,并在图像识别、物联网和机器人等领域展现了强大潜力。:不同于传统芯片的时钟驱动,TrueNorth是事件驱动的。例如,工厂中的振动传感器使用TrueNorth检测设备故障的早期迹象,实现了更高效的维护策略,避免了停机时间。:在医疗领域,TrueNorth可以用于可穿戴设备,比如一个智能助听器,它能过滤噪音并增强特定声音,功耗低到可以用纽扣电池供电。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 2475

vim中执行shell命令小结

vim中执行shell命令,有以下几种形式 1):!command 不退出vim,并执行shell命令command,将命令输出显示在vim的命令区域,不会改变当前编辑的文件的内容 例如 :!ls -l 特别的可以运行:!bash来启动一个bash shell并执行命令,不需要退出vim 2):r !command 将shell

TOPGUN的专栏 6万+

自然语言处理之话题建模:BERTopic模型详解

BERTopic是一种基于BERT的先进话题建模技术,它结合了BERT的语义理解能力和非参数聚类算法HDBSCAN的灵活性,能够生成高质量、语义丰富的话题。与传统的LDA(Latent Dirichlet Allocation)话题模型相比,BERTopic能够更好地捕捉文本的复杂语义结构,因为它利用了预训练的BERT模型来嵌入文本,从而在话题建模中引入了深度学习的力量。聚类是无监督学习的一种,其目标是将数据集中的样本按照相似性进行分组,每个组称为一个“簇”。

zhubeibei168的博客 4535
上一篇: 一个 Linux 上分析死锁的简单方法
下一篇: 流、管道和重定向
xiaoding133
博客等级 码龄19年 415粉丝 159原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值