Понимание Vim. Функция повтора

Понимание Vim. Функция повтора

22 марта 2023 г.

Vim — это мощный многофункциональный текстовый редактор. которые могут сделать вашу работу с кодом быстрее и эффективнее. Он поставляется с множеством встроенных функций, которые упрощают повседневные действия (: встроенная справка).

Мы рассмотрим одну из них: встроенную функцию repeat (: help repeat), который повторяет выражение a заданное количество раз и возвращает объединенный результат.

Он имеет следующий синтаксис:

repeat({expr}, {count})

Мы рассмотрим 2 важных случая, когда функция может пригодиться:

* повтор() в командной строке * Repeat() в режиме вставки

Повторить в командной строке

Давайте посмотрим, как использовать функцию repeat() в контексте переменных в командной строке.

:let separator = repeat('-', 100) # set the variable
:echo separator                   # echoes separator

Когда выражение представляет собой список, оно объединяется заданное количество раз:

:let names = repeat(['michael', 'joseph'], 3) # expr is a list
:echo names                                   # echoes names

Функцию также можно использовать как метод:

:echo [1, 2, 3]->repeat(2)                 # use repeat as a method

Если вам нужно вставить некоторые данные, хранящиеся в переменных, вы можете использовать :put, чтобы вставить их после курсора (:help :put)< /p>

:let names = repeat(['michael', 'joseph'], 3)
:put =names->string()

Я хотел бы отметить, что мы преобразовали результат в имена строк ->string(), чтобы вставить его в виде списка в одну строку.

Если вы удалите ->string(), каждый элемент списка будет находиться на отдельной строке.

Повторить в режиме вставки

При работе с кодом нам часто приходится повторять некоторые выражения или заполнять структуры некоторыми данными.

Давайте посмотрим, как мы можем использовать repeat() в режиме вставки. Когда вы находитесь в режиме вставки:

<C-r>=repeat('[]', 10)<CR> 

Это означает: нажмите Ctrl-r, введите =repeat('[]', 10), нажмите Enter

Press Ctrl-r in Insert Mode

type =repeat('[]', 10)

Press Enter to display the result

Мы добавили '[][][][][][][][][][]' и остались в режиме вставки.

repeat(range(5), 3)->string() # repeats [0, 1, 2, 3, 4] three times
string(repeat(range(5), 3))   # use built-in string()

repeat(tempname() . ': ', 3)->string()

tempname() # generates a temporary file name that doesn't exist
.          # concatenate two strings

Встроенная функция repeat() делает работу с кодом быстрой и удобной, особенно в режиме вставки. Это избавляет нас от переключения между разными режимами, что увеличивает общую скорость потока. Благодаря множеству встроенных функций Vim вы можете генерировать данные различных типов для {expr} в широком диапазоне. Запустите функцию и сделайте свою жизнь проще.


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE