学习背景
运维工作中最基础的工作就是要修改与设定重要服务的配置文件,因此学会一种文件编辑器非常重要。在linux系统中都会内置一个编辑软件vi(visual editor)。
学习目标
- 能够熟练在三种模式之间切换
- 掌握三种模式下常用的操作
一、vim编辑器概述
1、vi
Visual editor编辑器通常备简称为vi,是linux系统中内置的一个功能非常强大的编辑器软件,就像window是中的notepad(记事本)一样,但是功能比notepad强大的多。
2、vi与vim
vim是vi的加强版。增加了高亮显示,查找高亮等功能,比vi使用更便捷高效。
3、vim学习重点
模式切换、复制、剪切、粘贴、删除、查找、替换等
二、vim编辑器三种模式
1、三种模式
命令模式:控制光标移动,可对文本进行删除、复制、粘贴等操作
末行模式:保存、替换、退出等操作
编辑模式:文本录入
2、模式切换

3、vim打开文件的四种方式
重点掌握前三种
1、第一种
# vim 文件路径 作用:打开指定文件,如果文件不存在,自动创建该文件(保存之后才创建)
[root@itcast ~]# vim readme.txt
提前补充:如何退出vim编辑器
按:q,在按回车。含义::表示进入末行模式,q代表退出指令,回车执行指令。(注意必须是英文输入法状态,且区分大小写)

2、第二种
vim +数字 文件路径 作用:打开指定文件,并且将光标移动到指定行
[root@itcast ~]# vim +3 anaconda-ks.cfg
3、第三种
vim +/关键字 文件路径 作用:打开指定文件,高亮显示关键字,光标移动到关键字第一次出现位置所在行,第二次打开这个文件,光标会移动到关键字第二次出现所在行,以此类推。这是vim比vi多的功能。
[root@itcast ~]# vim +/part anaconda-ks.cfg
4、第四种
vim 文件路径1 文件路径2 文件路径3 … 作用:同时打开多个文件
[root@itcast ~]# vim hello.txt readme.txt
| 多文件编辑的按键 | 作用 |
|---|---|
| :n | 编辑下一个文件 |
| :N | 编辑上一个文件 |
| :files | 列出目前这个vim开启的所有文件 |
三、命令模式
1、进入命令模式
运行vim编辑器后,默认就是”命令模式“
2、命令模式常用命令
| 命令 | 作用 |
|---|---|
| dd | 删除(剪切)光标所在整行 |
| 5dd | 删除(剪切)从光标处开始的5行 |
| yy | 复制光标所在整行 |
| 5yy | 复制从光标处开始的5行 |
| p | 将之前删除(dd)或复制(yy)过的数据粘贴到光标后 |
| /字符串 | 在文本中从上至下搜索该字符串 |
| ?字符串 | 在文本中从下至上搜索该字符串 |
| n | 显示搜索命令定位到的下一个字符串 |
| N | 显示搜索命令定位到的上一个字符串 |
| u | 撤销上一步操作,可以对比Ctrl + z |
| ctrl + r | 恢复(取消撤销的操作,r:redo)可以对比Ctrl+y |
| gg | 光标移动到首行行首 |
| G | 光标移动到末行行首 |
四、末行模式
1、进入末行模式
进入方式:在命令模式下,按下: 进入末行模式
退出方式:
- 按下
Esc键 - 连按2次
Esc快速退出 - 删除末行模式下全部输入的字符
2、末行模式常用命令
| 命令 | 作用 |
|---|---|
| :w | 保存 |
| :q | 退出 |
| :q! | 强制退出(放弃对文本内容的修改) |
| :wq | 保存退出 |
| :set nu | 显示行号 |
| :set nonu | 不显示行号 |
| :整数 | 跳转到该行 |
| :x | 保存退出。和wq区别是:如果文件没有修改,wq修改时间会更新,x只在文件修改的情况下才更新文件修改时间 |
注意:
在命令行模式与末行模式中,所有的命令都区分大小写,且必须是英文输入法状态
五、编辑模式
1、进入编辑模式:
在命令模式下,
按i:insert, 在光标所在字符前开始插入
按a:after,在光标所在字符串后开始插入
按o:在光标所在行的下面另起一新行插入
注意:
编辑模式和末行模式之间不能直接进行切换,需要通过命令模式转换
2、退出编辑模式
退出方式:按下Esc,退回到命令模式
六、实用功能
1、vim配置显示行号
1、临时显示
[root@itcast ~]# vim readme.txt

2、针对用户的个人配置
# 在用户家目录配置.vimrc,如果没有直接创建[root@itcast ~]# vim ~/.vimrc# 添加以下命令,保存退出set nu
3、全局配置
# 打开vim全局配置文件[root@itcast ~]# vim /etc/vimrc# 在最后一行添加以下命令,保存退出set nu
2、异常退出
1、什么是异常退出
在编辑文件之后没有正常得去保存退出,而是直接退出终端的情况,会出现下面的效果:

2、异常退出解决
将交换文件删除
[root@itcast ~]# rm -f .readme.txt.swp
3、别名机制
1、创建别名
作用:创建属于自己的命令
配置文件:~/.bashrc
# 打开.bashrc文件[root@itcast ~]# vim .bashrc# 添加一个cls别名,用于清屏

提示:
起得别名,一定不要是系统已经支持的命令
2、让别名生效
[root@itcast ~]# source ~/.bashrc
3、课堂练习
给root用户创建一个指令cout,实现运行cout之后统计当前目录下有多少个文档(包含隐藏文档)
[root@itcast ~]# ls -a | wc -l
七、vim案例
- 在/root目录下创建一个vitest目录
- 进入vitest目录
- 将/etc/password复制到本目录下
- 用vim打开password文件
- 使用命令移动到12行
- 复制12行内容到16行下面
- 删除最后一行
- 撤销删除
- 剪切倒数第二行到正数第二行
