【Linux】-Linux下的编辑器Vim的模式命令大全及其自主配置方法
目录
1.简单了解vim
2.vim的模式
2.1命令模式
2.2插入模式
2.3底行模式
3.vim各模式下的命令集
3.1正常(命令模式下)
3.1.1光标定位命令
3.1.2 复制粘贴
3.1.3 删除
3.1.4 撤销
3.1.5大小写转换
3.1.6替换
「R」:替换光标所到之处的字符,直到按下「ESC」键为止,这是进入了替换模式,是一个模式(replace)
3.1.7shift=3 高亮查找函数名
3.2 vim插入模式下
3.3vim底行模式下
3.3.2 两个文件对比
vim光标特点:上次退出时光标在那个位置,再次打开光标就在那个位置
3.4 注释模式
4.vim的自主配置
4.1vim的基本配置
4.1.1常用配置
4.1.2 使用插件的方式
4.2自动化配置vim
5.结语
1.简单了解vim
vim本质是linux下的一个编辑器用于写代码,相当于windows中使用文本写代码
vim使用成本比较高,是linux下的一款多模式的编辑器
很早之前使用的是vi,vim更简单,vim是扩展板的vi, 方便进行简单的使用
vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且 还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、 windows。
我们在windows下使用的vs等等编辑器,不仅仅可以运行C语言代码,也可以运行python/java甚至html,这种集合编译、调试、发布等等将这个项目的生命周期包括新建项目,写代码、编译代码、调试代码、发布项目功能集中的环境就是集成编译、运行、调试、发布于一体的我们叫做集成开发环境。方便用户统一操作。
linux下也有图形化操作,不过目前接触都是指令级别的操作。一个一个工具都是独立的
写代码 -----使用vim
编译代码使用gcc
调试代码使用gdb
维护结构和自动化编译使用make/makefile
当我们正常使用vim打开一个文件的时候某认是无法写入内容的,vim某认打开的是命令模式,刚打开时我们输入的内容都会被当成命令,有些命令无效就不变现,有些命令是切换命令触发就可以编写来,这也是常说的“新手偶然性”。
- 进入vim,在系统提示符号输入vim及文件名称后,就进入vim全屏幕编辑画面:
- $ vim test.c
- 不过有一点要特别注意,就是你进入vim之后,是处于[正常模式],你要切换到[插入模式]才能够输入文 字。
- [正常模式]切换至[插入模式]
- ①输入a
- ②输入i
- ③输入o
- [插入模式]切换至[正常模式]
- 目前处于[插入模式],就只能一直输入文字,如果发现输错了字,想用光标键往回移动,将该字删除,可 以先按一下「ESC」键转到[正常模式]再删除文字。当然,也可以直接删除。
- [正常模式]切换至[末行模式]
- 「shift + ;」, 其实就是输入「:」
- 退出vim及保存文件,在[正常模式]下,按一下「:」冒号键进入「Last line mode」,例如: :
- w (保存当前文件)
- : wq (输入「wq」,存盘并退出vim)
- : q! (输入q!,不存盘强制退出vim)
注意:vim异常退出的环,内容会保存在同名的隐藏文件中
2.vim的模式
一共有12种模式:six BASIC modes和six ADDITIONAL modes.
要查看所有模式:打开vim,底行模式直接输入 :help vim-modes
上面我们已经简单接触了一下vim,现在我们就来看看这个多模式编辑器的多模式:
模式转换图
2.1命令模式
Vim某认打开的时候的模式
当我们正常使用vim打开一个文件的时候某认是无法写入内容的,vim某认打开的是命令模式,刚打开时我们输入的内容都会被当成命令,有些命令无效就不变现,有些命令是切换命令触发就可以编写来,这也是常说的“新手偶然性”。
2.2插入模式
正常模式进入插入模式:
- 按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件;
- 按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
-
- 按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。
-
从插入模式切换为命令模式 按「ESC」键
2.3底行模式
- [正常模式]切换至[末行模式]
- 「shift + ;」, 其实就是输入「:」
- 退出vim及保存文件,在[正常模式]下,按一下「:」冒号键进入「Last line mode」,例如: :
- w (保存当前文件)
- : wq (输入「wq」,存盘并退出vim)
- : q! (输入q!,不存盘强制退出vim)
- 从插入模式切换为命令模式 按「ESC」键
注意:vim异常退出的话(网断了,服务器断联等等),vim会对编辑结果进行保存,内容会保存在同名的隐藏文件中,
此时不能直接打开
出现以下选项:
【o】pen read-only [E]dit anyway (R)ecover (D)elete it (Q) quit (A)bort
选D过后保存退出就可以正常打开了。(把产生异常的临时文件清理掉),有些代码可能会丢失
3.vim各模式下的命令集
3.1正常(命令模式下)
3.1.1光标定位命令
vim可以直接用键盘上的光标来上下左右移动,老式键盘是没有上下左右方向键的但正规的vim是用
- 小写英文字母「h」、「j」、「k」、 「l」,分别控制光标左、下、上、右移一格
- 按「G」:移动到文章的最后
- 按「 $ 」:移动到光标所在行的“行尾”
- 按「^」:移动到光标所在行的“行首”
- 按「w」:光标跳到下个单词的开头
- 按「e」:光标跳到下个字的字尾
- 按「b」:光标回到上个单词的开头
- 按「#l」:光标移到该行的第#个位置,如:5l,56l 按
- [gg]:进入到文本开始 按
- [shift+g]:进入文本末端
- 【按下一个数字 + shiift +g】光标定位到指定的数字行
- 按「ctrl」+「b」:屏幕往“后”移动一页
- 按「ctrl」+「f」:屏幕往“前”移动一页
- 按「ctrl」+「u」:屏幕往“后”移动半页
- 按「ctrl」+「d」:屏幕往“前”移动半页
3.1.2 复制粘贴
「yy」:复制光标所在行到缓冲区。
数字+yy :复制光标往下的数字行
「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完 成复制与粘贴功能。
数字+p :实现数字次粘贴,比如5次粘贴
「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
「#yw」:复制#个字到缓冲区
3.1.3 删除
「x」:每按一次,删除光标所在位置的一个字符
「#x」:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符
「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符
「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符
「dd」:删除光标所在行
「#dd」:从光标所在行开始删除#行
dd hou+p相当于剪切功能
3.1.4 撤销
「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回恢复。
「ctrl + r」: 撤销的恢复
3.1.5大小写转换
shift按住不动+~,将光标所在一行小写转大写,也可以大写转小写,按一下可以转换一次。
3.1.6替换
「r」:替换光标所在处的字符。
【#r】:[20r]+v,将光标所在位置后20个字符替换为v.
「R」:替换光标所到之处的字符,直到按下「ESC」键为止,这是进入了替换模式,是一个模式(replace)
esc回到命令模式,在替换模式中输入的字符会替换原有内容,但是如果按删除键会回复原来的内容。
3.1.7shift=3 高亮查找函数名
配合n 下一个
3.2 vim插入模式下
这个模式下就是代码编写,没有过多命令讲解
3.3vim底行模式下
shift+;进入底行模式(但是要在正常模式下)
wq: 保存内容并退出
有时保存退出没有权限无法保存退出,也有可能文件处于特殊状态无法保存退出,比如:
文件正在被别人打开,或者文件对应的拥有者不是操作者或者root写一些配置文件时,W!强制写入
q!强制退出
【:!comand】可以直接跟shell命令
q退出
甚至可以做到不退出vim进行代码的编译和运行
- 列出行号 「set nu」: 输入「set nu」后,会在文件中的每一行前面列出行号。 跳到文件中的某一行
- 「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15, 再回车,就会跳到文章的第15行。
- 查找字符 「/关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按 「n」会往后寻找到您要的关键字为止。
- 「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直 按「n」会往前寻找到您要的关键字为止。
- 保存文件 「w」: 在冒号输入字母「w」就可以将文件保存起来
- 离开vim 「q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim。 「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件
3.3.2 两个文件对比
在底层模式下输入vs 文件名,可以打开另外一个文件
绿色的光标在那个位置操作的就是那个文件。
多窗口级别光标移动:ctrl+ww
vim光标特点:上次退出时光标在那个位置,再次打开光标就在那个位置
vim 文件名+行号
进入viM时光标就在指定行
3.4 注释模式
ctrl + v进入 VISUAL BLOCK模式 可进行批量注释
按住上下就可以批量选中
shift +a = a 输入双斜杠// 在按esc就全部注释掉了
ctrl V +上下选择+d 删除注释
4.vim的自主配置
目前使用的还是原生vim,vim打开时会默认读取用户特定的配置文件。
4.1vim的基本配置
进入自己的家目录下查看所有的隐藏文件
配置文件的位置 在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。 而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下, 通常已经存在一个.vimrc文件,如果不存在,则创建之。 切换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~ 打开自己目录下的.vimrc文件,执行 vim .vimrc
4.1.1常用配置
设置语法高亮: syntax on
显示行号: set nu
设置缩进的空格数为4: set shiftwidth=4
也可以使用插件进行配置 都要保证上传到了这个指定目录。
这里整理一份基础配置
" 编辑设置
set nu " 显示行号 同 number
set tabstop=4 " 设置制表符宽度为4
set softtabstop=4 " 设置软制表符宽度为4
set shiftwidth=4 " 设置缩进的宽度为4
set expandtab " 制表符扩展为空格
set showmatch " 输入括号时,自动高亮对应的另一个括号, 各种括号
set ruler " 在状态栏显示光标的当前位置(位于哪一行哪一列)
set autoindent " 设置自动缩进
set cindent " 以C语言的方式缩进
"set cursorline " 突出显示当前行" 字体和主题
"set guifont=Consolas:h15 " 设置字体和字体大小, 得系统有
"colorscheme neodark " 设置主题为neodark, 前提得有
" 备份还原设置
"set nobackup " 取消备份文件
"setlocal noswapfile " 不创建交换文件.swp, 奔溃用, 正常退出会删除
set undofile " 生成un~文件, un~文件用来保存撤销历史
set undodir=~/.vim/undodir " 统一管理undo文件路径 mkdir ~/.vim/undodir -p
"set backup " 开启备份文件 filename~
"set backupext=.bak " 设置备份文件后缀为.bak" 工具环境设置
set showmode " 在底部显示,当前处于命令模式还是插入模式
set showcmd " 命令模式下,显示当前键入的指令, 包括快捷键
set hlsearch " 高亮显示搜索的字符串
"set t_Co=256 " 启用256色, 不用主题就关了
set noerrorbells " 出错时不发出响声
set vb t_vb= " 光标边界响铃关闭
set laststatus=2 " 显示状态栏
set statusline=%F%m%r%h%w\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%Y\ -\ %H:%M\")} "状态栏信息模板
set backspace=2
" 语法高亮显示
syntax on
syntax enable
" 文件编码配置
set enc=utf-8 " vim内部编码模式,即内存中的编码 同 encoding
set fenc=utf-8 " 保存文件的默认编码, 不会覆盖原编码
set fencs=ucs-bom,utf-8,cp936,gb18030,gb2312,gbk,big5,euc-jp,euc-kr,shift-jis,latin1 "打开文件时的编码猜测列表,按前后优先级顺序 同fileencodings
set termencoding=utf-8 " 屏幕显示最终编码
4.1.2 使用插件的方式
安装TagList插件,下载taglist_xx.zip ,解压完成,将解压出来的doc的内容放到~/.vim/doc, 将解压出来 的plugin下的内容拷贝到~/.vim/plugin 在~/.vimrc 中添加: let Tlist_Show_One_File=1 let Tlist_Exit_OnlyWindow=1 let Tlist_Use_Right_Window=1 安装文件浏览器和窗口管理器插件: WinManager 下载winmanager.zip,2.X版本以上的 解压winmanager.zip,将解压出来的doc的内容放到~/.vim/doc, 将解压出来的plugin下的内容拷贝到 ~/.vim/plugin 在~/.vimrc 中添加 let g:winManagerWindowLayout=‘FileExplorer|TagList nmap wm :WMToggle 然后重启vim,打开~/XXX.c或~/XXX.cpp, 在normal状态下输入"wm", 你
4.2自动化配置vim
目前只支持 Centos7 x86_64.
在 shell 中执行指令(想在哪个用户下让vim配置生效, 就在哪个用户下执行这个指令. 强烈 "不推荐" 直接在 root 下执行):
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
卸载方法:
在安装了 VimForCpp 的用户下执行:
bash ~/.VimForCpp/uninstall.sh
5.结语
以上就是关于vim的使用及配置,有些东西不是很具体,大家可以多做扩展
相关文章:

