嵌入式Linux编辑器vi

一、vi是什么

vi是Linux系统的第一个全屏幕交互式编辑工具。

vi与vim

vivim 是 Linux 和 Unix 系统上非常流行的文本编辑器。尽管 vi 是最初的版本,但 vim(Vi IMproved)是它的一个增强版本,提供了更多的功能和易用性。

vi 是一个全屏的文本编辑器,它没有图形用户界面,而是完全基于命令行操作。由于其简单和高效,它仍然被广泛使用,特别是在系统管理员和高级用户中。

.

vimvi 的一个增强版本,提供了更多的功能、颜色高亮、插件支持等。由于其强大的功能和灵活性,它也被许多开发者所喜爱。

二、vi的三种基本模式

命令行模式、插入模式、底行模式

1、命令行模式

用户可以输入命令来控制屏幕光标的移动,删除字符、单词或行,移动复制某区段,也可以进入到底行模式或插入模式。

2、插入模式

用户只有在插入模式下才可以进行字符输入,用户按【esc】键可回到命令行模式下。

3、底行模式

用户可以将文件保存或退出vi,也可以设置编辑环境,如查找字符串、显示行号等。这一模式下的命令都是以 " : " 开始。

三、vi中3中模式的切换

1、命令行模式、底行模式转为插入模式

|----|----|----------------------------------|
| 特征 | 指令 | 作用 |
| 新增 | a | 从光标所在位置后面开始新增资料,光标后的资料随着新增资料向后移动 |
| 新增 | A | 从光标所在列最后面的地方开始新增资料 |
| 插入 | i | 从光标所在位置前面开始插入资料,光标后的资料随着新增资料向后移动 |
| 插入 | I | 从光标所在列的第一个非空白字符前面开始插入资料 |
| 开始 | o | 在光标所在列下新增一列,并进入插入模式 |
| 开始 | O | 在光标所在列上方新增一列,并进入插入模式 |

2、vi的删除、修改与复制

以下命令在命令行模式下使用,在此只作常用的进行列举。

|----|-----|--------------------------------|
| 特征 | 指令 | 作用 |
| 剪切 | ndd | 剪切自光标所在的行开始的n行,若文章结尾不够则剪切到最后一行 |
| | s | 删除光标所在的字符,并进入输入模式 |
| | S | 删除光标所在的行,并进入输入模式 |
| 复制 | nyy | 复制光标自所在的行开始,向下的n行 |
| 粘贴 | p | 将缓冲区内的字符粘贴到光标所在位置 |
| 取消 | u | 取消上一次的文本编辑操作 |

3、vi的光标移动

以下命令在命令行模式下使用,在此只作常用的进行列举。

|--------|-----------------------|
| 指令 | 作用 |
| $ | 移动到光标所在行的最后面 |
| Ctrl+d | 光标向下移动半页 |
| Ctrl+f | 光标向下移动一页 |
| H | 光标移动到当前屏幕的第一行第一列(左上角) |
| gg | 光标移动到当前屏幕的第一行第一列(左上角) |
| M | 光标移动到当前屏幕的中间行第一列 |
| L | 光标移动到当前屏幕的最后行第一列 |
| :n | 光标移动到第n行 |
| nG | 光标移动到第n行 |

4、vi的查找与替换

查找

查找的命令在命令行模式下

|----|-------------|------------|
| 特征 | 指令 | 作用 |
| 查找 | /<要查找的字符> | 向下查找要查找的字符 |
| 查找 | ?<要查找的字符> | 向上查找要查找的字符 |

替换

替换的命令在底行模式下(以 ":" 开头)

|----|-----------------------------|-------------------------------------------------------------------------------------------------------------------------------------|
| 特征 | 指令 | 作用 |
| 替换 | :range s/string1/string2/gc | range:要替换的范围 s:转入替换模式 string1:这是要查找的一个正则表达式 string2:这是希望把匹配串变成的模式的正则表达式 g:可选标志,带这个标志表示替换将针对行中每个匹配的串进行,否则则只替换行中第一个匹配串 c:可选标志,表示替换前询问 |

例如:% s/str1/str2/gc

百分号(%)表示所有行

还可以用:

点(.)表示当前行,美元符号($)表示最末行

相关推荐
Geek__19924 分钟前
VSCode远程图形化GDB
ide·vscode·编辑器
绵绵细雨中的乡音5 分钟前
Linux进程学习【基本认知】
linux·运维·学习
Johny_Zhao23 分钟前
MySQL 高可用集群搭建部署
linux·人工智能·mysql·信息安全·云计算·shell·yum源·系统运维·itsm
珹洺1 小时前
Linux操作系统从入门到实战(三)Linux基础指令(上)
linux·运维·服务器
再睡一夏就好1 小时前
Linux常见工具如yum、vim、gcc、gdb的基本使用,以及编译过程和动静态链接的区别
linux·服务器·c语言·c++·笔记
剁椒排骨1 小时前
win11什么都不动之后一段时间黑屏桌面无法显示,但鼠标仍可移动,得要熄屏之后才能进入的四种解决方法
运维·windows·经验分享·计算机外设·win11·win10
angushine1 小时前
让Docker端口映射受Firewall管理而非iptables
运维·docker·容器
归寻太乙2 小时前
Linux环境变量
linux·运维·服务器
m0Java门徒2 小时前
面向对象编程核心:封装、继承、多态与 static 关键字深度解析
java·运维·开发语言·intellij-idea·idea
Sapphire~2 小时前
Linux-06 ubuntu 系统截图软件使用简单记录
linux·运维·ubuntu