雏鹰部落

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 466|回复: 0

[学习/资料] 【SPOTO思博网络】【网工入门干货】运维基础—Vim编辑器

[复制链接]
发表于 2022-5-11 16:43:32 | 显示全部楼层 |阅读模式
提起文本编辑器,你一定会想到编辑器之神 Vim。作为一个快 30 岁的老牌编辑器,直到现在还很受欢迎。


但你知道VI吗?


VI是一个命令行界面下的文本编辑工具,最早在1976年由Bill Joy开发,当时名字叫做ex。VI支持绝大多数操作系统(最早在BSD上发布),并且功能已经十分强大。

1991年Bram Moolenaar基于VI进行改进,发布了Vim,加入了对GUI的支持。


随着Vim更新发展,Vim已经不是普通意义上的文本编辑器,而是被广泛的作为在文本编辑、文本处理、代码开发等用途。


Vim 编辑文件非常高效,可支持多个操作系统,如 Unix/Linux、Windows、macOS,甚至 iOS 和 Android 上都能找到 Vim 的移植版本。



Vim编辑器键盘

Vim强大的编辑能力中很大部分是来自于其普通模式命令。Vim的设计理念是命令的组合。


“5dd”5表示总共5行,删除光标所在后的5行,包含光标行;
“d$” $"代表行尾,删除到行尾的内容,包含光标;
“2yy”表示复制光标及后2行,包括光标行;
“%d” %代表全部或者全局,%d表示删除文本所有的内容,也即是清空文档所有的内容。

Vim是一个主流开源的编辑器,其默认执行vim命令,会显示帮助乌干达贫困的孩子,如图4-4为vim与键盘键位功能对应关系:


file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml15496/wps1.jpg




file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml15496/wps2.jpg

Vim编辑器三种模式

Vim编辑器模式常用有三种,分别是:


命令行模式;
文本输入模式;
末行模式。


Vim是V1的升级版本,它是安装在Linux操作系统中的一个软件,官网为:www.vim.org


在Linux Shell终端下默认执行vim命令,按Enter键后:
默认进入命令行模式;
在命令行模式按i进入文本输入模式;
按ESC进入命令行模式;
按:进入末行模式。



file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml15496/wps3.jpg

Vim命令行模式实战


Vim虽然非常强大,但是需要记住很多操作命令。如果没有有效的学习方法,操作起来很不方便,只有做到非常熟练才能感受到它带来的快捷。


下图就为Vim编辑器最常用的语法及规则:


file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml15496/wps4.jpg

file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml15496/wps5.jpg

file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml15496/wps6.jpg
file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml15496/wps7.jpg

Vim 语法

如果你一旦理解了 Vim 命令的语法结构,就可以与 Vim 进行对话了,就如想要学习一门语言,语法规则是绕不开的一步。


而这个语法,就是动词 + 名词。现在使用基本的 Vim 动词和名词来建立词汇表。


01 Vim 名词与动词


Vim 中的名词(移动):移动是在 Vim 中进行上下左右等操作。
Vim 中的一些动作如下所示:

h:左
j:下
k:上
l:右
w:移动到下个单词的开头
}:跳到下一段
$:移动到本行末尾


Vim 中的动词(操作符):以 h 操作符为例,Vim 中有 16 种。但只需掌握其中的 3 种,就能满足 80% 的编辑要求。


y    复制文本
d    删除文本,并保存到寄存器
c    删除文本,保存到寄存器,并开启「插入」模式


现在了解了 Vim 中基本的名词和动词,就可以根据语法规则组合上述名词和动词:


y$:把当前所有的内容,从当前位置拖至行尾;


dw:从当前位置删除到下一个单词的开头;


c}:从当前位置到当前段落末尾进行更改。



当然移动也接受数字作为参数,如果你想上移 3 行,不需要键入 k 三次,直接使用 3k 就行了:


y2h:向左移动 2 个字符;


d2w:删除后面的 2 个单词;


c2j:更改接下来 2 行。



除此以外,Vim 还允许通过键入操作符命令两次来执行行操作。例如:键入「dd」,删除整行;键入「cc」,更改整行内容。


02 Vim 可组合性和语法


在学习了 Vim 语法之后,下面介绍一下 Vim 中的可组合性。可组合性意味着拥有一组可以组合且执行更复杂命令的通用命令。


在 Vim 中可以组合较简单的命令执行复杂的命令。当 Vim 与外部程序集成时,可组合性的真正威力就显露出来了。


假如你有一个非常混乱的文本,如下所示,你想把它变成列表形式:


Id|Name|Cuteness01|Puppy|Very02|Kitten|Ok03|Bunny|Ok


用 Vim 命令不容易做到,但是你可以用 column 终端命令快速完成。将光标放在「Id」上,运行「!}column -t -s "|"」。就可以得到如下表格数据:


Id  Name    Cuteness01  Puppy   Very02  Kitten  Ok03  Bunny   Ok


上述的操作过程可分解成这样:动词为「!」(过滤操作符),名词为「}」(转到下一段)。过滤器操作符「!」接受另一个参数,一个终端命令「column -t -s "|"」。



假设你不仅希望将文本列表化,还想筛选出带有「Ok」的行。awk 可以轻松地完成这项任务。可以执行如下操作:

!}column -t -s "|" | awk 'NR > 1 && /Ok/ {print $0}'


得到的结果:

02  Kitten  Ok03  Bunny   Ok


对操作符、动作和终端命令了解得越多,编写复杂动作的能力就会成倍增加。



文章来源:内容综合自网络,因觉优质,特此分享,侵删。

每天通过一位IE,每两位IE,一位在思博
群里有一群一起备考的战友哦
回贴可领取实验手册噢
游客,如果您要查看本帖隐藏内容请回复

进入全国网络工程师交流群 ,请扫描下方二维码↓↓↓
群里有行业大咖、实战分享、技术交流、技术咨询、企业内推等机会
若群满,请添加老杨微信(spotoa),邀你进群



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|熊猫同学技术论坛|小黑屋| 网络工程师论坛 ( 沪ICP备09076391 )

GMT+8, 2024-12-22 22:57 , Processed in 0.088809 second(s), 19 queries , Gzip On.

快速回复 返回顶部 返回列表