【Linux】-Linux下的编辑器Vim的模式命令大全及其自主配置方法
目录 1.简单了解vim 2.vim的模式 2.1命令模式 2.2插入模式 2.3底行模式 3.vim各模式下的命令集 3.1正常(命令模式下) 3.1.1光标定位命令 3.1.2 复制粘贴 3.1.3 删除 3.1.4 撤销 3.1.5大小写转换 3.1.6替换 「R」:替换光标所到之处的字符&…...

基于SpringBoot和Vue的车辆管理系统的设计与实现
今天要和大家聊的是一款基于SpringBoot和Vue的车辆管理系统的设计与实现 !!! 有需要的小伙伴可以通过文章末尾名片咨询我哦!!! 💕💕作者:李同学 💕…...

R折线图(自备)
目录 折线图基础 创建散点和折线图 复杂折现加图例 折线图柱状图 数据处理 进行差异检验 基础绘图折线 基础绘图箱线 进行合并 双轴柱状与折线图 数据 折线图基础 创建散点和折线图 rm(list ls()) opar <-par(no.readonlyTRUE)##自带orange数据集 par(mfrowc…...

web学习笔记(四十五)Node.js
目录 1. Node.js 1.1 什么是Node.js 1.2 为什么要学node.js 1.3 node.js的使用场景 1.4 Node.js 环境的安装 1.5 如何查看自己安装的node.js的版本 1.6 常用终端命令 2. fs 文件系统模块 2.1引入fs核心模块 2.2 读取指定文件的内容 2.3 向文件写入指定内容 2.4 创…...

