【大数据 / linux 系统 / KEN】Vim & Vi :编辑器之神(5)

Vim & Vi :编辑器之神

首次发布时间:2020/7/13
最后修改时间:2020/7/13

摘要
  • vi 的三种基本工作模式
    • 命令模式
    • 编辑模式
    • 末行模式

vi 简介
  • vi 是 “Visual interface” 的简称,它在 Linux 上的地位就仿佛 Edit 程序在 DOS 上一样
  • 它可以执行输出删除查找替换块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制
  • vi 不是一个排版程序,它不象 Word 或 WPS 那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序
  • vi 没有菜单,只有命令,且命令繁多

vi 的三种基本工作模式
  • 命令模式
  • 编辑模式
  • 末行模式
命令模式:
  • 一启动 vi/vim,就进入了命令模式
  • 在此模式下,键盘输入会被 Vim 识别为命令,而不会作为字符被输入到文档中
  • 常用命令:
    • i:切换到编辑模式,从当前光标所在位置开始输入
    • a:切换到编辑模式,从当前光标所在位置后一位开始输入
    • o:切换到编辑模式,从光标所在行的下一行开始输入,且会自动新开一行
      • (这个命令自己试一下会更直观一点,命令很简单,描述起来有点绕)
      • (我觉得这个命令很实用)
    • 上面这三个命令都是我自己比较常用的切换到编辑模式的命令

    • 扩展:(我没用过,但是是能正常用,只是我觉得不好用,因为还要切换大小写)
      • I:切换到编辑模式,从行首开始输入

      • A:切换到编辑模式,从行末开始输入

    • dd删除光标所在行的整行内容
    • ndd:自光标所在行向下删除 n 行
      • (n 是具体行数,需要你自己输入)
      • (例如 10dd,表示删除自光标所在行向下 10 行)
    • 这两个也很实用,可以比较快的删除内容

    • u:回退所做的修改
    • ctrl + r:撤销回退
    • 这两个命令配合使用,功能类似于 Windows 下的 ctrl + zctrl + y

编辑模式:
  • 命令模式下按下 i 就进入了输入模式(或者使用上面 3 个命令中的一个也行)
  • 编辑模式下的编辑操作就不赘述了,和 Windows 下差不多,只是不能用鼠标而已
  • 按一下 ESC 键就可以回到命令模式
末行模式:
  • 在命令模式下按下 :(英文冒号)就进入了末行模式
  • 注意:有时候一直按 : 没反应,看下是不是用了中文冒号

  • 常用的命令(已经省略了冒号):
    • q:退出 vi/vim
    • q!:强制退出,且不保存修改
    • w:保存修改
    • wq:保存并退出
    • wq!:强制保存并退出(这个命令是针对只读文件的,平常不会用到)
  • 按两下 ESC 键就可以回到命令模式

在这里插入图片描述


vim 基础操作
1.1 编辑模式
按键说明
i在光标位置开始输入
l (大写 i)在行首开始输入
a光标后一位开始输入
A在行末开始输入
o在光标所在行的下一行新开一行,并在新开行的行首开始输入
O在光标所在行的上一行新开一行,并在新开行的行首开始输入
1.2 末行模式
  • 在命令模式下,输入 :(英文冒号),即可进入末行模式
  • 退出:
按键说明
:q退出 vim
:q!退出 vim,并且不保存修改
:w保存修改
:qw保存修改并退出
:x保存修改并退出
  • :x 在文件内容有修改时,才会写入文件,并更新文件修改时间

  • :qw 无论文件内容是否有修改都会写入文件,并更新文件修改时间,会在编译时产生不必要的开销

  • 所以一般首选使用 :x

  • 查找命令:

按键作用
/str(字符串查找),这个比较常用,跟 Windows 下的 ctrl + f 功能类似
n下一个
N上一个
:%s/String//gn/ 作用类似,也是查找字符串。不过这个命令还可以显示出需要查找的内容的个数,命令中的 String 替换成你们要查找的内容即可
  • 在命令模式下,按下 / ,输入需要查找的字符串内容

  • 然后按回车,即可开始查找

  • 开始查找后,按 n往后查找下一个,按 N往前查找上一个

  • :%s/String//gn:这个命令也是通过 nN 来查找上一个/下一个。

  • 替换命令:

  • 目标:把 abc 全部替换为 123

