vi和vim基本命令

本文详细介绍vi编辑器的核心设计思想、特点及基本操作,包括打开文件、定位行、异常退出处理、三种基本模式及其命令,如移动、屏幕滚动、光标移动、段落切换、标记、文本选择、撤销与恢复、删除、复制粘贴、替换、缩进调整、查找、替换、插入命令等。

vi

vi是visual interface的简称,是linux最经典的编辑器
vi的核心设计思想:让程序员的手指始终保持在键盘的核心区域,就能完成所有的编辑操作
vi的特点:

  1. 没有图形界面的功能强大的编辑器
  2. 只能是编辑文本内容,不能对字体,段落进行排版
  3. 不支持鼠标操作
  4. 没有菜单
  5. 只有命令

基本操作:

打开和新建文件
vi 文件名

注意:如果文件存在,会直接打开文件,如果文件不存在,会先创建这个文件

打开文件并定位行

有时候我们知道文件的编程错误地址,就需要直接定位到指定的行上

vi 文件名 +行数
# 如果不写行数,只写+,则会自动定位到文件末尾
vi异常退出

如果vi异常退出,很可能在磁盘上保留交换文件
当你再次打开文件时,会显示警告信息,此时按下D删除交换文件,则之前的修改全部丢失

vi的三种基本模式
  1. 命令模式
    打开文件首先进入命令模式,是使用vi的入口
    在其他编辑器中使用鼠标等的操作,都是在命令模式下完成的
  2. 末行模式
    执行保存,退出等的操作
  3. 编辑模式
    正常的编辑文字

末行模式的命令

w         write           保存
q         quit            退出,如果没有保存,不允许修改
q!       quit            强行退出,不保存修改
wq        write&quit     保存并退出
x                        保存并退出
命令

行数移动

j		向下移动
k		向上移动
gg         go           文件顶部
G          go           文件末尾
数字gg                  移动到数字对应行数
数字G                   移动到数字对应行数
:数字                   移动到数字对应行数

屏幕移动

Ctrl+b          back           向上翻页
Ctrl+f         forword         向下翻页
H               Head           屏幕顶部
M               Middle         屏幕中间
L               Low            屏幕末尾

光标移动

w			word			向后移动一个单词
b			back			向前移动一个单词
0							行首
^							行首,第一个不是空白字符的位置
$							行尾

段落移动和括号切换
vi使用空行来区分段落
在程序开发过程中,通常一段功能相关的代码会写在一起—之间没有空行

{			上一段
}			下一段

在程序中,括号出现的频率比较高,并且成对出现

%			括号匹配并切换

标记
在开发时,某一块代码可能需要稍后处理
此时,使用m添加一个标记,这样可以在需要时快速的跳转回来
标记名称可以是a-z或者A-Z任意一个字母
添加标记的行如果被删除,则标记同样被删除
如果在其他行,添加了相同的标记,则之前的标记会被替代

m字母			mark			添加标记
‘字母							直接定位到标记的位置

选中文本

v			可视模式			从光标开始正常模式选择文本
V			可视行模式		选中光标经过的完整行
Ctrl+v		可视块模式		垂直方向选中文本
注意:此时可以与上面的移动命令连用
ggVG			可以选中所有文本
ggv}			可以直到选中段落末尾

撤销和恢复命令

u			undo			撤销命令
Ctrl+r		redo			恢复撤销的命令

删除命令

x			cut			删除光标所在字符,或者选中的文本
d(移动命令)	delete		删除移动命令对应的内容                   例:dw可以删除整个单词
dd			delete		删除光标所在行		数字dd可以删除多行
D			delete		删除至行尾

复制粘贴
vi中提供一个被复制文本的缓冲区

y(移动命令)			copy			复制
yy					copy			复制一行,可以nyy复制多行
p					paste			粘贴

剪切

在vi中,d,x删除操作就是剪切操作,只不过如果你不粘贴,表面上就是删除

替换
对文件进行小幅度的改变时,可以用到替换命令

r			replace			替换当前字符
R			replace			替换当前行光标后的字符

缩进

>>			向右增加缩进
<<			向左增加缩进
.			重复上次命令
注意:如果一次性需要给多行增加缩进,V>,执行后,自动回到命令模式

查找

/str			查找指定的内容
n	查找下一个
N	查找上一个


*			向后查找当前光标所在单词
#			向前查找当前光标所在单词

查找并替换

全局替换
:%s/旧文本/新文本/g