基于Gabor滤波器的指纹图像识别,Matlab实现
博主简介: 专注、专一于Matlab图像处理学习、交流,matlab图像代码代做/项目合作可以联系(QQ:3249726188) 个人主页:Matlab_ImagePro-CSDN博客 原则:代码均由本人编写完成,非中介,提供…...

55、Qt/事件机制相关学习20240326
一、代码实现设置闹钟,到时间后语音提醒用户。示意图如下: 代码: #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget), speecher(new QTextToSpeech(t…...

Clip Converter - 视频在线下载方法
Clip Converter - 视频在线下载方法 1. Video URL to Download2. Continue3. StartReferences YT to MP4 & MP3 Converter! https://www.clipconverter.cc/ Clip Converter is a free online media conversion application, which allows you to reocord, convert and do…...
【No.19】蓝桥杯简单数论上|模运算|快速幂|GCD|LCM|刷题统计|RSA解密|核桃的数量(C++)
简单数论 模运算 定义:模运算为 a 除以 m 的余数,记为 a mod m,有 a mod m a % m模运算是大数运算中的常用操作。如果一个数太大,无法直接输出,或者不需要直接输出,可以把它取模后,缩小数值再…...

区块链安全之DDoS防护的重要性及其实施策略
随着区块链技术的不断发展和广泛应用,其安全问题也日益凸显。其中,分布式拒绝服务(DDoS)攻击是对区块链网络稳定性和效率构成潜在威胁的重要因素之一。本文旨在深入探讨区块链为何需要采取DDoS高防措施,并提出相应的防护策略。 一、区块链面…...

