来一篇VIM的配置吧~~~

是一个适合的汇总。

主要来自于:

http://www.cnblogs.com/chijianqiang/archive/2012/10/30/vim-2.html

http://www.cnblogs.com/chijianqiang/archive/2012/10/30/vim-3.html

http://www.cnblogs.com/chijianqiang/archive/2012/10/30/vim-4.html


(1).vimrc介绍

用户目录下的.vimrc文件就是Vim针对当前用户的主配置文件,该文件不是必备的,没有的话就创建它。文件位于当前用户的主目录下,可以用~/.vimrc找到,Vim启动时会自动运行文件中的每条命令。
通过.vimrc我们可以为Vim进行个性化配置,包括使用方式、显示风格、编写函数和运行插件等,.vimrc中所有的命令都可以在Vim运行时通过类似:comm args[=args1]的方式动态运行,即时生效。


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
syn on                      "语法支持
   
"common conf {            通用配置
set ai                      "自动缩进
set bs=2                    "在insert模式下用退格键删除
set showmatch               "代码匹配
set laststatus=2            "总是显示状态行
set expandtab               "以下三个配置配合使用,设置tab和缩进空格数
set shiftwidth=4
set tabstop=4
set cursorline              "为光标所在行加下划线
set number                  "显示行号
set autoread                "文件在Vim之外修改过,自动重新读入
   
set ignorecase              "检索时忽略大小写
set fileencodings=uft-8,gbk "使用utf-8或gbk打开文件
set hls                     "检索时高亮显示匹配项
set helplang=cn             "帮助系统设置为中文
set foldmethod=syntax       "代码折叠
"}}
   
"conf for tabs, 为标签页进行的配置,通过ctrl h /l 切换标签等
let mapleader = ','
nnoremap <C-l> gt
nnoremap <C-h> gT
nnoremap <leader>t : tabe<CR>
   
"conf for plugins {{ 插件相关的配置
"状态栏的配置
"powerline{
set guifont=PowerlineSymbols\ for \ Powerline
set nocompatible
set t_Co=256
let g:Powerline_symbols = 'fancy'
let Powerline_symbols= 'compatible'
"}
"pathogen是Vim用来管理插件的插件
"pathogen{
call pathogen #infect()
"}
   
"}}



doc                           //帮助文档目录
.vim是Vim的主配置文件夹,位于当前用户的主目录下,可以用cd ~/.vim进入。该文件夹一般用来放置插件和相关的帮助文档,常用的目录结构包括:(2).vim文件夹

autoload                      //Vim启动时自动 载的插件目录
plugin                        //插件目录,一般在使用Vim时通过命令呼出

当然,如果你已经安装了足够多插件,那么这个目录下就会变得五花八门,syntax、snippets、indent等文件夹都会冒出来了。一个插件所包含的文件往往会分布在多个文件夹下,管理起来比较麻烦,稍后我们会介绍一个管理插件的插件,让这个目录变得干净整洁,容易管理,这个插件的名字叫pathogen

在Vim中输入命令:help,即可进入帮助页面,默认是英文帮助,如果你喜欢看中文,可以通过以下方式安装中文帮助内容:

  1. 下载中文帮助的文件压缩包

  2. 解压,把doc目录下的文件复制到~/.vim/doc下

  3. 确认在.vimrc中设置了set helplang=cn

  4. 输入命令:help即可进入中文帮助


基本概念

