Vim の変数のスコープについて調べたら「わかってない」ということがわかった - sci このような記事を見かけた。具体的にどんなコードで試したのかわらないので具体的なアドバイスはできそうにないが、せっかくので Vim script の変数のスコープについて解説してみるよ。 どんなスコープがあるのか Vim の変数は変数名の接頭子によってスコープが決定します。 接頭子 スコープ g: グローバル b: 現在のバッファにローカル w: 現在のウィンドウにローカル t: 現在のタブページにローカル s: 現在のスクリプトファイルにローカル l: 関数ローカル v: 組み込み変数 接頭子を省略した場合は、 関数内だった場合は l: それ以外ならば g: になります。ただし、count などの一部の変数は互換性の関係で v:count のように組み込み変数として扱われてしまうので注意が必要です。