介绍 Vim 三种操作模式和文本编辑命令。包括 Vim 插入模式插入字符,行尾、行首插入,删除一个字符和删除整行命令,Vim 复制和粘贴命令,Vim 替换输入以及撤销和反撤销命令,Vim 保存和另存为文件,显示 Vim 当前编辑文件名等。

我们使用编辑器的常用文件操作主要是:插入删除复制粘贴替换撤销保存另存为

在介绍 Vim 上述基本文件操作命令前,需要先介绍下 Vim 的操作模式。因为 Vim的各种文件操作命令需要在不同操作模式下使用

一、Vim三种操作模式

Vim编辑器常用的操作模式一共有 3 种,分别为普通模式(默认)、插入模式命令行模式。这 3 种模式的转换关系如下图所示。

vim三种模式

推荐阅读 Vim 5种操作模式详解及切换方法Vim 替换模式和虚拟替换模式获取更多关于 Vim 模式相关的介绍。

1.1 普通模式 (Normal mode)

Vim 普通模式是 Vim 的默认操作模式,当使用 Vim 命令打开一个文件时,默认进入的就是普通模式。不管用户处于何种模式,只要按下 Esc 键就可回到普通模式。

1.2 插入模式 (Insert mode)

只有在 Vim 插入模式 (也称编辑模式 (input mode))下,才能将键盘键入的内容输入到当前打开的文件中。

在 Vim 普通模式下输入插入命令 i (insert)、附加命令 a (append)、打开命令 o(open)、修改命令 c(change)、取代命令 r 或替换命令 s 等都可以进入插入模式。

1.3 命令行模式 (Command mode)

Vim 命令行模式 (也称尾行模式(last line mode)) 主要用于保存文件或退出Vim,同时也可以设置编辑环境和一些编译工作,如列出行号(set nu)、寻找字符串(/target)等。

在 Vim 普通模式下按冒号键 : 即可进入命令行模式下,此时 Vim 会在显示窗口的最后一行显示一个 : 作为 Vim 命令行模式的提示符,等待用户输入命令。

二、Vim文本编辑命令

2.1 插入

普通模式下按以下按键可进入插入模式,执行插入操作,具体包括:

  1. 从光标当前所在位置的【】一个字符处开始插入:i
  2. 从光标当前所在位置的【】一个字符处开始插入:a

  3. 从光标当前所在行的【行首】处开始插入:I

  4. 从光标当前所在行的【行尾】处开始插入:A

  5. 从光标当前所在行的【下一行】处开始插入:o

  6. 从光标当前所在行的【上一行】处开始插入:O

2.2 删除

普通模式下按以下按键可执行删除操作,具体包括:

  1. 删除光标位置的【一个】字符:x
  2. 删除当前光标所在【】:dd

  3. 删除从光标所在位置到当前【行首】的内容:d0

  4. 删除从光标所在位置到当前【行尾】的内容:d$

  5. 删除从光标所在位置到当前【单词结束】部分的内容并进入插入模式:cwcW

  6. 删除从光标所在位置到当前【单词开始】部分的内容并进入插入模式:cbcB

  7. 删除从光标所在位置到当前【单词结束】部分的内容但进入插入模式:dwdW

  8. 删除从光标所在位置到当前【单词开始】部分的内容但进入插入模式:dbdB

:

(1) Vim的命令中,0 表示行首,$ 表示行尾,更多内容可参考Vim教程网上的Vim操作范围、文件范围介绍
(2) w (word)、b (back)命令用于光标移动,具体可参考vim教程网(https://vimjc.com)上的博客:vim光标移动命令汇总
(3) cWcBdWdB 命令操作的单词是以空白字符 (空格、Tab) 分隔的字符串。

  1. 删除当前【句子】从光标位置开始到【句末】的内容:d)
  2. 删除当前【句子】从光标位置开始到【句首】的内容:d(

  3. 删除当前【段落】从光标位置开始到【段末】的内容:d}

  4. 删除当前【段落】从光标位置开始到【段首】的内容:d{

:Vim命令中用 () 表示句子,{} 表示段落。

2.3 复制、粘贴

普通模式下按以下按键可执行复制、粘贴操作,具体包括:

  1. 复制从光标所在位置到当前【单词结束】部分的内容:yw
  2. 复制光标所在【】的所有字符 (包含换行符):yy

  3. 将最后一次删除或复制操作的文本内容粘贴到光标所在字符之【】:p

  4. 将最后一个删除或复制操作的文本内容粘贴到光标当前字符之【】:P

yyp 操作可以实现复制一整行内容到当前所在行的下一行。

2.4 替换

普通模式下按以下按键后,再输入字符可替换原始文件中的内容。

  1. 替换光标当前所在字符一次r
  2. 一直替换光标所在字符,直到按下[ESC]键为止:R

删除、复制操作的操作单位可以加操作次数,操作对象的范围为:操作次数 * 操作单位。

例如d3w 命令表示删除三个单词,10dd 命令表示从光标所在行开始删除后面的十行,更多内容可以参考Vim中的操作符和动作命令

2.5 撤销、反撤销

普通模式下可执行撤销操作,具体包括:

  1. 撤销最近的一次操作:u

  2. 恢复最近的一次操作(取消撤销):<Ctrl-r> (表示同时按下 Ctrl 键和 r 键)

:多次执行 u 命令可以连续撤销最近的操作。

2.6 保存

命令行模式下执行以下命令可保存当前编辑的文件内容

  1. 保存当前编辑的文件::w
  2. 保存当前编辑的文件并退出vim::wq
  3. 强制将当前编辑的文件保存::w!

推荐阅读《Vim 怎么保存文件》获取更多关于使用 Vim 保存文件的方法。

2.7 另存为

命令行模式下执行命令 :write a.txt 可将 Vim 当前打开的文件另存为新文件 a.txt。

此外,:saveas b.txt (缩写形式 :sav a.txt) 也可将当前打开的文件另存为新文件 a.txt。

2.8 显示当前文件名

Vim 普通模式下,组合命令 <Ctrl-g> 可显示当前编辑文件名及行数,可以在不退出 Vim 的情况下了解当前编辑文件的信息,更多内容,可参考30个Vim常用命令和使用技巧


Vim入门级文件编辑命令就先介绍到这里了,更多 Vim 文件编辑命令和 Vim 相关操作可阅读 Vim教程网 上的其他博客。

《女程序员说》

原创不易,希望能给小女子的公众号加个关注~