Wikia

Vim Tips Wiki

Changes: Delete some lines with some exceptions

Edit

Back to page

(Change to TipImported template + severe manual clean)
(Move categories to tip template)
 
Line 9: Line 9:
 
|version=5.7
 
|version=5.7
 
|rating=0/2
 
|rating=0/2
  +
|category1=
  +
|category2=
 
}}
 
}}
 
I have several hundred file path names in a buffer, each filling a line, e.g. created with vim tip # 659.
 
I have several hundred file path names in a buffer, each filling a line, e.g. created with vim tip # 659.

Latest revision as of 04:07, April 25, 2008

Tip 670 Printable Monobook Previous Next

created March 3, 2004 · complexity basic · author Siegfried Bublitz · version 5.7


I have several hundred file path names in a buffer, each filling a line, e.g. created with vim tip # 659.

About half of them are help files, starting with './help/' which I want to delete, but I want to keep the german ones, starting with './help/de/'. Here comes how I do it with Vim:

:global:^./help/:if (match(getline(line(".")), '^./help/de/') == -1) | delete | endif

CommentsEdit

Would this also do it?

:g#\./help/[^d][^e]#d

No, because lines like

./help/dk/and/the/rest/of/the/path

are not deleted. Instead use

g#\(^\./help/\)\(de/\)\@!#d

to delete all lines starting with './help/' but keep all lines starting with './help/de/'


g!/\.\/help\/de/d

:help :global


This will only work if each line in the file starts with './help'.


Around Wikia's network

Random Wiki