末行模式下,将当前文件中的所有 abc 替换成 123
:%s/abc/123/g
(如果不使用 g,则只会替换每一行的第一个 abc

末行模式下,将第 1 行至第 10 行的 abc 替换成 123
:1,10s/abc/123/g

  • vim 里执行 shell 下的命令:
    • 在末行模式下输入 !,然后后面跟 shell 命令
    • 例如::!git log
      • 这样就会直接跳到 git log 的显示
      • 此时按一下回车,就会回到 vim 里面
1.3 命令模式
  • 移动光标:
按键作用
h左移
j下移
k上移
l右移
M光标移动到当前屏幕的中间行
L光标移动到当前屏幕最后一行行首
gg光标移动文件开头
G光标移动到文件末尾
nG移动到指定行,n 是行号 G
w向后一次移动一个字
b向前一次移动一个字
{按段移动,上移
}按段移动,下移
Ctr-d向下翻半屏
Ctr-u向上翻半屏
Ctr-f向下翻一屏
Ctr-b向上翻一屏

其实光标移动这里我一个也记不住,也太多了
我一般就用 方向键 + HOME + END + PageUp + PageDown 键来移动光标
简单易用,我觉得这就足够满足我的使用了

  • 撤销命令:
按键作用
u撤销修改
ctrl + r反撤销(和 u 的作用相反)
  • 这两个命令前文也讲过了

  • 删除命令:

按键作用
x删除光标后一个字符,相当于 Del
X删除光标前一个字符,相当于 Backspace(退格键)
dd删除光标所在行,ndd 表示删除 n 行(这个命令前面也讲过)
D删除光标后本行所有内容,包含光标所在字符
d0删除光标前本行所有内容,不包含光标所在字符
dw删除光标开始位置的字,包含光标所在字符
de删除光标所在位置到本单词末尾
dE删除光标所在位置到本单词末尾包括标点符号
db删除光标所在位置到前面单词
dB删除光标所在位置到前面单词包括标点符号
d$删除光标所在位置到本行末尾

我就只用过 xXddndd,其它的目前没用过

  • 复制粘贴:
按键作用
yy复制当前光标所在行,nyy 表示复制 n
p在光标所在位置向下新开辟一行,并粘贴通过 yy 复制的内容,np 表示将复制的内容粘贴 n
  • 替换操作:
按键作用
r替换当前字符(用法:按一下 r,然后输入字符,只能替换光标所在位置的字符)
R替换当前行光标后的字符(输入的时候有点类似于点了 insert 键)
  • 文本行移动:
按键作用
>>文本行右移
<<文本行左移

感觉没什么用

  • 重复命令:
按键作用
.重复上一次操作的命令
  • 可视模式:
按键作用
v按字符移动,选中文本
V按行移动,选中文本
  • 选取文本后:
    • d 删除选取的文本内容
    • y 复制选取的文本内容
    • <<>> 对选取的文本内容左右移动
打开链接下载源码: https://pan.quark.cn/s/e23b4cd62d42 Linux运维工程师在IT行业扮演着核心的角色,他们承担着对基于Linux操作系统的服务器进行维护和管理的职责,以保障系统的稳定性和运行效率。Linux运维职业的学习和发展路径是结构化且周密的,它包含了从入门到精通的多个层次。以下是对这一主题的深入解析: 一、入门知识阶段 在Linux运维的学习初期,首要任务是掌握Linux操作系统的基本理念和常用指令。这涉及到对Linux不同发行版(例如Ubuntu、CentOS、Red Hat等)的认识,熟悉文件系统的构造,熟练运用文件和目录操作(诸如ls、cd、mkdir、rm等),以及掌握vi/vim等文本编辑器的使用方法。除此之外,学习Linux中的用户和权限管理、进程管理、网络设置和监控也是这一阶段需要重点关注的内容。 二、高级技术阶段 在基础知识的积累之后,需要进一步深入理解Linux内核、Shell脚本编程、系统服务和守护进程的管理。这一阶段应该熟练运用grep、awk、sed等数据处理工具,以及crontab定时任务的设定。同时,要学会通过系统日志进行故障排查,比如查看/var/log目录下的各种日志文件。对于网络服务的配置与管理,如HTTP(Apache或Nginx)、FTP、DNS、DHCP等,也具有非常重要的意义。 三、自动化与编程脚本 在当代运维工作中,自动化是提升工作效率的关键要素。学习Python或Perl等编程语言,编写自动化脚本来处理日常任务,例如系统备份、监控告警、数据整理等。了解Ansible、Puppet、Chef等配置管理工具,能够帮助实现更大范围的系统部署和管理。 四、性能调优与监控 掌握系统性能参...
内容概要:本文围绕虚拟电厂与电动汽车之间的主从博弈关系,结合条件风险价值(CVaR)理论,构建了一个考虑不确定环境下的优化决策模型。研究通过建立上层虚拟电厂调度优化与下层电动汽车用户充放电响应的双层博弈框架,利用CVaR量化参与主体的风险偏好,提升系统在电价波动、负荷不确定性等风险因素下的鲁棒性与经济性。采用Matlab进行仿真建模与求解,验证了该方法在降低运行风险、提高收益水平及促进可再生能源消纳方面的有效性。文档还提供了丰富的相关研究主题和技术资源,涵盖电力系统优化、智能算法、深度学习、路径规划等多个前沿领域,展现了广泛的技术支持与科研应用潜力。; 适合人群:具备电力系统基础知识、优化理论背景及Matlab编程能力的科研人员,特别适用于从事能源互联网、电动汽车调度、虚拟电厂运营、风险管理与低碳电力系统研究的研究生与高校研究人员。; 使用场景及目标:① 掌握主从博弈在综合能源系统中的建模方法;② 学习CVaR在电力市场风险决策中的集成应用;③ 实践基于Matlab的双层优化模型实现与仿真分析;④ 借助配套资源拓展科研视野,支撑高水平论文撰写与课题申报。; 阅读建议:建议读者结合文中提供的百度网盘资料与公众号资源,获取完整代码、参考文献及复现案例,按照文档目录体系循序渐进地学习,并动手调试仿真程序,深入理解博弈结构设计与风险规避机制的实现细节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值