你可能会惊讶地发现,作为一本关于编程语言的书,在前35章里我们压根就没有提到循环! Vimscript提供了非常多的方式操作文本(比如,`normal!`), 因此循环并不像在其他大多数语言中的那么必要。
即使如此,总有一天你会需要用到它的,所以现在让我们探讨Vim支持的两种主要的循环。
## For循环
第一种循环是`for`循环。如果你习惯了Java,C或Javascript中的`for`循环,它看上去有点古怪。 但是你会发现这种写法十分地优雅。执行下面的命令:
~~~
:let c = 0
:for i in [1, 2, 3, 4]
: let c += i
:endfor
:echom c
~~~
Vim显示`10`,就是把列表中的每一个元素的加起来的结果。Vimscript的`for`循环遍历整个列表 (或我们待会会提到的字典)。
Vimscript中不存在C风格的`for (int i = 0; i < foo; i++)`。这一开始可能难以适应, 但一旦习惯你就不会再怀念C风格的for循环了。
## While循环
Vim也支持经典的`while`循环。执行下面命令:
~~~
:let c = 1
:let total = 0
:while c <= 4
: let total += c
: let c += 1
:endwhile
:echom total
~~~
Vim再次显示`10`。几乎每一个程序猿都熟悉这个循环,所以我们不会浪费时间讲解。 你将会很少用到它。铭记它以备不时之需。
## 练习
阅读`:help for`.
阅读`:help while`.
- 前言
- 鸣谢
- 预备知识
- 打印信息
- 设置选项
- 基本映射
- 模式映射
- 精确映射
- Leaders
- 编辑你的Vimrc文件
- Abbreviations
- 更多的Mappings
- 锻炼你的手指
- 本地缓冲区的选项设置和映射
- 自动命令
- 本地缓冲区缩写
- 自动命令组
- Operator-Pending映射
- 更多Operator-Pending映射
- 状态条
- 负责任的编码
- 变量
- 变量作用域
- 条件语句
- 比较
- 函数
- 函数参数
- 数字
- 字符串
- 字符串函数
- Execute命令
- Normal命令
- 执行normal!
- 基本的正则表达式
- 实例研究:Grep 运算符(Operator),第一部分
- 实例研究:Grep运算符(Operator),第二部分
- 实例研究:Grep运算符(Operator),第三部分
- 列表
- 循环
- 字典
- 切换
- 函数式编程
- 路径
- 创建一个完整的插件
- 旧社会下的插件配置方式
- 新希望:用Pathogen配置插件
- 检测文件类型
- 基本语法高亮
- 高级语法高亮
- 更高级的语法高亮
- 基本折叠
- 高级折叠
- 段移动原理
- Potion段移动
- 外部命令
- 自动加载
- 文档
- 发布
- 还剩下什么?