一、vi/vim区别

内容 区别
vi 系统自带,不需要额外安装,没有vim功能多.
vim 在最小化安装的版本中默认没有,需要额外安装,vi的升级版(vi imporved),未来大部分情况都是用vim即可.

二、vim基本使用

2.1 打开文件(不存在也ok)

ls -l /oldboy/
vim /oldboy/oldboy.txt

注意:如果文件 不存在会自动创建;如果目录不存在不会创建,会在保存并退出的时候报错

2.2 进入编辑模式

按字母i即可,编辑这个文件

Aspose.Words.b5165c66-97e3-49af-accc-29a89630c49a.084

2.3 退出编辑模式

按 esc键 退出编辑模式

2.4 保存与退出

保存与退出操作:

  • 输入 :wq write(写,保存) quit(退出)

  • :q! 强制退出不保存

  • :wq! 强制退出并保存.

2.5 检查

[root@oldboy-prod ~]# cat /oldboy/oldboy.txt 
oldboylinux.cn  oldboyedu.com 

三、vim的模式转换

  • 命令模式:通过vi/vim打开文件后进入的模式
  • 编辑模式(插入模式): 用于编辑,修改文件内容
  • 底行模式: 保存退出,搜索使用
  • 可视块模式: 用于批量编辑

Aspose.Words.b5165c66-97e3-49af-accc-29a89630c49a.092

四、vim快捷键

4.1 移动光标类快捷键

Vim快捷键 Vim快捷键说明
gg 快速移动到第一行
G 快速移动到最后一行
xxgg(xx表示行号) 快速移动到指定xx行
^ 光标快速移动到行首
$ 光标快速移动到行尾

4.2 复制删除粘贴替换快捷键

Vim快捷键 Vim快捷键说明
yy 复制光标所在行
xxyy(xx表示行号) 复制xx行(从光标所在行开始算起)
dd 删除光标所在行
dG 在vim命令进入文件后删除文件全部内容(建议先执行gg到第一行位置)
xxdd(xx表示行号) 删除xx行(从光标所在行开始算起)
p 粘贴复制的内容(从光标的下一行开始粘贴)
xxp(xx表示重复粘贴的次数) 重复粘贴xx次复制的内容(从光标的下一行开始粘贴)
:%s/将被替换内容/替换后的具体内容/g 全局替换自定义内容

4.3 查看快捷键

Vim快捷键 Vim快捷键说明
:set nu 显示行号
:set nonu 不显示行号
/查看内容 搜索(默认向下查找)
n 继续向下搜索
N 继续向上搜索
u 撤销上传修改行为

4.4 批量操作快捷键

Vim快捷键 Vim快捷键说明
按ctrl + v,选择操作区域,使用d批量删除 批量删除内容
按ctrl + v,选择操作区域,按shift + i (I),进入编辑模式,写入内容后,按Ecs键等待 批量修改内容

4.5 使用案例

案例01 批量删除文件开头的#
按ctrl + v,进入批量操作模式
选择要操作的区域
然后按d,删除.

案例02 批量给文件开头增加内容 #oldboy 
按ctrl + v,进入批量操作模式
选择要操作的区域
选完后,按shift + i (I),进入编辑模式 
写入内容
按esc等待.

五、故障案例

有时候当我们使用vim命令打开文件后,会提示以下内容:

Vim故障案例-1

发生以上情况的场景一般有以下几种:

  • 在编辑文件的时候,服务器异常断电了
  • 多个窗口打开同一文件

针对上面"故障",可以从以下步骤出发:

  • 按q退出
  • 恢复文件(记得wq!)
  • 删除临时文件(一般都是.swp结尾的文件)

详细处理方法如下:

1、按q退出

Vim故障案例-2

2、恢复文件

$ vim -r 111.txt

Vim故障案例-3

按下回车进入文件后,执行wq!进行强制保存

3、删除临时文件后,重新打开即可

$ rm -f .111.txt.swp