下面我们来介绍一下Vim中的几个基本概念:Buffer、Window和Tab-page。

  1. Buffer:使用Vim打开的文件都会被加载到内存中,在内存中我们使用Buffer来描述被编辑的文件,一个Buffer对应一个被编辑的文件副本。当我们在完成了一个Buffer的编辑后就可以保存该文件。Buffer不仅包含了文件的内容,也记录了该文件的编辑状态等配置信息,比如激活、隐藏、上次编辑行数等,具体可以查阅帮助文档。
    用Vim可以打开多个文件同时编辑,也可以把不需要的文件关掉,但这时文件副本依然保存在缓冲区中,我们可以通过 :ls或:buffers查看这些Buffer,还可以通过类似:buffer n的方式重新打开文件(n表示Buffer的序号)。当然,我们有更好的方式来处理这些Buffer,那就是CommandTBuffer,要想使用CommandTBuffer,先要安装CommandT插件,请大家记住这个插件的名字,稍后介绍。

  2. Window:是对应Buffer的一个展示窗口。一个Buffer可以对应多个窗口,比如我们可以通过:split filename或:vsplit filename命令在多个窗口打开一个文件,当修改某一个窗口的文件是,其他窗口都会同步更新。当然我们也可以在多个窗口打开多个文件,编辑后用:wq保存退出,但是记住,只要没有最终退出Vim进程,那么这些打开的文件Buffer依然保存在缓存区中,可以随时再次打开。

  3. Tab-page:Tab-page就比较容易理解,对应一组窗口,我们可以通过`:tabedit filename`在另一个标签页中打开一个文件,在这个标签页中又可以打开多个窗口。


常用插件

之所以说Vim形成了自己的生态环境,就是因为Vim具备开放的插件体系,开发者为了提升开发效率,为Vim编写了数以万计的插件,我们可以根据需要任意选择,也可以基于Vimscript语言开发自己的专属插件。

每个插件都是以Vim为后缀的脚本文件,编写插件的语言一般采用Vimscript。Vimscript是Vim自己的编程语言,我们在后续会介绍到它。尽管Vimscript几乎为可以Vim做任何事,但还是会存在一些场景,用其他语言更好更快。考虑到这一点,Vim的开发者为其他脚本语言设计了接口,用来编写Vim插件,比如Perl,Python和Ruby,后续我们会演示如何使用python语言为Go语言编写Vim插件,在Vim中执行Go程序。

常用插件分为四种:

  1. 通用插件:适用于所有类型的文件,在使用Vim的时候可以通过插件命令呼出。比如用来快速定位文件的插件CommandT,使用:CommandT即可启动该功能,对任何类型都适用。该类插件一般放置在.vim/plugin/目录下。

  2. 文件类型插件:适用于特定类型的文件,比如c、java、xml等文件。在编辑特定类型的文件时,插件功能才会启用,该类插件一般放置在.vim/ftplugin/目录下。比如我们常用的编辑xml/html/jsp等文件的插件xmledit,安装了该插件后,编辑xml文件时,键入<modules>,当完成了最后的>时,xmledit会自动为你添加闭合标签,<modules></modules>,如果输入了最后一个>,标签会自动展开,方便输入子标签或文本内容。这时如果你用Vim打开一个txt文件,这些功能就消失了。当然,xmledit功能远不止这么简单,我们稍后再详细介绍。

  3. 语法插件:顾名思义,语法插件主要为编程语言提供语法高亮功能,一般放置在.vim/syntax/下。Vim已经默认提供了大部分语言的语法高亮功能,但对于一些比较新的语言,就需要开发者编写支持语法高亮的插件,比如Go语言。

  4. 编译器插件:针对不同语言编写的编译器插件,主要用来设定相关语言的编译器选项。比如针对C、C++、Java、Python等可以编写各自的编译器插件,插件内容并不复杂,主要定义"errorformat"(错误格式定义)及"makeprg"(编译程序和参数)的内容即可。通过:make可以编译正在编辑的文件。


pathogen

我们首先来介绍这款用来管理插件的插件----pathogen。

1、下载地址

https://github.com/tpope/vim-pathogen

2、功能说明

一个插件包往往具备多种功能,每个文件根据Vim的路径约定会放置到不同的目录下,通用插件放到plugin下,语法高亮插件放到syntax下,自动加载插件放到autoload下,文件类型插件放到ftplugin下,编码格式插件的放到indent下......如果你是重度插件用户,你会发现在.vim主目录下会有一堆文件夹,无论是你想要安装新插件,还是想删除旧插件,都非常麻烦,你不得不在每个文件夹下找相关的vim文件。

pathogen是管理插件的插件,主要用来解决上述问题。pathogen采用了bundle的概念来管理插件,如果你熟悉OSGi或OS X,那么对bundle就不会陌生。OSGi以bundle的形式封装Java程序和资源文件,而OS X中的大部分应用程序都是bundle,正是bundle的概念让OSGi可以动态管理Java组件,OS X安装大部分程序都是“绿色安装”。

