2010-03-04 4 views
19

Как я могу вставить что-то на несколько строк?Как заблокировать (столбец?) Вставить в vim

я пытаюсь достичь такой же, как: В существующем тексте, я могу <Cv> JJJJJ <SI> HelloWorld <CR> иметь HelloWorld вставлены в 5-строк

, но вместо того, чтобы печатать HelloWorld Я хотел бы получить текст из реестра. Я хочу сначала выложить HelloWorld, затем вставить его в 5 строк.

+2

@sotto - StackOverflow предназначен для программирования вопросов. Ваш вопрос, вероятно, будет перенесен на SuperUser.com, который станет лучшим форумом для общих вопросов использования компьютера. – Oded

+7

@Oded vim - это инструмент программирования, такой как VS. Как это может быть несвязанным? –

ответ

20

Когда вы находитесь в режиме вставки, вы можете нажать Ctrl-R, за которым следует буква для буфера, который вы хотите вставить. Затем просто нажмите Escape, как обычно, и он будет вставлен в блок как обычно.

+2

Итак, в соответствии с нижеприведенным ответом Дуга, это будет, после того, как вы выдержите текст, который хотите заполнить, ' jjI " '(предполагая, что вы делаете обычный yank без указания буфера). – naught101

3

Вы можете использовать макрос, чтобы сделать это, как [email protected]

qq запускает макрос с именем q

0 идет в начале строки и P пасты из буфера скопированный контент перед курсором

j идет по одной линии и q заканчивает макрос

[email protected] повторяет q макро 4 раза

5

Допустим, у вас есть следующие в VIM буфер:

1| Do the dishes 
2| Get milk 
3| Take out the trash 

и вы хотите вставить [ ] в начале каждой строки, так что она становится:

1| [ ] Do the dishes 
2| [ ] Get milk 
3| [ ] Take out the trash 

  1. перейти к колонке одной из строки один
  2. пресс CTRL + V (выбор блока)
  3. пресс j два раза (до третьего ряда). Теперь первый столбец строк один, два и три выбраны
  4. нажмите I (Shift + I - капитал "я") - это "блок режим вставки"
  5. типа [ ]
  6. пресс esc (побег)
  7. Текст будет добавлен в каждую строку
Смежные вопросы