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

百分号(%)表示所有行

还可以用:

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

相关推荐
Kira Skyler33 分钟前
kprobe函数入口时的汇编跳板执行流程与栈帧机制
linux·汇编
桌面运维家35 分钟前
VHD/VHDX 数据守护:BAT位图校验与修复
linux·服务器·网络
pupudawang40 分钟前
Linux下安装Nginx服务及systemctl方式管理nginx详情
linux·运维·nginx
ipad协议开发42 分钟前
视频号直播间全功能自动化场控插件开发指南:基于 API 调用的全链路拆解
运维·微信·自动化·视频·ipad
维度攻城狮1 小时前
Docker优雅地运行OpenClaw
运维·docker·容器·openclaw·openclaw安装
零K沁雪1 小时前
Linux 内核遍历宏介绍
linux·内核
淼淼爱喝水2 小时前
openEuler 下 Ansible 基础命令详解与实操演示2
linux·运维·windows
拾贰_C2 小时前
【Ubuntu | install | 安装软件】 Ubuntu软件安装多种方式以及卸载
linux·运维·ubuntu
梦想的旅途22 小时前
效率革命:实现外部群聊信息的自动化同步方案
运维·自动化
·醉挽清风·2 小时前
学习笔记—Linux—信号阻塞&信号捕捉
linux·笔记·学习