vi \ vim 是visual interface 的简称, 是linux中的经典文本编辑器, 同图形化界面中的文本编辑器一样, 但是vi是使用命令行来对文本进行编辑的最好选择
vim是vi的加强版本, 兼容vi的所有指令, 不仅可以编辑文本, 而且还具有shell 程序编辑的功能, 可以不同颜色的字体来辨别语法的正确性, 极大地方便了程序的设计和编辑性
简单来说, vi是老师的文字处理器, 不过功能已经非常齐全了, 但是还是有可以进步的地方, vim则可以说是程序开发的一项很好用的工具, 连vim的官方网站自己也说vim是一个程序开发工具, 而不是文字处理软件
vi里面有很多命令, 下面是他的键盘图:
vi \ vim 编辑器的三种编辑模式
- 命令模式: 此模式下所敲的按键编辑器都理解为命令, 此模式下不能自由进行文本编辑
- 输入模式: 也就是文本编辑模式, 插入模式, 此模式下可以自由对文件内容进行编辑
- 底线命令模式: 以: 开始, 通常用于文件的保存 和 退出
vi \ vim 的使用
模式的切换
我们首先在/Home/niceff目录中创建一个hello.txt文本文件:
然后使用vi 来打开这个文件:
使用命令: vi hello.txt (如果这个文件存在, 那么就直接打开这个文件 , 如果没有这个文件 , 就创建一个新的文件)
下面是我们刚开始使用vi打开这个文件的样式, 他刚开始是处于命令模式:
此时我们按下键盘上的i键:
此时我们进入了输入模式, 此时我们就可以编辑文件内容了
例如我们输入: hello world
此时可以通过键盘上的esc键, 退出输入模式, 回到命令模式:
接下来进入底线命令模式:
在命令模式下, 按下 shift + ;键, 也就是输入冒号:, 就会进入底线命令模式:
此时我们输入wq (w表示保存, q表示退出)
于是就保存退出了, 同时我们使用cat命令来查看这个文件的内容是否被修改:
可以看见成功修改了
命令模式下的命令
命令模式下, 敲击键盘的动作会被vi 或者vim是被为目录, 而不是输入字符, 比如我们在目录模式下按下i键, 就会进入输入模式, 而不是输入一个字符, 这个i就被当做了一个命令
以下是命令模式下一些常用命令:
模式 | 命令 | 描述 |
命令模式 | i | 在当前光标位置进入输入模式 |
命令模式 | a | 在当前光标位置之后进入输入模式 |
命令模式 | I | 在当前行的开头进入输入模式 |
命令模式 | A | 在当前行的结尾进入输入模式 |
命令模式 | o | 在当前光标下一行进入输入模式 |
命令模式 | O | 在当前光标上一行进入输入模式 |
输入模式 | esc | 任何情况下输入esc都能会到命令模式 |
一个案例:
我们在Desktop目录下面创建一个test.txt文件, 并写入以下内容:
使用vim + 文件, 使用vim打开文件:
打开的文件内容如下:
当前进入的是命令模式, 在命令模式下, 可以使用键盘的↑↓←→, 也就是上下左右键来控制光标的移动.
当然也可以使用命令模式下的命令键来使光标移动:
- j : 向下移动光标
- k : 向上移动光标
- l: 向右移动光标
- h: 向左移动光标
在命令模式下输入i进入输入模式:
(或者使用下面这些命令)
还有如下命令
对于文本中的内容:
如果我们想搜索里面的内容, 可以在命令模式下点击斜杠 / 进入搜索模式:
例如我们现在要搜索you这个单词:
在finalShell中会以黄色背景来高亮显示, 在CentOS中也是如此:
我们下次打开这个文件的时候, you还是高亮显示, 这个时候就可以键入:noh就可以消除高亮
在命令模式下的小n和大n, 也就是n和N对应着我们平时使用ctrl + f里面的上下箭头:
除了这些命令, 还有这些:
- dd: 删除当前行
- ndd: 删除n行,例如:
上面的命令不一一介绍, 请读者自己实验
删除之后, 可以在命令模式下按下u, 进行撤销(按下u可以切换命令模式)
底线模式
在命令状态, 输入" : " 冒号, 就可以进入底线模式