使用Spark单机版环境
在Spark单机版环境中,可通过多种方式进行实战操作。首先,可使用特定算法或数学软件计算圆周率π,并通过SparkPi工具验证结果。其次,在交互式Scala版或Python版Spark Shell中,可以进行简单的计算、打印九九表等操作&…...

【分布式】——降级熔断限流
降级&熔断&限流 ⭐⭐⭐⭐⭐⭐ Github主页👉https://github.com/A-BigTree 笔记仓库👉https://github.com/A-BigTree/tree-learning-notes 个人主页👉https://www.abigtree.top ⭐⭐⭐⭐⭐⭐ 如果可以,麻烦各位看官顺手点…...

代码随想录刷题笔记 Day 58 | 判断子序列 No.392 | 不同的子序列 No.115
文章目录 Day 5801. 判断子序列(No. 392)<1> 题目<2> 题解<3> 代码 02. 不同的子序列(No. 115)<1> 题目<2> 题解<3> 代码 Day 58 01. 判断子序列(No. 392) 题目链接…...

【C++11】thread线程库
【C11】thread线程库 目录 【C11】thread线程库thread类的简单介绍函数指针lambda表达式常用在线程中 线程函数参数join与detach利用RAII思想来自动回收线程 原子性操作库(atomic)atomic中的load函数:atomic中对变量进行原子操作的一些函数 CAS(Compare-And-Swap)无…...
【OpenStack】创建系统(VM)实例镜像及实例创建方法
【OpenStack】创建系统(VM)实例镜像及实例创建方法 目录 【OpenStack】创建系统(VM)实例镜像及实例创建方法创建计算镜像加载基本镜像预建镜像手动实例创建cloud-init 搭救使用 `cloud-init` 配置启动实例连接到您的新实例为实例分配 Floating IP创建SSH隧道结论推荐超级课程:…...

