vim 과 tmux · vim 실전: 검색·치환·매크로 · 퀴즈
퀴즈: 검색·치환·매크로
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
:%s/old/new/ 를 실행했는데 한 줄에 여러 개 있던 old 중 첫 번째만 바뀌었습니다. 원인은?
- g 플래그가 없어 줄마다 첫 매치만 치환되기 때문
- 범위 지정이 잘못됐다
- 패턴에 이스케이프가 빠졌기 때문
- vim 의 기본 동작은 원래 전부 치환이라 다른 원인이다
로그에서 ERROR 가 든 줄만 남기려면?
- :g/ERROR/d
- :%s/ERROR//g
- :v/ERROR/d
- :g!/ERROR/y
매크로가 레지스터에 저장된다는 사실에서 따라오는 것은?
- 매크로는 vim 을 재시작하면 항상 사라진다
- 매크로는 yank 와 다른 저장 공간을 쓴다
- 레지스터 내용을 보고, 붙여넣어 편집한 뒤 다시 저장할 수 있다
- 매크로는 실행 중에 수정할 수 있다
매크로 첫 키를 0(줄 맨 앞)으로 두는 이유는?
- 실행 속도를 높이려고
- 반복할 때마다 같은 시작점에서 출발하게 만들려고
- 0 이 매크로 시작을 알리는 약속이라서
- 레지스터를 초기화하기 위해
:g/prod/y a 와 :g/prod/y A 의 차이는?
- 소문자는 매번 덮어써 마지막 줄만 남고, 대문자는 덧붙여 모두 쌓인다
- 대문자는 읽기 전용 레지스터라 오류가 난다
- 대문자는 시스템 클립보드에 저장된다
- 둘은 같고 표기만 다르다
:%s/패턴//gn 을 실행하면?
- 아무것도 바꾸지 않고 매치 개수와 줄 수만 알려 준다
- 패턴에 맞는 부분이 전부 삭제된다
- 패턴이 없는 줄을 지운다
- 치환을 되돌린다