Vim 常用命令整理

刘大尉 于 2023-05-17 发布

vi(visual editor)编辑器通常被称为 vi,它是 linux 和 unix 系统上最基本的文本编辑器,类似于 windows 下的 notepad (记事本)编辑器。

vim(vi improved)是vi编辑器的加强版,比 vi 更容易使用。 vi的命令几乎全都可以在 vim 上使用。

vim 一边拿可以通过 yum 或 apt 来进行安装: yum install vim -y/apt install vim -y

vim 编辑器有四种模式: 命令模式:默认处于命令模式。该模式下可以移动光标位置,通过快捷键对文件内容 复制、粘贴、删除。 编辑模式:在命令模式下输入 a 或小写字母可以进入编辑模式,在该模式下可以对文件内容进行编辑 末行模式:输入冒号即可进入末行模式,可以在末行输入命令来对文件进行查找、替换、保存、退出。 可视化模式:可以做一些列选操作(通过方向键选择某些内容,类似于 Windows 鼠标刷黑)

Vim 四种模式的关系

Vim 打开文件:

# vim 文件名称
① 若文件已存在,则直接打开
② 若文件不存在,则vim 编辑器会在内存中创建一个新的

Vim 保存文件

:wq

Vim 编辑器强制退出不保存

:q!

命令模式下 移动光标到首行键入 => gg ,移动光标到末行 键入 => G

☆ 翻屏 向上, ctrl + b (before) 或 PgUp 翻屏向下 , ctrl + f (after) 或 PgDn 向上翻半屏,ctrl + u(up) 向下翻半屏,ctrl + d(down)

快速定位光标到指定行列

行号 + G, 150G 代表 移动光标到150行。

复制 yy 粘贴 :在想要的地方键入 p 键 将粘贴在光标所在行的下一行

从当当前行开始复制指定的行数,如复制 5行,5yy

剪切/删除!

① 剪切/删除 当前光标所在行

按键:dd,粘贴:p

dd 严格意义上说是剪切的命令,但如果剪切了不粘贴就是删除的效果。

② 剪切/删除多行

按键:数字dd ,粘贴:p

③剪切/删除光标所在行的之后的内容,但是删除后下一行不上移。

按键:D

撤销/恢复(!)

撤销:u(undo)

恢复: ctrl + r (取消)之前的撤销操作【重做,redo】

查找/搜索(!)

末行模式下输入 /+ 内容,可以查找,N/n 代表上一个或下一个对象。

输入:noh 【no highlight】取消高亮

文本内容跟替换(!)

👇仅替换光标所在的这一行第一个满足条件的结果
末行模式
:s/要替换的内容/替换后的内容  + 回车

👇替换光标所在行一行所有满足条件的结果 ,g = global
:s/查询内容/替换内容g + 回车

👇针对整个文档某个内容进行替换,只替换每一行中满足条件的第一个结果
:%s/搜索内容/替换内容

👇针对整个文档中的所有关键词进行替换(只要满足条件就进行替换操作)
:%s/替换内容/替换后的内容/g

显示行号
:set nu 【nu = number】,行号
取消行号
:set nonu

paste模式为什么要使用?
在终端 vim 中,发现插入的代码会有多余的缩进,而且会逐行累加。原因是终端把粘贴的文本存入键盘缓存中,Vim则把这些内容作为用户的键盘输入来处理。导致在遇到换行符的时候,如果Vim 开启自动缩进,就会默认把上一行缩进插入到下一行的开头,最终使代码变乱。

在粘贴数据之前,输入下面命令开启 paste 模式
:set paste
粘贴完毕后,输入下面命令关闭 paste 模式
:set nopaste

退出 vim 编辑器
使用:x ,不会修改保存时间。
:wq ,会修改保存时间。

在终端中输入: history 可以查看之前输入的所有命令。