Как я могу получить переменную счетчика в Vim без Python или рубина?

Принимая хотя бы SQL 2005 для CTE :

;with cteAllColumns as (
    select col1 as col
        from YourTable
    union
    select col2 as col
        from YourTable
)
select c1.col, c2.col 
    from cteAllColumns c1 
        cross join cteAllColumns c2 
    where c1.col < c2.col
    order by c1.col, c2.col

5
задан ib. 4 September 2012 в 23:50
поделиться

4 ответа

Запишите первую строку:

%macro(200701);x gzip /home/test/200701.txt;run;

Затем, оставаясь на этой строке, перейдите в командный режим и запишите макрос a , который копирует строку ( yyp ), увеличивает первое число (ctrl-a, записывается ^ A ), перемещает один символ вправо ( l ), а затем увеличивает другое число:

qayyp^Al^Aq

(Обратите внимание, что запуск и остановка записи макроса происходит с q .) Теперь воспроизведите макрос a 110 раз:

110@a
13
ответ дан 18 December 2019 в 05:50
поделиться

Это также можно сделать с помощью функций vim 7:

:let t=map(range(200801,200815), '"macro(".v:val.");x gzip /home/test/".v:val.".txt;run;"')
:put=t
8
ответ дан 18 December 2019 в 05:50
поделиться

Если у вас есть основные утилиты Unix / Linux, в вашем распоряжении способ, который легче запомнить, по крайней мере, если вы привыкли использовать команды блока:

(1) Сгенерировать последовательность с помощью seq (1)

:r!seq 200801 200812

seq также позволяет формировать следующее:

:r!seq -f "\%03.0f"  10 121

Знак процента должен быть экранирован.

(2) Удвойте этот блок с блоком Vim команды: Отметьте Cv, выдерните, поместите

(3) Вставьте (или добавьте) текст между этими блоками: Отметьте CV, вставьте I

Подробнее см .: help blockwise-visual.

6
ответ дан 18 December 2019 в 05:50
поделиться

См. Также Vimtip № 150 .

Здесь объясняется, как пометить блок текста и автоматически увеличить числа в отмеченном блоке.

2
ответ дан 18 December 2019 в 05:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: