Vimscript制御構造のふしぎ
2009.12.06 Author: 路地
Vimscriptは文法をチェックしないで1行ずつ実施する為か、下記の様なスクリプトもエラー無く実行できます。
function! Test()
for i in [ 1 , 2 , 3 ]
echo i
return
endfunction
本来ならば、forの終わりにendforが必要ですが、for内でreturnを読み込んだため、endfunctionまで一気に向かってしまいます。
そんな1行ずつ実行する性質はExコマンドモードで制御構文を直接打つ事でも確認できます。 Vimのノーマルモードで、以下の様に実行すると
for i in range(10)
echo i
endfor
"echo i"を入力した段階で、"0"が出力(echo)され、"endfor"を入力すると、残りの 1~9が出力されます。