2011-07-01 16 views
3

forループを使用してvim(コマンドモード)にテキストを生成しようとしています。forループ(コマンドモード)のVim-if/elseif/else文

:for i in range(1,10) | put=i | endfor 

これは、私は以下の擬似コードのようなforループの内部のロジックを追加したい12345678910

出力:

:for i in range(1,10) | if i>5 put=i endif | endfor 

私の問題は、Google検索を排出した後、私はできないのです、ということですがこの種類の文を生成するための適切な構文を見つけるためには、ifステートメントを使用します。 vimのコマンドモードでifelseifおよび/またはelse文を実行する方法を知っている人はいますか?

編集:

func! Test() 
    for i in range(1,10) 
     for j in range(1,10) 
      if i<10 
       echo i*j 
      endif 
     endfor 
    endfor 
endfunction 

ので、私は することができます:12345678910を出力するテスト()

を呼ぶが、それはない ので、私は最終的にvimscript

は、今私が持っていましたページに挿入してください。

答えて

12

すべてのif/elseif/else/endifは単独のコマンドなので、1つのlそれは次のようになります:

:for i in range(1,10) | if i > 5 | put =i | endif | endfor 
+0

私は..それを呼び出す関数を定義するよりもずっと簡単です。ありがとう! – tester