Vim - for循环中的if/elseif/else语句(命令模式)

tes*_*ter 3 vim

我正在尝试vim使用for循环在(命令模式)中生成一堆文本,例如

:for i in range(1,10) | put=i | endfor
Run Code Online (Sandbox Code Playgroud)

这个输出 12345678910

我想在for循环中添加逻辑,如下面的伪代码:

:for i in range(1,10) | if i>5 put=i endif | endfor
Run Code Online (Sandbox Code Playgroud)

我的问题是,在用尽谷歌搜索后,我无法找到生成此类if语句的正确语法.有谁知道如何执行if,elseif和/或else在vim的命令模式陈述?

编辑:所以我终于找到了 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
Run Code Online (Sandbox Code Playgroud)

所以我可以:调用Test()

哪个输出12345678910,但它不会将其插入页面..

Rai*_*ndi 12

每个if/elseif/else/endif都是一个命令,所以在一行上会是:

:for i in range(1,10) | if i > 5 | put =i | endif | endfor
Run Code Online (Sandbox Code Playgroud)