pathogen在.vim目录下建立bundle文件,所有的插件都会在该目录下管理。当Vim启动时,会自动执行runtimepath(rtp)列表中所包含文件夹下的vim脚本,pathogen会在启动时把./vim/bundle下的文件夹中的插件按照一定顺序递归加载到rtp中,这样Vim启动时,通过pathogen管理的插件就生效了。

有了pathogen之后,一般.vim文件夹下只有三个文件夹:autoload、bundle和doc,其他插件将被安装在bundle文件夹下

如无特殊说明,后面提到的插件都采用pathogen方式安装,我会以NERDTree插件为例说明安装方式。

3、安装

  1. 在.vim文件夹下建立autoload和bundle目录

  2. 从下载地址获取pathogen.vim文件,将其复制到autoload目录下

  3. 在.vimrc文件中增加如下代码:

     call pathogen#infect()
    

4、使用说明

5、注意事项

新插件安装到bundle目录下后,如果插件中包含doc,则需要在Vim中运行:Helptags来生成在线帮助tags。


NERDTree

我们在介绍pathogen的时候,用一张图展示了插件的目录结构,这个目录结构就是基于NERDTree插件实现的。

1、下载地址

https://github.com/scrooloose/nerdtree

2、功能说明

NERDTree是Vim最常用的插件之一,可以在Vim运行时显示目录和文件结构,类似TextMate左侧的文件浏览器,但操作起来更为方便,你可以在手不离开键盘的情况下快速浏览文件,并在文件和文件夹之间进行切换。

3、安装

  1. 进入.vim/bundle目录

  2. 执行git clone git://github.com/scrooloose/nerdtree.git

  3. 下载完成后,在bundle下会多出一个nerdtree的文件夹,所有相关插件都在该文件夹下

  4. 在Vim中运行:Helptags来生成NERDTree的在线帮助tags

4、使用说明

打开Vim,输入:NERDTree,即可呼出执行Vim命令的当前目录的文件目录。为了方便使用,我在.vimrc中定义了快捷键,可以用Ctrl+t打开NERDTree,你可以定义自己习惯的快捷键。

NERDTree提供了丰富的键盘操作方式来浏览和打开文件,我简单介绍一些常用的快捷键:

和编辑文件一 ,通过h j k l移动光 定位
o 打开关闭文件或者目录,如果是文件的话,光 出现在打开的文件中
go 效果同上,不过光 保持在文件目录里,类似预览文件内容的功能
i和s可以水平分割或纵向分割窗口打开文件,前面 g类似go的功能
t 在 签页中打开
T 在后台 签页中打开
p 到上层目录
P 到 目录
K 到同目录第一个节点
J 到同目录最后一个节点
m 显示文件系统菜单(添 、 除、移动操作)
? 帮助
q 关闭

想了解更多操作方式,可以通过? 查看详细的帮助信息。

Command-T1、下载地址

https://wincent.com/products/command-t

2、功能说明

Command-T是一个基于Ruby和C扩展实现的快速文件浏览的插件,类似TextMate的Go to File(Command+T呼出)功能,或Eclipse的Open Resource(Command+Shift+r)功能,可以通过模糊匹配快速定位并打开文件。

3、安装

  1. 从下载地址下载最新版本的vba文件,目前最新版本是1.4,所以安装文件是command-t-1.4.vba

  2. 在~/.vim/bundle目录下创建文件夹command-t

  3. 用Vim打开command-t-1.4.vba

  4. 执行:UseVimball ~/.vim/bundle/command-t

  5. 进入ruby目录下编译C扩展

      cd ~/.vim/bundle/command-t/ruby/command-t
      ruby extconf.rb
      make
    

4、使用说明

输入:CommandT可进入文件快速定位功能,如图所示:


  1. ctrl+j/k 上下选择文件,选中后回车打开文件

  2. ctrl+t 以tab方式打开文件

  3. ctrl+s/v 可以水平或垂直分割窗口打开文件

  4. ctrl+c 退出该模式

该插件还有个常用命令,:CommandTBuffer,可以浏览缓冲区的文件,并重新打开。操作方式同上。

5、注意事项