可视区域替换(只替换选中的区域)
:s/旧文本/新文本/g


确认替换
:%s/旧文本/新文本/gc

y		yes	替换
n		no	不替换
a		all	替换所有
q		quit	退出替换
l		last	最后一个,并把光标移动到行首
^E		向下滚屏
^Y		向上滚屏

插入命令

i			insert			在当前字符前插入字符
I			insert			在当前行首插入字符
a			append			在当前字符后插入字符
A			append			在当前行尾插入字符
o							在当前行后面插入一个空行
O							在当前行前面插入一个空行

案例总结

1. 重复输入hello world 10次
	命令模式下,先输入10,再按i进入编辑模式,输入hello world,按esc退出,vim会自动重复10次
2. 给多行代码添加注释
	命令模式下,先输入ctrl+v进入可视块模式,选中代码后,输入I进入编辑模式,输入#,esc退出,vim会自动在选中的代码前添加#

末行模式下命令总结

:e .			打开vim内置的文件管理器,查看当前路径下的文件
:n 文件名		新建文件
:w 文件名		另存为		(保存后,编辑的仍然是当前的文件,不会改为另存为的文件)
注意: 这个另存为之所以不切换文件,是为了让用户进行阶段性保存,且注意力仍然在开发的文件上

分屏命令

:sp	文件名			split			横向增加分屏
:vsp 文件名			vertical split	竖向增加分屏

Ctrl+w			切换窗口

计及源荷不确定性的综合能源生产单元运行调度与容量配置优化研究(Matlab代码实现)内容概要:本文围绕“计及源荷不确定性的综合能源生产单元运行调度与容量配置优化”展开研究,利用Matlab代码实现相关模型的构建与仿真。研究重点在于综合能源系统中多能耦合特性以及风、光等可再生能源出力负荷需求的不确定性,通过鲁棒优化、场景生成(如Copula方法)、两阶段优化等手段,实现对能源生产单元的运行调度与容量配置的协同优化,旨在提高系统经济性、可靠性可再生能源消纳能力。文中提及多种优化算法(如BFO、CPO、PSO等)在调度与预测中的应用,并强调了模型在实际能源系统规划与运行中的参考价值。; 适合人群:具备一定电力系统、能源系统或优化理论基础的研究生、科研人员及工程技术人员,熟悉Matlab编程基本优化工具(如Yalmip)。; 使用场景及目标:①用于学习复现综合能源系统中考虑不确定性的优化调度与容量配置方法;②为含高比例可再生能源的微电网、区域能源系统规划设计提供模型参考技术支持;③开展学术研究,如撰写论文、课题申报时的技术方案借鉴。; 阅读建议:建议结合文中提到的Matlab代码网盘资料,先理解基础模型(如功率平衡、设备模型),再逐步深入不确定性建模与优化求解过程,注意区分鲁棒优化、随机优化与分布鲁棒优化的适用场景,并尝试复现关键案例以加深理解。
内容概要:本文系统分析了DesignData(设计数据)的存储结构,围绕其形态多元化、版本关联性强、读写特性差异化等核心特性,提出了灵活性、版本化、高效性、一致性可扩展性五大设计原则。文章深入剖析了三类主流存储方案:关系型数据库适用于结构化元信息存储,具备强一致性与高效查询能力;文档型数据库适配半结构化数据,支持动态字段扩展与嵌套结构;对象存储结合元数据索引则有效应对非结构化大文件的存储需求,具备高扩展性与低成本优势。同时,文章从版本管理、性能优化数据安全三个关键维度提出设计要点,建议采用全量与增量结合的版本策略、索引与缓存优化性能、并通过权限控制、MD5校验备份机制保障数据安全。最后提出按数据形态分层存储的核心结论,并针对不同规模团队给出实践建议。; 适合人群:从事工业设计、UI/UX设计、工程设计等领域数字化系统开发的技术人员,以及负责设计数据管理系统架构设计的中高级工程师系统架构师。; 使用场景及目标:①为设计数据管理系统选型提供依据,合理选择或组合使用关系型数据库、文档型数据库与对象存储;②构建支持版本追溯、高性能访问、安全可控的DesignData存储体系;③解决多用户协作、大文件存储、历史版本管理等实际业务挑战。; 阅读建议:此资源以实际应用场景为导向,结合具体数据库类型表结构设计进行讲解,建议读者结合自身业务数据特征,对比分析不同存储方案的适用边界,并在系统设计中综合考虑成本、性能与可维护性之间的平衡。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值