'Tool/vi'에 해당되는 글 1건

  1. 2008.09.03 vi 특정문자열 삭제

명령모드에서 v 를 누른 후

1행을 제외하고 블럭을 씌웁니다.

그리고 ex모드에서

g/^Getting/d 

를 하면 1행을 제외한 나머지 중에서 Getting 으로 시작하는 모든 행이 삭제됩니다.


------ 부가설명

vi에는 명령 모드 , ex모드, 삽입(insert) 모드 이렇게 3가지 모드가 있습니다.

질문하신 내용으로 보아, 아실 듯 ^^

1행을 제외한 나머지 행을 블럭을 씌우려면

gg 명령으로 가장 첫 줄로 이동한 후에

j로 한줄을 내려와

v로 블럭을 씌울 수 있게 한 후

G로 가장 아래 줄로 이동.

요약하면 ggjvG 다섯번만 손가락을 누르면 됩니다.

이동시 직접 줄 번호를 지정하거나

블럭을 씌우지 않고 ex명령만으로도 할 수 있으나

이렇게 하는 것이 직관적이고 손가락도 덜 움직이는 것 같습니다.


:g/특정문자열/d

위와 같은 ex명령은 특정문자열이 있는 라인을 삭제합니다.

조심해야 할 점이 있다면

의도하지 않은 라인까지 삭제할 가능성이 있다는 것 입니다.

예를 들면,

:% g/ting/d

ting 이라는 단어가 있는 줄을 지우려고 했는데

getting, meeting , hunting 등등의 단어가 있는 줄도 지우는 경우가 생길 수 있습니다.

이런 것을 막으려면 특정 문자열 또는 단어의 앞 뒤로 \< \> 를 감싸주면

해당 단어만을 의미할 수 있습니다.

:% g/\<ting\>/d 라고 하면 ting 앞 뒤로 알파벳이 붙지 않은 오직 ting 이라는 단어만 들어 있는 줄을 삭제합니다.

% 기호는 전체라인을 의미합니다.

^ 기호는 라인의 시작을 의미합니다.

Posted by 이버리
,