如果你之前用過像Python或者Ruby之類的動態語言,現在你可能已經熟悉了Vim腳本的變量。你會發現Vim變量的大部分內容跟你想的一樣,不過有一個東西可能會不同,那就是變量的作用域。
在兩個分隔的窗口中分別打開兩個不同的文件,然后在其中一個窗口中執行下面的命令:
~~~
:let b:hello = "world"
:echo b:hello
~~~
如你所愿,Vim會顯示`world`。現在切換到另外一個緩沖區再次執行`echo`命令:
~~~
:echo b:hello
~~~
這一次Vim會拋出一個無法找到變量的錯誤,
當你在變量名中使用`b:`,這相當于告訴Vim變量`hello`是當前緩沖區的本地變量。
Vim有很多不同的變量作用域,不過在使用其他類型變量作用域之前我們需要先學習更多Vim腳本編程的知識。就目前而言,你只需要記住當某個變量由一個字符和冒號開頭,那么這就表示它是一個作用域變量。
## 練習
瀏覽`:help internal-variables`中的作用域列表。先看看,熟悉熟悉,即使有不明白的地方也沒關系。
- 前言
- 鳴謝
- 預備知識
- 打印信息
- 設置選項
- 基本映射
- 模式映射
- 精確映射
- Leaders
- 編輯你的Vimrc文件
- Abbreviations
- 更多的Mappings
- 鍛煉你的手指
- 本地緩沖區的選項設置和映射
- 自動命令
- 本地緩沖區縮寫
- 自動命令組
- Operator-Pending映射
- 更多Operator-Pending映射
- 狀態條
- 負責任的編碼
- 變量
- 變量作用域
- 條件語句
- 比較
- 函數
- 函數參數
- 數字
- 字符串
- 字符串函數
- Execute命令
- Normal命令
- 執行normal!
- 基本的正則表達式
- 實例研究:Grep 運算符(Operator),第一部分
- 實例研究:Grep運算符(Operator),第二部分
- 實例研究:Grep運算符(Operator),第三部分
- 列表
- 循環
- 字典
- 切換
- 函數式編程
- 路徑
- 創建一個完整的插件
- 舊社會下的插件配置方式
- 新希望:用Pathogen配置插件
- 檢測文件類型
- 基本語法高亮
- 高級語法高亮
- 更高級的語法高亮
- 基本折疊
- 高級折疊
- 段移動原理
- Potion段移動
- 外部命令
- 自動加載
- 文檔
- 發布
- 還剩下什么?