vi 编辑器入门到高级

  • [vi 编辑器的初级用法](#vi 编辑器的初级用法)
    • [vi 编辑器的工作模式](#vi 编辑器的工作模式)
      • [1. 命令模式](#1. 命令模式)
      • [2. 文本输入模式](#2. 文本输入模式)
      • [3. 状态行](#3. 状态行)
      • [vi 工作模式切换](#vi 工作模式切换)
      • 存储缓冲区
    • [vi 编辑器命令](#vi 编辑器命令)
      • [1. 启动 vi](#1. 启动 vi)
      • [2. 文本输入](#2. 文本输入)
      • [3. 退出 vi](#3. 退出 vi)
      • [4. 命令模式下的 光标移动](#4. 命令模式下的 光标移动)
      • [5. 命令模式下的 文本修改](#5. 命令模式下的 文本修改)
      • [6. 从 命令模式 进入 文本输入模式](#6. 从 命令模式 进入 文本输入模式)
      • [7. 搜索字符串](#7. 搜索字符串)
      • [8. vi 在线帮助文档](#8. vi 在线帮助文档)
  • [vi 编辑器的高级用法](#vi 编辑器的高级用法)

vi 编辑器的初级用法

UNIX 中的编辑器(文本编辑器)分为两类:行编辑器、全屏编辑器。

vi 编辑器的工作模式

1. 命令模式

  • 这是启动后默认的模式;
  • 所有输入都被解释为命令,不显示但是被执行。
  • 通过按键删除字、行、段,移动光标以及执行其他操作。
  • ex 命令:按下冒号,在编辑器最后一行(状态行)输入命令,回车结束命令输入,执行命令。

2. 文本输入模式

  • 键盘输入文本字符,屏幕显示用户输入。

3. 状态行

屏幕最底部的一行叫做 状态行,

  • 用于反馈用户操作结果,错误/其他信息在状态行显示;
  • ex 命令也是在状态行实现。

vi 工作模式切换

  • 用户启动 vi 时,默认是命令模式
  • 在命令模式下,输入 iIaAoO 中的任意一个字母,即可进入文本输入模式;
  • 在文本输入模式下编辑文本信息 ,编辑完后,按下 esc 即可回到命令模式;
  • 在命令模式下,输入 ,就可以在状态行输入相应 ex 命令;如果是一般命令,命令执行后返回到命令模式,如果是 wqqq! 则退出 vi。

存储缓冲区

vi 编辑器命令

1. 启动 vi

  • 直接在命令行 $ vi ,打开一个空白文件,处于命令模式,当输入完文本退出时必须保存到指定文件,否则不允许退出。
  • :w myfile ,将输入的文本(缓冲区内容)保存到 myfile 中。
  • :wq myfile ,保存文件并退出 vi。
  • 另一种 $ vi myfirst ,如果文件 myfirst 不存在,则创建一个空白文件,状态行显示 [New File]。如果 myfirst 已经存在,则显示文件文本信息,显示光标位置 行,列

2. 文本输入

3. 退出 vi

在文本输入模式下,按下 ESC 进入命令模式,按 :wq 或者 :x 或者 ZZEnter,表示 保存文件后退出

【总结】命令模式下退出 vi 的方式如下:

4. 命令模式下的 光标移动

5. 命令模式下的 文本修改

dd 是删除光标所在行,数字 + dd 是删除多行,dw 是删除光标所在的单词。

6. 从 命令模式 进入 文本输入模式

【理解】iinsert(插入,"插队"),aappend(紧跟着),所以 i 在光标左侧,a 在光标右侧。

7. 搜索字符串

  • 可以用 / 后跟要找的字符串,如 /Linux,表示向后查找;
  • 之后 n 命令表示将光标移动到下一个 与命令搜索方向相同 的匹配字符串 N 命令表示将光标移动到下一个 与搜索方向相反 的匹配字符串。
  • 也可以使用 ?,表示向前查找;
  • nN 同上。

8. vi 在线帮助文档

命令模式下,:help,即可调出 vi 的在线帮助文档。

vi 编辑器的高级用法

$ vimdiff file1 file2 :对比两个文件的标准格式。

vi 启动选项

只读选项

命令格式:$ vi -R filename$ vi -view filename只读形式打开,可阅读不可修改。

退出 vi 用 :q

相关推荐
AGI学习社几秒前
2024中国排名前十AI大模型进展、应用案例与发展趋势
linux·服务器·人工智能·华为·llama
H.2021 分钟前
centos7执行yum操作时报错Could not retrieve mirrorlist http://mirrorlist.centos.org解决
linux·centos
9毫米的幻想1 小时前
【Linux系统】—— 编译器 gcc/g++ 的使用
linux·运维·服务器·c语言·c++
helloliyh1 小时前
Windows和Linux系统安装东方通
linux·运维·windows
van叶~3 小时前
Linux探秘坊-------4.进度条小程序
linux·运维·小程序
秋风&萧瑟3 小时前
【数据结构】顺序队列与链式队列
linux·数据结构·windows
我科绝伦(Huanhuan Zhou)3 小时前
Linux 系统服务开机自启动指导手册
java·linux·服务器
hunter2062065 小时前
ubuntu终端当一段时间内没有程序运行时,自动关闭终端。
linux·chrome·ubuntu
代码讲故事7 小时前
从Windows通过XRDP远程访问和控制银河麒麟ukey v10服务器,以及多次连接后黑屏的问题
linux·运维·服务器·windows·远程连接·远程桌面·xrdp
qq_243050799 小时前
irpas:互联网路由协议攻击套件!全参数详细教程!Kali Linux入门教程!黑客渗透测试!
linux·网络·web安全·网络安全·黑客·渗透测试·系统安全