2010-12-26 2 views
6

Вот моя ситуация У меня есть множество строк SQL, как показано ниже.VIM .. Янки несколько строк на основе regex

SET IDENTITY_INSERT blah 
DELETE FROM blah 
SET IDENTITY_INSERT blah 
DELETE FROM blah 
SET IDENTITY_INSERT blah 
DELETE FROM blah 
SET IDENTITY_INSERT blah 
DELETE FROM blah 
SET IDENTITY_INSERT blah 
DELETE FROM blah 

Я хочу, чтобы изменить его с помощью VIM к

SET IDENTITY_INSERT blah 
SET IDENTITY_INSERT blah 
SET IDENTITY_INSERT blah 
SET IDENTITY_INSERT blah 
DELETE FROM blah 
DELETE FROM blah 
DELETE FROM blah 

теперь я знаю, что я мог бы написать простой питон скрипт для достижения этой цели быстро, но я пытаюсь до моих навыков ВИМ.

ответ

7

Вы можете использовать команду: г

:g/^DELETE/m$ 

Это будет двигаться (м) все строки, начинающиеся с DELETE до конца файла ($).

+0

Вы также можете использовать ': v/DELETE/m $' – Mud

+0

или @Mud, если я хочу изучить расширенные ': g' или': v' kung-fu, как мне это сделать? –

1

следующее не использует регулярное выражение ...

:sort! 

детали: http://vim.wikia.com/wiki/Sort_lines

+2

Это изменяет первоначальный заказ, который может быть или не быть тем, чего хочет OP. – zeuxcg

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