你可能會驚訝地發現,作為一本關于編程語言的書,在前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段移動
- 外部命令
- 自動加載
- 文檔
- 發布
- 還剩下什么?