vimスクリプトの制御構文のコマンド

提供: neovim/vim入門
2014年12月31日 (水) 18:58時点におけるDaemon (トーク | 投稿記録)による版 (ページの作成:「vimスクリプトでは、forやwhile, if/else などの制御構文が利用できます。 '''読み方''' ;制御構文:せいぎょこうぶん __TOC__ == 概...」)

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索
スポンサーリンク

vimスクリプトでは、forやwhile, if/else などの制御構文が利用できます。

読み方

制御構文
せいぎょこうぶん

概要

vimスクリプト には、

  • if/elseif/else
  • for
  • while
  • try/catch/finally

などの制御構造を実現するための、制御用のコマンドが用意されています。

ループ制御用のコマンドとして

  • break
  • continue

があります。

if/elseif/elseコマンド

if コマンド

if 条件
	"
endif

if /elseif /else コマンド

if 条件
	"
else if 条件
	"
endif
if 条件
	"
else if 条件
	"
else
	"
endif

論理演算子

論理演算子とパターンマッチ
演算子 説明
a == b 等しい
a != b 等しくない
a > b より大きい
a >= b 以上
a < b より小さい(未満)
a <= b 以下
a =~ b 正規表現 b に a がマッチする
a !~ b 正規表現 b に a がマッチしない

whileコマンド

while 条件
endwhile

forコマンド

for e in リスト
endfor

以下は、range と for を使用して、1 から 4 を表示するだけの例です。

for i in range(1,4)
	echo i
endfor

3回(0,1,2)、ループを回したいなら、以下のコマンドで実現できます。

for i in range(3)
	echo i
endfor

8,6,4とループを回したい場合は、このような書き方で実現できます。

for i in range(8,4,-2)
	echo i
endfor


1行目から20行目を操作したいなら、getlineを併用します。

for line in getline(1,20)
	" line をホゲホゲする
endfor

例外

例外は、throwコマンドによって送出されます。vimの例外処理は、catchコマンドにキャッチするエラーメッセージを正規表現(パターン)で記述します。

try
	" なんかの処理
catch /エラーメッセージ ほげほげ/
	echo "ほげほげエラーをキャッチしましたー
endtry

以下の catch コマンドは、すべてのエラーを捕捉できます。

:catch /.*/
:catch

finally コマンドで、必ず実行する処理を記述できます。処理中にエラーが起きても、テンポラリのファイルを削除する、といった使い方ができます。:continue, :break, :finish, :return を使った場合、エラー、割り込み、例外が発生した場合でも実行されます。

try
	" なんかの処理
catch /エラーメッセージ ほげほげ/
	echo "ほげほげエラーをキャッチしましたー
finally
	" かならず実行する処理
endtry

関連項目




スポンサーリンク