灵途科技助力家电智能创新
从智能家电到个护健康,科技无时无刻不在刷新我们对智慧生活的认知,我们也从未像今天这样近距离贴近智慧生活的朴素本质——传感技术。灵途科技专注光电感知技术,持续为智能家电客户提供成熟的全方位感知解决方案。步入发展第八年,…...

Flask python :logging日志功能使用
logging日志的使用 一、了解flask日志1.1、Loggers记录器1.2、Handlers 处理器1.3、Formatters 格式化器 二、使用日志2.1、官网上的一个简单的示例2.2、基本配置2.3、具体使用示例2.4、运行 三、写在最后 一、了解flask日志 日志是一种非常重要的工具,可以帮助开发…...

ethers.js:sign(签名)
Signers 在ethers中Signer是以太坊账户的抽象,可以用来签名消息和交易,如将签名的交易发送到以太坊网络以执行状态更改的操作。 npm install ethers5.4.0// 引入 import { ethers } from ethers签名 this.provider new ethers.providers.Web3Provider(…...

使用npm i进行admin依赖安装的时候出现问题
提示: npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to https://registry.npm.taobao.org/string-width failed, reason: certificate has expired 切换淘宝源到http或者更换其他国内镜像 npm config set registry http:/…...
【Python笔记-FastAPI】定时任务实现(APScheduler)
目录 一、常见触发器 (一) DateTrigger (二) IntervalTrigger (三) CronTrigger (四) CombinationTrigger 二、代码示例 (一) task_scheduler.py (二) client.py 三、调用说明 (一) 注册任务 (二) 查询任务 (三) 删除任务 实现功能: 定时任务注册、修改、删除、查…...

『Apisix入门篇』从零到一掌握Apache APISIX:架构解析与实战指南
📣读完这篇文章里你能收获到: 🌐 深入Apache APISIX架构: 从Nginx到OpenResty,再到etcd,一站式掌握云原生API网关的构建精髓,领略其层次化设计的魅力。 🔌 核心组件全解析ÿ…...

深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...
掌握 HTTP 请求:理解 cURL GET 语法
cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...