Vim版本需要支持ruby扩展。我们可以在Vim中输入:ruby 1检查,如果出现E319: Sorry, the command is not available in this version就表示不支持。

如果出现上述情况,我们就需要自己去编译能够支持ruby的Vim,嫌麻烦的话可以直接安装vim-nox,自带Ruby支持,在Ubuntu下安装命令如下:sudo apt-get install vim-nox。

执行ruby extconf.rb命令时如果出现找不到mkmf包的情况,说明你需要安装ruby-dev的包,在Ubuntu下安装命令如下:sudo apt-get install ruby1.8-dev。


Powerline1、下载地址

https://github.com/Lokaltog/vim-powerline

2、功能说明

Powerline是Vim的一个非常漂亮的状态栏插件,安装了Powerline之后,Vim底部将会出现一个增强型状态栏,当Vim处于NORMAL、INSERT、BLOCK等状态时,状态栏会呈现不同的颜色,同时状态栏还会显示当前编辑文件的格式(uft-8等)、文件类型(java、xml等)和光标位置等,喜欢的就装。

如图所示:


3、安装

  1. 进入.vim/bundle目录

  2. 执行git clone git://github.com/Lokaltog/vim-powerline.git

  3. 在.vimrc中设置状态栏主题

     "powerline{
     set guifont=PowerlineSymbols\ for\ Powerline
    
     set noshowmode
     set nocompatible
     set t_Co=256 set noshowmode
    
     let g:Powerline_symbols = 'fancy'
     "}
    

4、使用说明

安装之后,再次打开Vim,你就会发现底部已经多了一个彩色的状态栏了。


5、注意事项

" 设置powerline状态 
set nocompatible
set t_Co=256
set enc=utf-8
let termencoding=&encoding
set fileencodings=utf-8,gbk,ucs-bom,cp936
let g:Powerline_symbols = 'fancy'
set guifont=Ubuntu\ Mono\ for\ Powerline\ 12

其中powerline如果用fancy系统,Ubuntu需要额外的安装字体,可以网上下载(别人已经帮忙改好了):

let Powerline_symbols='compatible'  有问使用该行

cd ~/.fonts/ && git clone https://github.com/scotu/ubuntu-mono-powerline.git


ctags1、下载地址

http://ctags.sourceforge.net

2、功能说明

严格意义上来说,ctags并不是Vim的插件,而是Linux/Unix下的标签命令。通过ctags -R命令可以对当前目录下源代码中的类、函数、方法、变量、宏等元素进行索引处理,并生成索引文件。Vim使用ctags生成的tag文件,即可实现IDE中常用的代码跳转功能,实乃居家旅行代码索引的常备利器。ctags不仅支持c/c++/java等静态语言,还支持python/perl/php/jsp等动态脚本语言,就目前我的使用情况,ctags基本不支持Objective-C,对Ruby支持的也很糟糕,随着这些语言的普及和发展,希望后续版本的ctags会对更多的编程语言有更好的支持。

3、安装

对于Ubuntu,可以使用如下命令安装:sudo apt-get install ctags,安装完成后在终端键入ctags --help,看到正常的帮助信息就说明安装成功了。

对于Mac用户来说,OS X自带了ctags命令,但这并不是vim所需要的ctags,要重新安装:sudo port install ctags。由于OS X自带的ctags位于/usr/bin目录下,一般在PATH中是优先加载的,所以安装完成后,还需要设置一下环境变量,确保你在命令行使用的是新安装的ctags。如果没做特殊设置,安装的ctags一般在/opt/local/bin下,在当前用户的.profile中增加如下代码:export PATH=/opt/local/bin/:$PATH,在终端执行source .profile可立即生效。

4、使用说明

  • 创建标签索引
    前面我们提到过,ctags主要是用来创建Vim可以使用的tag索引文件,使用ctags -R即可对当前目录下的代码递归建立索引文件,文件保存在当前目录下,默认文件名为tags,文件大小和你要索引的代码量有关。
    如果想自己指定tag文件的位置和索引代码的位置,可以使用如下命令实现:
    ctags -R -o ~/.vim/ctags/pythontags /somepythondir/

  • 设置索引文件的位置
    Vim在运行过程中需要知道tag的索引文件位置,如果不指定的话,Vim会在当前目录下寻找名为tags的文件作为tag索引文件。
    如果想使用某个目录下的索引文件,在该目录下启动Vim即可。也可以在启动后通过如下命令设置或改变索引文件的位置:
    set tags=/home/xxx/xx/tags, xxxx/tags,......

