VI编辑器的三种模式:命令模式、输入模式、末行模式。

1、命令模式:vi启动后默认进入的是命令模式,从这个模式使用命令可以切换到另外两种模式,同时无论在何种模式下,【Esc】键都可以回到命令模式。在命令模式中输入“i”,“insert”都可以进入输入模式编辑文件。
2、输入模式:在这个模式下,可以编辑、修改、输入等编辑工作,在编辑器最后一行显示一个“--INSERT--”标志着vi进入了输入模式。当我们完成修改输入等操作的时候我们需要保存文件,这是我们需要先返回命令模式,在进入末行模式保存。
3、末行模式:在命令模式输入“:”即可进入该模式,在末行模式中有很多好用的命令。

VI编辑操作:

进入输入模命令:

- i 插入命令
- a 附加命令
- o 打开命令
- c 修改命令
- r 取代命令
- s 替换命令
- Esc 退出命令

行号操作:

- :set nu 显示所有行号
- :nu 显示当前行号
- :m 定位到第m行

删除操作:(命令模式使用):

- x 删除光标处的单个字符
- dd 删除光标所在的行
- dw 删除当前字符到单词尾包括空格的所有字符
- *x 例如3x删除光标处向右的三个字符
- *dd 例如3dd从当前行开始向下删除三行文本

撤销操作:

- u 取消最近一次的操作,可以使用多次来恢复原有的操作
- U 取消所有操作
- Ctrl+R 可以恢复对使用u命令的操作

复制操作:

- yy 复制当前整行内容到vi缓冲区
- yw 复制当前光标所在位置到单词尾字符的内容到vi缓冲区,相当于复制一个单词
- y$ 复制光标所在位置到行尾内容到缓冲区
- y^ 复制光标所在位置到行首内容到缓冲区
- *yy 例如5yy就是复制5行
- #yw 例如2yw就是复制两个单词
- 如果要复制第m行到第n行之间的内容,可以在末行模式中输入m,ny例如5,8y复制第5行到第8行到缓冲区

查找和替换:

vi的查找和替换功能主要在命令模式下完成:

查找操作:

- 至上而下的查找
- / 要查找的字符串,其中/代表从光标的位置开始查找,例如:/work
- 至下而上的查找
- ?要查找的字符串,例如:?work

替换操作:

- :s/old/new 用new替换行中首次出现的old
- :s/old/new/g 用new替换行中所有出现的old
- :m,n s/old/new/g 用new替换从第m行到第n行中出现的old
- :%s/old/new/g 用new替换整编中出现的old
- 如果替换的范围较大时,在所有的命令尾加一个c命令,强制每个替换需要用户进行确认,例如:s/old/new/c或s/old/new/gc

恢复文件操作:

vi在编辑某一个文件时,会生成一个临时文件,这个文件以 . 开头并以.swp结尾。正常退出该文件自动删除,如果意外退出例如忽然断电,该文件不会删除,我们在下次编辑时可以选择以下命令处理:
- O 只读打开,不改变文件内容
- E 继续编辑文件,不恢复.swp文件保存的内容
- R 将恢复上次编辑以后未保存文件内容
- Q 退出vi
- D 删除.swp文件或者使用 vi -r 文件名 来恢复未保存的内容

最新文章

  1. EXD_BAD_ACCEEE
  2. PHP与Golang如何通信?
  3. [源码]String StringBuffer StringBudlider(1String部分)
  4. delphi 事件和属性的绑定
  5. ecshop /includes/init.php Arbitrary User Login Vul
  6. 体验Java的封装性
  7. python 练习 7
  8. Delphi调用外部程序函数:WinExec() 和ShellExecute详解
  9. 2013 ACM 通化邀请赛 A. Tutor
  10. Android动画Animation之Tween用代码实现动画
  11. [译]JavaScript 错误和处理
  12. 导入cocos2d-x samples android官方示例
  13. 进程显示,删除,调度 ps, top kill
  14. C# 解析js方法,并调用js方法
  15. Collection子接口(List/Set/Queue/SortedSet)
  16. SignalR系列教程:在MVC5中使用SignalR
  17. SpringBoot Test集成测试
  18. Windows 桌面和文件夹的右键->打开命令行窗口
  19. linux_shell 编程学习-初识she'll
  20. 8. Security-oriented operating systems (面向安全的操作系统 5个)

热门文章

  1. js去除重复项
  2. SpingCloud微服务架构学习(二)之Actuator监控
  3. jQuery中表单的常用操作(全选、反选)
  4. html meta标签实现页面跳转
  5. mongodb客户端操作常用命令
  6. iDempiere 使用指南 销售发货流程
  7. Android - 开发页面需了解的dip,sp,px知识,以及它们的转换
  8. [转]Android解析json数据
  9. iis 7 操作 .net
  10. 2019.03.02 ZJOI2019模拟赛 解题报告