Vim - операторы if / elseif / else в цикле for (командный режим) - PullRequest
3 голосов
/ 01 июля 2011

Я пытаюсь сгенерировать кучу текста в vim (командный режим), используя циклы for, например,

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

это выводит 12345678910

Я хочу добавить логику внутри цикла for, как в следующем псевдокоде:

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

Моя проблема в том, что после исчерпывающих поисков в Google я не могу найти правильный синтаксис для создания такого вида оператора if. Кто-нибудь знает, как выполнять команды if, elseif и / или else в командном режиме vim?

Edit: так что я наконец нашел 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

так что я могу : вызов Test ()

, который выводит 12345678910, но не вставляет его на страницу ..

1 Ответ

12 голосов
/ 01 июля 2011

Каждый if / elseif / else / endif - это отдельная команда, поэтому в одной строке она будет выглядеть так:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...