「vimスクリプトの変数」の版間の差分
提供: neovim/vim入門
(ページの作成:「vimの変数は、宣言なく利用でき、スコープがあり、型はあるがPHPっぽく使用できます。 '''読み方''' ;変数:へんすう __TOC__ ==...」) |
|||
(同じ利用者による、間の1版が非表示) | |||
行91: | 行91: | ||
echo a:bar | echo a:bar | ||
endfunction | endfunction | ||
+ | </syntaxhighlight> | ||
+ | == 変数の値を表示する == | ||
+ | echo コマンドでメッセージとして、変数の値を表示できます。 | ||
+ | <syntaxhighlight lang="vim"> | ||
+ | :let foo = 'hoge' | ||
+ | :echo foo | ||
+ | </syntaxhighlight> | ||
+ | == 変数の定義されているかを確認する方法 == | ||
+ | exists()を使うと変数が定義されているか確認できます。 | ||
+ | |||
+ | 変数 foo が存在している確認する方法は、以下の通りです。 | ||
+ | <syntaxhighlight lang="vim"> | ||
+ | :echo exists('foo') | ||
+ | </syntaxhighlight> | ||
+ | 以下のように表示されます。 | ||
+ | ;1:存在してる | ||
+ | ;0:存在していない | ||
+ | <syntaxhighlight lang="vim"> | ||
+ | :echo exists('foo') " 0 | ||
+ | :let foo = 1 | ||
+ | :echo exists('foo') " 1 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== 関連項目 == | == 関連項目 == |
2014年12月31日 (水) 18:30時点における最新版
vimの変数は、宣言なく利用でき、スコープがあり、型はあるがPHPっぽく使用できます。
読み方
- 変数
- へんすう
概要
- 変数宣言はない
- 変数には、型があるが、型宣言をするわけではない。変数には、PHP っぽく値を代入できる。
- letコマンドで変数に値を代入し、unletで変数を削除する
- 変数には、スコープがある
変数の宣言
vimスクリプトの変数には、宣言は必要ありません。変数は、値をセットできます。変数の型は、いくつもありますが、C言語のように変数の型を宣言せず、PHPのように変数になんでも代入するモデルです。
変数の代入と削除
変数に値を代入するには、let コマンドを使用します。
let foo = "hoge"
変数を削除するには、 unlet を使用します。
unlet foo
変数の型
型 | 説明 | 例 |
---|---|---|
数値 | 32bit or 64bit の符号付き整数 | -1, 0x10, 0177 |
浮動小数点数 | 浮動小数点の数値。 | 123.456, 1.15e-6, -1.1e2 |
文字列 | 終端がNUL文字の 8bit の符号なし文字 | 'abc' |
Funcref | 関数への参照 | function("strlen") |
リスト | 要素の順番付きのリスト | [1,2,['a','b']] |
辞書 | 順番を持たない連想配列 | {'blue': "#0000ff", 'red': "#ff0000"} |
変数のスコープ
前置詞 | 説明 |
---|---|
b: | 弁財のバッファのローカル |
w: | 現在のウィンドウのローカル |
t: | 現在のタブページのローカル |
g: | グローバル変数 |
l: | 関数のローカル |
s: | vimスクリプトのローカル |
a: | 関数の引数(関数内のみ) |
v: | グローバル、vimの定義 |
関数の引数の変数
前置詞 a: は、以下のように使用します。仮引数リストには a: は、書きません。
function Foo(bar) echo a:bar endfunction
変数の値を表示する
echo コマンドでメッセージとして、変数の値を表示できます。
:let foo = 'hoge' :echo foo
変数の定義されているかを確認する方法
exists()を使うと変数が定義されているか確認できます。
変数 foo が存在している確認する方法は、以下の通りです。
:echo exists('foo')
以下のように表示されます。
- 1
- 存在してる
- 0
- 存在していない
:echo exists('foo') " 0 :let foo = 1 :echo exists('foo') " 1