嵌入式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

百分号(%)表示所有行

还可以用:

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

相关推荐
山河君5 分钟前
ubuntu使用DeepSpeech进行语音识别(包含交叉编译)
linux·ubuntu·语音识别
鹏大师运维9 分钟前
【功能介绍】信创终端系统上各WPS版本的授权差异
linux·wps·授权·麒麟·国产操作系统·1024程序员节·统信uos
筱源源11 分钟前
Elasticsearch-linux环境部署
linux·elasticsearch
萨格拉斯救世主15 分钟前
jenkins使用slave节点进行node打包报错问题处理
运维·jenkins
川石课堂软件测试25 分钟前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
真·Wild·攻城狮1 小时前
【码农日常】Vscode Clangd初始化失败(Win10)
ide·vscode·编辑器
七灵微1 小时前
【测试】【Debug】vscode中同一个测试用例出现重复
ide·vscode·编辑器
pk_xz1234562 小时前
Shell 脚本中变量和字符串的入门介绍
linux·运维·服务器
小珑也要变强2 小时前
Linux之sed命令详解
linux·运维·服务器
Lary_Rock4 小时前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器