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

百分号(%)表示所有行

还可以用:

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

相关推荐
西风未眠1 小时前
高效编辑之vi/vim常用快捷键汇总
linux·编辑器·vim
_Stellar1 小时前
Linux 服务器管理 根目录文件夹权限设置 基于用户组实现安全共享
linux·服务器·安全
LUCIFER2 小时前
驱动开发:详细分析 DTB、DTS、DTSI、DTBO 的区别、用途及它们之间的关系
linux·服务器·驱动开发
温轻舟3 小时前
Python自动办公工具01-Excel文件编辑器
开发语言·python·编辑器·excel·温轻舟
BullSmall3 小时前
Test Matrix:测试矩阵(IT 领域定义 + 设计实践 + 华为场景应用)
运维·服务器
liuyao_xianhui3 小时前
版本控制器git--gdb/cgdb
linux·运维·服务器·git
CS_浮鱼3 小时前
【Linux进阶】mmap实战:文件映射、进程通信与LRU缓存
linux·运维·c++·缓存
chuxinweihui4 小时前
应用层协议 HTTP
linux·服务器·网络·网络协议·http
xu_yule4 小时前
Linux_16(多线程)信号量+基于环形队列的生成消费模型+自选锁+读写锁
linux·运维·服务器
行初心4 小时前
uos基础 systemctl 查看unit的详细配置
运维