当然,你也可以把这条命令写到.vimrc中。

  • 在Vim中使用tag
    tag的索引文件和位置都设置好之后,万事俱备,现在我们就可以在Vim中使用tag进行代码跳转和跟踪。
    ctags主要对源代码中的类、方法、变量等元素进行了索引,所以,如果我们记得某个类名、方法名或变量名,想在命令行下直接打开隐藏在重重叠叠的目录深处的某个文件时,以下命令可以帮助我们实现这个功能:
    vim -t class | method | variable
    例如,你想打开包含了loadCache方法的文件,可以用如下命令:
    vim -t loadCache
    如果多个文件中包含loadCache方法,vim会按照字母顺利打开第一个文件。想查看其他文件,可以使用ts命令, :ts会列出所有包含loadCache标签的文件,输入文件序号可以打开文件并定位到loadCache标签,通过j和k可以上下滚屏。

如果只是通过vim命令打开文件,那么可以使用如下命令进行文件检索和浏览:

:ta tagname 跳转到 签tagname定义的地方
:stag tagname 在分割窗口中查看包含tagname的文件
:tags 查看到达当前位置所经过的 签路径
:ts tagname 列出匹配tagname的 签,如为空,则使用 签 中最后的 签
:tf 跳转至第一个匹配的 签
:tl 跳转至最后一个匹配的 签

跳转快捷键:

ctrl-] :跳转至光 所在对象定义之处
ctrl-t :返回跳转前位置
[n]ctrl-t :[n]为数字,向回跳转n次;等价于重复n次ctrl-t操作

5、注意事项

确认vim在打开文件时能够找到相关的标签文件tags。

taglist1、下载地址

https://github.com/vim-scripts/taglist.vim

2、功能说明

taglist是Vim的一个代码浏览的插件,类似IDE中的Outline视图,可以根据不同语言的代码显示代码中的包、类、接口、方法、函数、变量、属性等内容,是Vim浏览代码的一个必备工具。

如图:


 

taglist同样需要依赖ctags命令生成tag。

3、安装

  • 进入~/.vim/bundle目录

  • 执行: git clone git://github.com/vim-scripts/taglist.vim.git

  • 在.vimrc文件设置taglist的配置信息,以下是我的偏好设置

      "taglist{
        let Tlist_Show_One_File = 1            "只显示当前文件的taglist,默认是显示多个
        let Tlist_Exit_OnlyWindow = 1          "如果taglist是最后一个窗口,则退出vim
        let Tlist_Use_Right_Window = 1         "在右侧窗口中显示taglist
        let Tlist_GainFocus_On_ToggleOpen = 1  "打开taglist时,光 保留在taglist窗口
        let Tlist_Ctags_Cmd='/opt/local/bin/ctags'  "设置ctags命令的位置
        nnoremap <leader>tl : Tlist<CR>        "设置关闭和打开taglist窗口的快捷键
        "}    
    

4、使用说明

taglist参数介绍,大家可以根据自己的偏好在.vimrc中设置:

  • Tlist_Ctags_Cmd:设置ctags命令的位置

  • Tlist_Use_Horiz_Window:设置为1时,taglist窗口横向显示。默认纵向显示

  • Tlist_WinHeight:设置taglist窗口的宽度

  • Tlist_WinWidth:设置taglist窗口的高度

  • Tlist_Show_One_File:设置Tlist_Show_One_File为1则只显示当前文件的taglist,缺省显示多个文件中的tag

  • Tlist_Sort_Type:taglish默认按tag在文件中出现的顺序进行排序,设置为"name",taglist将以tag名字进行排序

  • Tlist_Exit_OnlyWindow:设置为1时,如果taglist是最后一个窗口,则退出vim

  • Tlist_Use_Right_Window:设置为1时,taglist窗口出现在右侧,缺省显示在左侧

  • Tlist_Auto_Open:如果想在启动VIM后自动打开taglist窗口,该参数设置为1

  • Tlist_Close_On_Select:如果想在选择了tag后自动关闭taglist窗口,该参数设置为1

  • Tlist_GainFocus_On_ToggleOpen:设置为1时,打开taglist光标保留在taglist窗口

