VimScript学习笔记(7):条件判断、比较和循环

编程语言必须要有条件判断功能。Vim中的语法是if...endif

基本的条件判断

下面的代码中,Vim会输出ONE而不会输出ZERO

没什么难的,前文中我们已经提到Vim的真值是1,假是0.

再尝试下面的代码。

Vim不会输出“INDEED”,但是会输出“WHAT”。这是为什么呢?请再测试下面的代码。

结果分别是10,20,10. 这是因为,Vim会在必要的时候进行类型转换,string转换成int,想必规则可以从上面的代码猜出来了。我就不说了:)

Vim也支持elseif(注意没有空格)else,像Python一样/不过不要忘记最后的endif。

结果是"finally"

比较

比较很简单,和Python没有什么不同。

string的比较要格外注意。==是依赖于用户设置的。

这里走的是elseif,因为不忽略大小写。

因此,我们永远不能依赖用户设置。这里推荐的做法和npremap vs map一样,建议不用使用==,而使用==?(忽略大小写)和==#代替(大小写敏感)。

循环

循环在VimScript中并不常用,因为使用normal!几乎可以满足我们所有的需求。为了万一在以后会用到,这里也提一下。

VimScript支持for循环和while循环。

for循环是for-each风格的循环。

While循环和别的编程语言几乎是一样的。

 

Leave a comment

电子邮件地址不会被公开。 必填项已用*标注