Найти в Дзене
Vim

VimScript 37 [ циклы ]

Оглавление

| ч36. списки | Содержание | ч38. словарь |

Кто со мной тот герой! Мы проделали большой путь более 35 статей и ни одна из них не упомянула циклы! Связано это с тем что Vimscript предлагает так много других вариантов для выполнения действий с текстом (normal!, и т.д.), Что циклы не являются такой необходимостью, как в большинстве других языков.

Несмотря на это, они вам определенно когда-нибудь понадобятся , поэтому сейчас мы рассмотрим два основных типа циклов, поддерживаемых Vim.

Цикл for

Первый вид цикла - это цикл for. Он может показаться странным, если вы привыкли к циклам Java, C или Javascript, но с другой стороны он может выглядеть довольно элегантным.

Выполните следующие команды:

:let c = 0
:for i in [1, 2, 3, 4]
: let c += i
:endfor
:echom c

На выходе получаем: 10 (результат сложения 1+2+3+4)

Циклы Vimscript выполняют итерацию по спискам (или словарям, которые мы рассмотрим позже).

В Vimscript нет эквивалентной записи в стиле С++ for (int i = 0; i < foo; i++) . Поначалу это может показаться ужасом, но вы привыкните..

Цикл while

Vim также поддерживает классический цикл while. Выполните следующие команды:

let c = 1
:let total = 0
:while c <= 4
: let total += c
: let c += 1
:endwhile
:echom total

На выходе получаем: 10 (результат сложения 1+2+3+4)

Этот цикл должен быть знаком практически всем, кто программировал раньше, поэтому мы не будем тратить на него время. Это не то что вы будете использовать часто. Просто помните что он есть и когда то, скорее всего никогда он вам понадобится. А так обычно while не используют со счетчиком (как цикл for), его используют для определения истинно выражение или ложно, но в Vim нет bool.

Упражнения

Прочти :help for.

Прочти :help while.

| ч36. списки | Содержание | ч38. словарь |