当使用vim打开某个程序文件时,我们可以用:Tlist打开taglist窗口,如果该程序具备类、接口、属性等元素,就会在taglist窗口显示出来。我们可以通过以下这些常用快捷键来操作taglist:

  • 通过光标选择tag,回车可以跳到定义该tag的程序位置

  • 选中tag时按空格键,会在状态栏下方显示该tag的完整定义

  • x,横向放大或缩小taglist窗口

  • =,折叠所有的tag

  • +,打开所有的tag

5、注意事项

确认在.vimrc中使用Tlist_Ctags_Cmd定义了正确的ctags命令的位置,否则会出现找不到tag的错误信息。


Vim下快速生成Doxygen注释插件

目前为止已经定义了5个用途:

1. 快速生成许可注释,并且标签可以被修改;

2. 快速生成作者声明框架,标签可修改;

3. 快速为C/C++、Python函数或者类生成注释框架,此框架包含的元素有:@brief, @param(为每一个参数生成一个@param)和@return。标签文本和注释块的头和尾都可以修改(因此,你可以有自己的简介,如果你原义,加上一点成就);
忽 略在#ifdef...#endif(C/C++)块中代码碎片。给块命名的时候一定要考虑到其功能。在所有文件中,所有有联系的块将会放在一个新的块 DOX_SKIP_BLOCK(或者用户定义的名称)。你需要使用当前的新块名更新你的doxygen配置文件中的PREDEFINED变量。而且你还需 要将ENABLE_PREPROCESSING设置为YES。

4. 快速生成一个注释集(开始或者结尾),标签可修改;

使用:

4.1 注释类型(C/C++/// 或者, Python:##和#):

在vim中,默认C++注释为,但是如果你更喜欢使用///,只需要在你的配置文件.vimrc中添加如下语句:

let g:DoxygenToolkit_commentType="C++"。

4.2 许可:

在vim中,将光标放在将要写doxygen许可注释的那一行,然后,执行命令:DoxLic。这将会生成许可注释并将光标放置在刚才那一行之后。

4.3 作者: 
在vim中,将光标放在想要添加doxygen作者注释的地方。然后执行命令:DoxAuthor。这将会生成一个框架,如果没有为其设置变量则将光标放置在@author标签之后,或者放在在框架之后。

4.4 函数/类注释:

在vim中,将光标放置在函数头部那一行(或者函数的返回变量)或者类。然后执行命令:Dox。这将生成框架并且将光标放置在@brief标签后。

4.5 忽略代码片段(只有C/C++):

在vim中,如果你想要忽略所有在块中的代码片段,类似:           #ifdef DEBUG ... #endif你只需要执行以下命令:DoxUndoc(DEBUG)!


4.6 组:

在vim中,执行命令:DoxBlock在后面的行中插入一个doxygen块。


限制:

1. 假设函数名(后面的左括号)至少在当前光标位置后的第三行;

2. 在注释块在写入之前不能再次更新;

3. 块分隔符(头部和尾部)只包含函数注释;

4. 假设已经使用了缩进;

5. 函数参数中得到注释还不支持;(像void foo(int bar ))

6. 定制输出脚本,在脚本文件中,在.vimrc中设置g: DoxygenToolkit_*变量:

举例说明,在我的.vimrc中包含:

let g:DoxygenToolkit_briefTag_pre="@Synopsis  

let g:DoxygenToolkit_paramTag_pre="@Param " 

let g:DoxygenToolkit_returnTag="@Returns   

let g:DoxygenToolkit_blockHeader="--------------------------------------------------------------------------" 

let g:DoxygenToolkit_blockFooter="----------------------------------------------------------------------------" 

let g:DoxygenToolkit_authorName="Mathias Lorente" 

let g:DoxygenToolkit_licenseTag="My own license"   <-- !!! Does not end with "\<enter>"


安装细节:

进入.vim/bundle目录

执行git clone git@github.com:vim-scripts/DoxygenToolkit.vim.git



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值