prosource

Vim에서 일치하는 XML 태그로 이동

probook 2023. 9. 20. 20:25
반응형

Vim에서 일치하는 XML 태그로 이동

%연산자는 일치하는 괄호, 주석 끝 및 기타 몇 가지 항목으로 이동합니다.그러나 내가 아는 한 XML 태그(또는 다른 태그)와 일치하지 않습니다.

Vim을 사용하여 일치하는 XML 태그로 이동하는 가장 좋은 방법은 무엇입니까?

참고: 제가 정말로 하고 싶은 것은 일치하는 태그를 수동으로 찾지 않고 XML 파일의 섹션을 복제하는 것입니다.

추가 플러그인 없이 다음 작업을 수행할 수 있습니다.

  • 태그에 커서를 놓습니다.
  • - (outer) 태그를 선택하고 끝에 커서를 놓습니다.
  • 선택한 항목이 있으면 상단과 하단을 전환할 수 있습니다(Michael Gruber의 노트를 기반으로 업데이트).
  • - c 변경 또는 - 복사 또는 시각적 모드를 떠나기 위해 탈출...

또 다른 유용한 연산은: - 태그(내부)의 내용을 선택합니다.

Update(@elrado 덕분에) 예제: 태그의 내부 내용을 선택하고 선택한 텍스트의 시작 부분에 커서를 놓을 수 있습니다.

참조 : https://superuser.com/questions/182355/how-can-i-select-an-html-tags-content-in-vim

Vim reference (참고해주신 @Geek 덕분에):

:help visual-operators

다음을 얻게 될 것입니다.

4. Operating on the Visual area             *visual-operators*

The objects that can be used are:
    ...
    at  a <tag> </tag> block (with tags)        |v_at|
    it  inner <tag> </tag> block            |v_it|
    ...

matchit.vim이라는 vim 플러그인이 있습니다. 여기 http://www.vim.org/scripts/script.php?script_id=39 에서 확인할 수 있습니다. 설명한 목적과 거의 동일하게 생성되었습니다.

설치하고 태그 본문에 커서를 놓고(<>가 아닌 경우) %를 눌러 다른 태그로 이동합니다.스크립트의 페이지를 참조하여 일치하는 내용을 확인합니다.

OP는 그가 정말로 하고 싶었던 것은 일치하는 태그를 찾을 필요 없이 XML의 한 섹션을 복사하는 것이라고 말했습니다.이것은 일반 모드에서 쉽게 할 수 있습니다.yat<motion>p, 일치하는 태그를 포함하여 텍스트를 내부에 고정한 다음 붙여넣습니다.yit<motion>p거의 비슷하지만 외부 태그는 포함되어 있지 않습니다.

문자열의 'y'는 당연히 일반 모드 "yank" 명령입니다. (:help y)

a아니면i다음과 같은 연산자 뒤에 객체 선택에 사용될 수 있습니다.y혹은 시각적 선택 안에서.뒤에 오는 기호.a아니면i선택할 항목을 지정합니다.개체 유형t여기서 사용하는 것은 SGML 태그를 나타냅니다. (:help object-select).

물론이야.<motion>합니다에 합니다.p해당 위치에 줄눈 텍스트를 놓습니다.

"양크", "객체 선택"(태그 선택) 및 "마지막으로 양크된 텍스트로 점프"를 사용하는 나의 트릭입니다.

yit`] 

태그를 닫기 전에 오른쪽으로 뛰다

그리고.

yit

태그를 연 후 오른쪽으로 뛰다

참고: 기본 레지스터의 내용이 변경됩니다.

언급URL : https://stackoverflow.com/questions/500989/jump-to-matching-xml-tags-in-vim

반응형