[완료] vi 에서 특정패턴 이외의 라인을 지우려면?

kukgini의 이미지

보통 특정패턴에 해당하는 라인을 찾아서 지우려면 이런식으로 하는것으로 알고있습니다

:%g/pattern/d

그런데 반대로 해당되는 패턴이 있는 라인은 보존하고 나머지들만 다 지워버리고 싶을때는 어떻게 하면 좋을까요? 예전에 구글링하다 언뜻 발견한 적이 있는지 적어놓질 않아서 다시 찾아보려니 찾을수가 없네요...

ktd2004의 이미지

다음 둘중에 하나 사용하시면 될 것 같습니다.(":help :g")

:%v/pattern/d
:%g!/pattern/d
kukgini의 이미지

감사합니다. :help 의 사용법도 엄청 도움이 되네요.

impactbar의 이미지

%는 빼도 됩니다 ^^;

Prentice의 이미지

꼭 필요한 좋은 기능을 드디어(?) 알게 되었습니다. 감사합니다.

grep이 ex의 g/regular expression/p에서 온 것이라는 것은 알고있었는데 몸으로 직접 겪어보고 나니 드디어 이해가 가기 시작합니다.

ex 모드를 써보니 예전 하이텔 글 편집기 생각이 나네요. 그때는 1,16l, 1,15l 등을 써서 페이지 다듬기를 했었습니다.

lovian의 이미지

저는 grep이 거기서 왔는지 처음 알았네요 +_+
-----------------
한글을 사랑합니다.

-----------------
한글을 사랑합니다.