> For the complete documentation index, see [llms.txt](https://dofy.gitbook.io/learn-vim/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dofy.gitbook.io/learn-vim/zh-cn/chapter06.md).

# 第六章：块操作

Visual Block 模式可以选择一个矩形区域，并同时编辑多行的同一列。比如把多行文本变成 数组内容，通常需要给每行同时加上引号和逗号。

> 在下面代码块中搜索 `/^apple$`，确保光标停在 `apple` 的 `a` 上，然后按 `Ctrl-v 4j $ A ', Esc`。其中空格只是为了分组，不需要输入。

```javascript
var myArray = [
apple
banana
cherry
durian
elderberry
];
```

操作拆开来看：`Ctrl-v` 进入 Visual Block 模式，`4j` 向下选中五行，`$` 把每行的 选区扩展到行尾，`A` 在选区右侧同时追加文字。输入 `',` 后，只有第一行暂时可见；按 `Esc` 才会把修改应用到全部选中行。

> 再搜索 `/^apple$`，按 `Ctrl-v 4j I ' Esc` 给五行开头加上单引号。完成后每个水果都 应该形如 `'apple',`。如果选错或输错，按 `u` 可以一次撤销整次块编辑，然后重试。

*注意：`I` 和 `A` 是块编辑中最常用的两个命令；普通的 `i`、`a` 只会作用于当前 光标位置。行长不一致时，先观察选区是否覆盖了你真正想改的列。*

块编辑很适合规则的列操作；如果每一行需要执行多步、但步骤相同，宏通常更合适。

接下来我们说说 [Vim 中的宏](/learn-vim/zh-cn/chapter07.md)。
