2011-07-01 34 views
3

我正在嘗試使用for循環在vim(命令模式)中生成一堆文本。Vim - for循環中的if語句/ elseif/else語句(命令模式)

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

這個輸出12345678910

我想補充的邏輯裏面查找類似下面的僞代碼迴路:

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

我的問題是,用盡谷歌搜索後,我無法找到生成這種if聲明的正確語法。有沒有人知道如何在vim的命令模式下執行ifelseif和/或else語句?

編輯: 所以我終於找到vimscript

所以現在我有:

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,但它不將其插入到頁面中。

回答

12

每個if/elseif/else/endif都是一個獨立的命令,所以一個l那將是:

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

啊我看..這比定義一個函數調用它容易得多。謝謝! – tester