Vimscript编程指南

e### 变量作用域

如果你之前是用python或者ruby之类的动态语言的话,那么你现在对vim脚本的变量会觉得很熟悉。除了大部分和你预料的都相同之外,vim添加了一个不同点:作用域。

在两个窗口里分别打开一个缓冲文件,在其中一个窗口里运行下面的命令:


     :let b:hello = "world"
     :echo b:hello

正如你所预料的,vim会输出"world"。现在切换到另外一个窗口,运行下面的命令:

:echo b:hello

这时vim会抛出一个错误,说是找不到这个变量

当我们在变量名前面加:b时,相当于告诉vim变量hello是属于当前缓冲区的一个局部变量。

Vim变量有很多不同的作用域,但是在学习其他作用域之前我们先要学习更多的vim脚本。现在,只要记住,当变量名前面有一个字符加分号做前缀时,就表示它是变量的作用域。

练习

  • 浏览变量作用域的列表,在:help internal-variables里。不用担心,如果你不知道它们的意义的话,只需要看看,并有个映像就可以了。