1 简介

基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode)输入模式(Insert mode)底线命令模式(Last line mode)
image.png

用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下 i,并不会输入一个字符,i 被当作了一个命令。
以下是常用的几个命令:

  • i 切换到输入模式,以输入字符;
  • x 删除当前光标所在处的字符;
  • : 切换到底线命令模式,以在最底一行输入命令。

若想要编辑文本:启动Vim,进入了命令模式,按下 i,切换到输入模式。
命令模式(也称基本模式)只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。下面几乎都在基本模式操作。

2 详解

2.1 移动

h,l,j,k 左右下上
w,b 移动到下/上一个单词
脱离鼠标使用 vim - 图2

2.2 快速退出

普通模式下输入Shift+zz 即可保存退出vim,不保存推出 :q!

2.3 进入插入模式

i 在当前光标处进行编辑
I,A 在行首/末插入
脱离鼠标使用 vim - 图3
a 在光标后插入编辑
o,O 在当前行后/前插入一个新行
cw 删除一个单词,同时进入插入模式
脱离鼠标使用 vim - 图4

2.4 文档编辑

文档编辑的所有命令全部符合一个规律,[操作]+[行号]+定位,三个部分完成一个动作比如:删除操作代码为d,重复操作代码代表操作当前行dd,则删除2行就是 d2d;操作和行号也可以互换位置 2dd,可以省略行号dd代表删除一行,多数时候可以不要操作则代表定位 5G代表移动到第五行。
删除
x 反退格键(delete键) X 退格键
脱离鼠标使用 vim - 图5
dw 删除一个单词(不适用中文)类似于上一节说的 cw,只是删除后还在普通模式
d$ 删除至行尾, d^ 删除至行首
脱离鼠标使用 vim - 图6
dG 删除到文档结尾处
d1G 删至文档首部

  1. 前缀(操作) d代表删除
  2. 中缀:行号
  3. 后缀(定位):d代表行,G代表尽头, $代表行尾,^代表行首,w代表单词

2.5 重复命令

普通模式下输入dd,删除一行,输入 . (小数点)会再次删除一行,除此之外也可以重复其他任意操作
脱离鼠标使用 vim - 图7
使用 dw 删除一个单词,然后用 . 命令重复删除单词操作
脱离鼠标使用 vim - 图8

2.6 游标

游标跳转位置,不过是没有去掉操作后输入的命令。
nG(n Shift+g) 游标移动到第 n 行(如果默认没有显示行号,请先进入命令模式,输入 :set nu 以显示行号)
gg 游标移动到到第一行
G(Shift+g) 到最后一行
脱离鼠标使用 vim - 图9
G代表尽头, $ 代表行尾,^ 代表行首,w 代表下一个单词,b上一个单词,e 当前单词末尾
脱离鼠标使用 vim - 图10
f+字母 向后搜索 字母并跳转到第一个匹配的位置
F+字母 向前搜索 字母并跳转到第一个匹配的位置
脱离鼠标使用 vim - 图11

2.7 复制与粘贴

复制为y ,后可以接定位符,
yy 复制游标所在的整行(3yy 表示复制3行)
y^ 复制至行首,或 y0 , 不含光标所在处字符。y$ 复制至行尾。含光标所在处字符。
脱离鼠标使用 vim - 图12
yw 复制一个单词。
y2w 复制两个单词。
yG 复制至文本末。
y1G 复制至文本开头
脱离鼠标使用 vim - 图13
使用 p 粘贴
p(小写) 代表粘贴至光标后(下)
P(大写) 代表粘贴至光标前(上)

2.8 剪切

我们上面在删除那学到的 d 操作,其实就是剪切,我们使用 ddp 就可以交换上下行。
脱离鼠标使用 vim - 图14

3 小结

到这里是不是文档操作可以直接脱离鼠标了!
移动:h,l,j,k,w,b
跳转:G nG f/F+字母
定位:G代表尽头, $代表行尾,^代表行首,w代表下一个单词,b上一个单词,e当前单词末尾
操作:y d p