Начиная с чистого листа, как я могу получить документ, который содержит
1
2
3
4
5
6
7
8
9
10
…
100
Чтобы было ясно, я не хочу, чтобы эти цифры отображались на полях; Я хочу, чтобы они были вставлены в сам документ.
line-numbers
text-generation
200_success
источник
источник
<C-r>=range(1,100)
.В дополнение к Undo pure-vim
:put =range(1,100)
(который фактически оставляет пустую строку вверху), вы можете, в зависимости от вашей ОС, использовать одну из ее команд. Например, на коробке Unix / Linux:Вышеприведенное работает путем передачи всего (пустого) буфера в
seq
, который игнорирует его ввод и просто выводит числа от 1 до 100. Затем Vim заменяет весь буфер наseq
вывод '.Это полезно, когда вы уже знакомы с некоторым способом командной строки, чтобы получить то, что вы хотите.
источник
Для записи, и определенно не самый короткий путь (см. Потрясающее решение @ Undo), но последовательность нажатий клавиш также сделает это:
i1EscqaYpCtrl+aq98@a
Позвольте мне разобрать это для вас:
i1<Esc>
- введите номер 1, затем вернитесь в командный режимqa
- начать запись макроса в регистр "а"Y
- скопировать текущую строкуp
- вставить текущую строку (курсор также переместится на вставленную строку)<Ctrl>a
- увеличить следующий номер в строке, сделав его равным 2q
- прекратить запись макроса (был регистр "а")98@a
- повторить макрос в регистре "а" 98 разисточник
Здесь другой подход, который требует более нового Vim (что-то вроде 7.4.800)
Это предполагает пустой буфер и '1' в регистре a. Сначала введите 100 1 в буфер, "a100P.
Затем визуально выделите строки от 2 до 100 :2EnterVG.
Теперь нажмите gCtrl+ A.
Прочитайте помощь на
:h v_g_CTRL-A
источник
:h g_CTRL-A
Я знаю, что этот вопрос действительно старый, но есть и другой способ сделать это. Попробуй это:
99o<esc>
просто откроет 100 пустых строк. Затем мы запускаем команду замены:источник