LoginSignup
11
4

More than 3 years have passed since last update.

Vim の変数スコープについて簡単に調べた

Posted at

はじめに

Vim Script を書いているときに、let s:hoge というような変数定義を書くことがあると思います。その時の変数の前置子につけるアルファベットの意味をいつも忘れてしまうので、まとめておこうと思います。

そもそも変数の前置子につけるアルファベットは何か

Vim のマニュアルを調べてみると、変数のスコープを指定するもののようでした。以下、マニュアルを引用します。

前置子の種類 前置子 スコープ
buffer-variable b: 現在のバッファにローカル
window-variable w: 現在のウィンドウにローカル
tabpage-variable t: 現在のタブページにローカル
global-variable g: グローバル
local-variable l: 関数にローカル
script-variable s: :sourceされたVim scriptにローカル
function-argument a: 関数の引数(関数内のみ)
vim-variable v: グローバル、Vimがあらかじめ定義

例えば変数のスコープをグローバルにした場合、他のプラグインからもアクセスできるため、他の変数との衝突は気にする必要がありそうです。

Vim Script 内でのみアクセスできる変数の場合は、スクリプトローカルを意味する s: をつければ良さそうです。

調べていて面白いなと思ったのは、バッファ、ウインドウ、タブページ内でローカルな変数を定義できることでした。他のバッファ、ウインドウ、タブに影響を与えないようにする変数も定義できるのは便利ですね。

おわりに

普段と違う文法については、意味を知ってから使うほうが楽しいと思うので、引き続き調べていこうと思います。

参考

11
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
4