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

百分号(%)表示所有行

还可以用:

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

相关推荐
莲动渔舟10 小时前
国产编辑器EverEdit - 扩展脚本:让EverEdit支持“批量查找”功能
编辑器·emeditor·notepad·everedit
宁zz10 小时前
乌班图安装jenkins
运维·jenkins
大丈夫立于天地间11 小时前
ISIS协议中的数据库同步
运维·网络·信息与通信
cg501711 小时前
Spring Boot 的配置文件
java·linux·spring boot
暮云星影11 小时前
三、FFmpeg学习笔记
linux·ffmpeg
rainFFrain11 小时前
单例模式与线程安全
linux·运维·服务器·vscode·单例模式
GalaxyPokemon11 小时前
Muduo网络库实现 [九] - EventLoopThread模块
linux·服务器·c++
mingqian_chu12 小时前
ubuntu中使用安卓模拟器
android·linux·ubuntu
Liudef0612 小时前
deepseek v3-0324实现SVG 编辑器
开发语言·javascript·编辑器·deepseek