一、前言

文本编辑是Linux系统中的一项关键任务,而Vi和Vim是两个强大的文本编辑器,也是Linux用户和系统管理员的首选。本文将深入研究Vi和Vim,探讨它们的功能、使用方法和高级技巧。

二、什么是Vi和Vim

Vi

  • Vi是一个古老而经典的文本编辑器,几乎在每个Linux系统中都可以找到。
  • 系统自带,不需要额外安装,没有vim功能多

Vim

  • Vim是Vi的改进版本,它提供了更多的功能和定制选项。
  • Vim是Linux社区中最受欢迎的文本编辑器之一,也被广泛用于开发和系统管理。

三、Vi和Vim基本使用

3.1 打开文件

假设编辑aaa.txt文件

$ vim aaa.txt

说明:如果aaa.txt文件不存在会自动进行创建

3.2 进入编辑模式

输入字母i即可编辑文件,下面会显示insert字样

Vi和Vim基本使用-1

3.3 退出编辑模式

Esc键退出编辑模式

3.4 保存且退出

保存且退出分为三种情况:

  • :wq 保存退出
  • :q! 强制退出不保存
  • :wq! 强制退出并保存

3.5 检查

使用cat等命令查看修改后的文件

$ cat aaa.txt

3.6 特殊用法

3.6.1 同时编辑多个文件

使用vim命令可以同时编辑多个文件

$ vim a.txt b.txt

具体操作如下:

  • 首先执行上面命令会进入a.txt文件,输入i进入编辑模式,输入完成内容后,执行:wq保存即可
  • 接着输入:n进入下一个文件b.txt(如果是上一个文件,则需要将小写n替换成大写N)
  • 最后输入b.txt相关内容后,执行:wq保存退出即可

四、Vim模式

Vim模式主要分为四种:

  • 命令模式:通过vi/vim打开文件后进入的模式

  • 编辑模式(插入模式):用于编辑,修改文件内容

  • 底行模式:保存退出,搜索使用

  • 可视块模式: 用于批量编辑

五、Vim快捷键

5.1 移动光标类快捷键

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

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

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

5.3 查看快捷键

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

5.4 批量操作快捷键

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