概述(Vi与Vim)
Vi编辑器是所有Unix及Linux系统下标准的编辑器,美国加州大学伯克利分校的Bill Joy所创立 ,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,Vi也是Linux中最基本的文本编辑器。
Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,它是从 vi 发展出来的一个文本编辑器,在Vi的基础上改进和增加了很多特性。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用VIM是自由软件。Vim普遍被推崇为类Vi编辑器中最好的一个。
vi和vim一个最直观的不同在于vim的颜色显示是非常丰富的,而vi是没有任何颜色显示的


你甚至可以给vi定义一个别名为vim,写进/etc/bashrc文件里


工作模式
vi可以分为三种状态,分别是命令模式、插入模式,和末行模式。

命令模式
打开vi编辑器之后默认显示的模式是命令模式,可以进行复制,删除,替换等操作
| 复制相关命令 |
描述 |
| yy |
复制光标所在行 |
| 3yy |
复制光标往下3行,包含光标所在行 |
| yw |
复制光标处的一个单词 |
| 删除相关命令 |
描述 |
| dd |
删除光标所在行 |
| 3dd |
删除光标往下3行,包含光标所在行 |
| dw |
删除光标处的一个单词 |
| x/DEL键 |
删除光标处单个字符 |
| X |
删除光标前一个字符 |
| 粘贴相关命令 |
描述 |
| p |
将复制/删除的行粘贴在光标所在行的下一行 |
| P |
将复制/删除的行粘贴在光标所在行的上一行 |
| 跳转命令 |
描述 |
| gg |
跳转到第一行 |
| G |
跳转到最后一行 |
| 3G |
跳转到第三行 |
| HOME键 |
跳转到行首 |
| END键 |
跳转到行尾 |
| M |
跳转到屏幕中间的行首 |
| 替换相关命令 |
描述 |
| r |
替换光标所在处单个字符,按一下r再按一下需要替换的字符即可 |
| 撤回命令 |
描述 |
| u |
撤回上一次操作 |
| U |
撤回之前所有操作 |
| 搜索命令 |
描述 |
| / |
搜索关键字,从上往下 |
| ? |
搜索关键字,从下往上 |
| n |
定位下一个被查找的字符串 |
| N |
定位上一个被查找的字符串 |
| 切换你到插入模式 |
描述 |
| a |
在光标位置之后输入 |
| A |
在行尾输入 |
| i |
在光标位置之前输入 |
| I |
在行首输入 |
| o |
在光标位置的下一行输入 |
| O |
在光标位置的上一行输入 |
插入模式
末行模式
| 命令 |
描述 |
| wq |
保存并退出 |
| x |
保存并退出 |
| q! |
不保存直接退出 |
| set nu |
显示行号 |
| set nonu |
取消显示行号 |
| set nu! |
取消显示行号 |
| e /etc/profile |
打开新的文件进行编辑 |
| r /etc/profile |
在当前文件中显示其他文件的内容 |
| 查找并替换命令 |
描述 |
| s /old/new |
把old替换成new |
| % |
全文搜索 |
| /g |
全文替换 |
| % s/old/new/g |
在全文范围内搜索old,全部替换成new |
| 1,2s /old/new |
把1-2行的old替换成new |
| s /old/new/c |
每个替换之前向用户提示 |