vim이 메모장 ++와 같은 HTML 태그를 강조 표시 할 수 있습니까?


181

VIM은 중괄호, 괄호 및 대괄호 쌍을 지원합니다. 이것은 PHP 및 Javascript와 같은 C 스타일 언어를 편집하는 데 유용합니다. 그러나 HTML 태그를 일치시키는 것은 어떻습니까?

메모장 ++에는 내가 사용하는 한이 기능이 있습니다. HTML 블록이 시작하고 끝나는 지점을 파악할 수 있으면 매우 유용합니다. 내가 찾고있는 것은 vim과 같은 것입니다 (녹색 div 태그 참조).

보너스 기능 :이 스크린 샷의 빨간색 태그와 같이 닫히지 않은 HTML 태그를 강조 표시합니다.

matchit차선책 으로 제안되었지만 기능을 사용하려면 추가 키 입력이 필요합니다. 추가 키를 누르지 않고 HTML 블록이 시작하고 끝나는 위치를보고 싶습니다.

vim을 위해 이와 같은 것을 찾기 위해 인터넷을 트롤링했습니다. 분명히 2 개의 다른 StackOverflow 질문nabble 에 따르면, 나는 유일한 사람이 아닙니다 .

html 태그와 시각적으로 일치하지 않는 vim으로 거의 사임했습니다. vim이 이것을 할 수 있습니까?

부록 : 현재 기존 플러그인으로이 작업을 수행 할 수없는 경우 vimscript 마법사에 적합한 플러그인 작성 방법에 대한 포인터가 있습니까?


이 기능이 "매우 유용"한 방식을 설명해 주시겠습니까? 나는 매 순간 모든 것에 관한 모든 것을 알 필요는 없다. 내가 뭔가를 알아야 할 때 빔이 수 있도록 설계되어 매우 쉽게 거의 키 입력을 알고 할 수 있습니다.
romainl

17
모든 것을 알 필요는 없지만 HTML 태그가 끝나는 시점을 쉽게 알 수 있으면 작업중인 파일의 구조를 파악할 수 있습니다. 또한 잘못 작성된 코드를 많이 처리하므로 닫는 태그가없는 html 태그가 생길 수 있습니다. 항상 수정해야합니다.
linqq

5
@romainl 나는 당신의 대답을 매우 자주 읽었으며 당신의 관점을 정말로 좋아합니다. 그러나 이번에는 동의하지 않습니다. 이 기능이 필수 사항은 아니라고 생각할 수 있지만 이것은 꽤 좋은 질문입니다. Vim을 사용하는 쉬운 방법이 없다는 것이 이상하게 보입니다.
lucapette

1
@lucapette, 감사합니다. 나도 그 질문을 좋아한다. 나는 그런 기능을 사용한 적이 없으며 그 필요성을 느끼지 못했습니다. 그러나 한 번 시도하지 않으면 살 수없는 것들 중 하나 일 것입니다. 나는 "관리 잔해물"이없는 작업 흐름과 작업 공간을 깨끗하고 집중적으로 좋아하며 그러한 기능 불필요 하다고 생각 합니다. 플러그인의 완벽한 후보입니다. 아마도 matchit에서 시작점으로 영감을 얻으려고 시도 할 수 있습니다.
romainl

6
이 답변을 보셨습니까? stackoverflow.com/questions/1957083/…
Greg Sexton

답변:


219

나는 오늘 일부 HTML로 작업해야 했으므로 이것을 해결할 것이라고 생각했습니다. vim.org에 문제를 해결하는 ftplugin을 추가했습니다.

vim.org에서 구할 수 있습니다 .

github에서 얻을 수 있습니다 .

그것이 당신을 위해 작동하기를 바랍니다. 문제가 있으면 알려주세요.


1
감사합니다! 그것이 바로 내가 찾는 기능입니다. 수정하고 싶은 경우에는 두 개의 작은 퀴즈 만 있습니다. 1. 현재 반대 태그 만 일치합니다. 커서가있는 태그와 일치 할 수 있습니까? 2. 현재 html 태그에 속성이있는 경우 해당 속성도 선택됩니다. 속성없이 태그 이름 만 선택할 수 있습니까?
linqq

좋은 제안입니다. 둘 다 vim.org의 v1.2에서 관리해야합니다. 일치하는 정규 표현식은 이제 더 복잡하므로 버그를 찾으면 알려주십시오.
Greg Sexton

1
요청에 따라이 ftplugin을 github에 추가했습니다. 링크에 대한 내 업데이트 된 답변을 참조하십시오.
Greg Sexton

1
@GregSexton 당신은 지금 공식적으로 영웅입니다;)
lucapette

7
방금 이것을 찾았고 좋아 보이지만 ~ / .vimrc에 "filetype plugin on"을 추가해야 켜졌습니다. ftplugin 폴더에 플러그인을 배치 한 후에도 작동하지 않으면 ~ / .vimrc에 위를 추가하면 모든 설정이 완료됩니다.
Geoff

95

Greg 's MatchTag.vim 플러그인은 훌륭하지만 더 많은 것을 원했습니다. 커서가 태그 중 하나에있을 때뿐만 아니라 둘러싸는 태그가 항상 강조 표시 되기를 원했습니다 .

그래서 나는 Greg의 MatchTag가하는 모든 일을하는 MatchTagAlways 를 작성 했으며 , 커서가 코드의 어느 위치에 있더라도 항상 태그를 강조 표시합니다. 또한 닫히지 않은 태그 및 Jinja 또는 Handlebars와 같은 HTML 템플릿 언어와 함께 작동합니다.

작동중인 GIF는 다음과 같습니다.

활동중인 MTA


4
멋진 해결책-아마도 원래 버전을 사용하고 있지만 이것이 어떻게 도움이되는지 볼 수 있습니다. 더 많은 답변에 GIF 데모가 있었으면 좋겠습니다.
Jason

3
놀라운 GIF 해킹에 대해서는 +1 인 Jason과 전적으로 동의합니다.
Dan Bechard

이것은 허용 된 답변보다 낫습니다. 그러나 여전히 세로 화면 높이를 초과하는 태그를 확인하는 방법을 잘 모르겠습니다. vim에서 커서를 지나서 화면을 이동할 수 없으며 분할 화면이 두 창에서 활성 태그를 표시하지 않습니다.
radix07

1
당신은 절대 전설, 내 인생이 이것으로부터 훨씬 좋아졌습니다 ... <3
Karl Glaser

1
이것은 현상금 답변보다 훨씬 낫습니다
MohitC

-2

Vim에서 html 스타일 꺾쇠 괄호를 찾으려고 여기에 왔습니다. 이것은 작동하는 것 같습니다 :

:set mps+=<:>
:help matchpairs

7
이 방법은 해결책이 아니며 '<'를 '>'와 일치시킵니다.
Daniel YC Lin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.