2013-12-11 3 views
1

Мне нравится замена команды, но она работает только тогда, когда у меня уже есть строки в файле для работы. Я хотел бы начать новый файл в vim и вставить сказать 'FILE1:' на первые 100 строк файла.Как я могу вставить одно и то же слово по одному в строке в новом файле с помощью vim?

Причина этого - я написал скрипт Perl, который будет чередовать строки в файлах1 и file2. Поэтому я делаю тестовые файлы, но не могу найти команду, которая вставляет 100 строк в новый файл. Я понимаю, что могу просто провести <ENTER>, а затем использовать команду substitute, но в vim должна быть какая-то команда insert.

ответ

3

Вы можете добавить команду вставки (i) с номером и вставить то, что вы набираете, столько раз после выхода из режима вставки.

Таким образом, в режиме vim следующим образом: <CR> означает, что нажать enter и <ESC> означает нажать escape.

100iFILE:<CR><ESC> 

Примечание: Возможно, потребуется немного подождать для всех 100 появляться после нажатия <ESC> Вы также будете в конечном итоге с дополнительной новой линии в конце файла, который можно удалить с dd

+0

Примечание: причина этого заключается в том, что практически любая команда или движение Vim может быть произвольно повторена путем добавления счета. Примеры: вы можете удалить строку с помощью 'dd', перейти к следующему слову с помощью' w' или заменить все q на строку с помощью x: 's/q/x/g '. Затем вы можете удалить пять строк с помощью '5dd', перейти к слову после следующего с помощью' 2w' или заменить все q на следующие три строки с помощью x's '3: s/q/x/g pandubear

2

Вставьте FILE1:, а затем перейдите к новой линии. Затем введите 99., чтобы повторить то, что вы только что сделали 99 раз.

1

Просто есть альтернативный способ сделать это в моей голове ....

Создает 100 пустых строк:

99o<ESC> 

Сделайте visua л блок:

<C-v>gg 

Вставить слово:

<S-i>Word<ESC> 

Тогда у вас есть 100 строк "Слова", надеюсь, что это помогает!

+1

Вы также можете повторить содержимое команды вставки! Таким образом, это может быть упрощено до '100oWord ', хотя в итоге вы получите дополнительную строку в верхней части файла. – pandubear

+0

+1 для этого vim golf :) – Max

0

В качестве альтернативы к остальной части этих ответов, вы можете просто написать первую строку, а затем вставьте его в 99 раз, чтобы сделать 100 строк:

LINE:<Esc>yy99p 

И это один символ короче!

Смежные вопросы