# Vim技巧(一)

## 认识 `.` 命令

`.` 命令简单来说是"重复上次修改",事实上"上次修改"可以指很多东西,一次修改的单位可以是字符,整行甚至是整个文件.

使用下面这段文本进行说明:

```
Line one
Line two
Line three
Line four
```

`x` 命令会删除光标下的字符,在这种情况下使用 `.` 命令"重复上次修改"时,就会让Vim删除光标下的字符:

| 按键操作    | 缓冲区内容        |
| ------- | ------------ |
| {start} | **L**ine one |
| `x`     | **i**ne one  |
| `.`     | **n**e one   |
| `...`   | **o**ne      |

我们可以输入几次 `u` 撤销上述修改,使文档恢复到初始状态.

`dd` 命令也做删除操作,但它会把整行一起删掉.如果在 `dd` 后使用 `.` 命令,那么 “重复上次修改”会让 Vim 删除当前行.

最后, `>G` 命令会增加从当前行到文档末尾处的缩进层级.如果我们在此命令后使 用 `.` 命令,那么“重复上次修改”会让 Vim 增加从当前行到文档末尾的缩进层级.

`x` 、`dd` 以及 `>` 命令都是在普通模式中执行的命令,不过,每次我们进入插入模式时,也会形成一次修改.从进入插入模式的那一刻起(例如,输入 `i` ),直到返回普通模式时为止(输入 `<Esc>` ),Vim 会记录每一个按键操作.做出这样一个修改后再用 `.` 命令的话,它将会重新执行所有这些按键操作.

参考书 :《Vim实用技巧》 |
