IT

[vi/vim] VIM에서 Html 태그(tag) 없애고 text만 남기기

마이홈주의자 2022. 4. 10. 16:37
반응형

기본적으로 태그에 관련된 명령인 it와 at가 있다.

it : Inside tag.
예) <h>Hello world</h>
에서 "Hello world"를 의미한다.

at : arround tag
예) <h>Hello world</h>
에서 "<h>Hello world</h>"까지를 의미한다.


여기에 c(change), d(delete), v(visual), y(yank)를 붙이면 된다.
dit : delete inside tag
dat : delete arround tag
가 되는데 dit 또는 dat 모두 태그 사이를 삭제나 텍스트를 삭제한다. 텍스트를 남기지는 않는다.
그럼 태그 사이의 텍스트만 남기려면 어떻게 해야 할까?

현재까지 찾아본 바로는 stack overflow 사이트에 나와 있는 Randy Morris라는 분의 답변이 가장 확실한 방법이다.
삭제하고자 하는 태그에 커서를 놓고 아래의 명령어를 눌러 실행하면 된다.

yitvatp

  • y - yanks
  • it - the inside of the tag
  • vat - selects the entire tag
  • p - pastes the previously yanked text over it

이 명령을 계속 수행하고 싶으면 나의 경우 map에 등록해서 사용했다. 이를테면
/< 로 태그 검색
:map #3 yitvatpn 로 명령 수행하고 다음 태그 검색

전체 태그를 모두 삭제하는 것은 안된다. 짝으로 구성되어 있지 않은 태그들이 있기 때문이다.

이외에 참고할 만한 명령어로
da< 또는 da> : 태그만 삭제한다.

또한
vim의 다양한 플러그인이 존재하는데 그중 vim surround라는 플러그인이 있다. 즉, {}, ()등의 괄호와 태그를 쉽게 제어할 수 있는 명령어를 제공하는 플러그인이다.

반응형