2012-12-01 1 views
0

У меня есть файл с 1000 строк, и мне нужно заменить, скажем, первые 500 строк с любым другим номером - например 0, а следующие 500 строк с номером, который находится в этой строке + 1Как отредактировать многие строки в VI

+2

Почему VI конкретно? Для этой задачи есть лучшие инструменты. –

+0

Я буду работать с vi в течение некоторого времени и хотел бы узнать больше об этом. Я мог бы просто написать сценарий. – rank1

ответ

1

В первом из линий, которые вы хотите заменить, вы можете сделать:

500dd 

А потом:

500I 

Введите текст, который вы хотите поместить в 500 строк, следуют с введите и выйдите из режима редактирования. Вуаля!

Если вы хотите увеличить числа, написанные в нескольких строках, вы можете использовать макрос.

Попытка:

qq<C-A>[email protected] 
  • первым д начинается запись макро
  • второй д является, где макро должен быть сохранен
  • СА означает «увеличить число в токе линия "
  • j - перейти к следующей строке
  • третий q - закончить запись макроса
  • 499 - повторить 499 раз
  • @q - повторить макрос, хранящийся в д
0

Для выбора диапазона используйте begin,end/pattern/s//pattern /.

Пример:

1,500s/aaa/bbb/|501,1000s/aaa/ccc/ 

не Заменил aaa по bbb в линиях от 1 до 500 и aaa по ccc от 501 до 1000 (все в одной строке) !!!

+0

Что такое шаблон для чего-либо? Я думал, что это будет *, но не – rank1

+0

'. *' Или вы можете использовать '^. * $' Для чего-либо от начала строки '^' до конца '$' – OnaBai

0

Вы можете записать макрос, набрав qacc<whatever you want><ESC>jq, а затем запустите его, набрав [email protected].

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