[xml] Vim에서 일치하는 XML 태그로 이동
Vim %
연산자는 일치하는 괄호, 주석 끝 및 기타 몇 가지로 이동합니다. 그러나 XML 태그 (또는 다른 태그)는 필자가 아는 한 일치하지 않습니다.
Vim을 사용하여 일치하는 XML 태그로 이동하는 가장 좋은 방법은 무엇입니까?
참고 : 나는 무엇 정말 하고 싶은 수동으로 일치하는 태그를 찾고없이 XML 파일의 섹션을 중복입니다.
답변
matchit.vim이라는 vim 플러그인이 있습니다. http://www.vim.org/scripts/script.php?script_id=39에서 찾을 수 있습니다 . 그것은 당신이 묘사하는 정확한 목적과 거의 비슷합니다.
이를 설치하고 커서를 태그의 본문에 놓고 (<>가 아니라면 일치) 다른 태그로 이동하려면 %를 누르십시오. 스크립트 페이지를 참조하여 일치하는 내용을 찾으십시오.
답변
추가 플러그인없이이 작업을 수행 할 수 있습니다.
- 태그 위에 커서 놓기
- vat -(외부) 태그를 선택하고 끝에 커서를 놓습니다.
- 당신이 당신의 선택을했으면 당신은 상단과 하단으로 전환 할 수 있습니다 o( 마이클 그루버 주에 기반 업데이트 )
- c– y시각 모드를 떠나기 위해 변경 또는 복사 또는 탈출 …
또 다른 유용한 작업은 다음과 같습니다 vit.-태그의 내용을 선택합니다 (내부).
업데이트 (@elrado 덕분에) 예 : vito태그의 내부 내용을 선택하고 선택한 텍스트의 시작 부분에 커서를 놓습니다.
참조 : /superuser/182355/how-can-i-select-an-html-tags-content-in-vim
Vim 참조 (이 사실을 지적한 @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|
...
답변
OP는 그가 실제로하고 싶은 것은 일치하는 태그를 찾을 필요없이 XML의 섹션을 복사하는 것이라고 밝혔다. 이는 일반 모드에서 쉽게 수행됩니다 yat<motion>p
.이 태그는 텍스트를 일치시키고 일치하는 태그를 포함시킨 다음 붙여 넣습니다. yit<motion>p
거의 동일하지만 외부 태그는 포함되지 않습니다.
문자열에서 ‘y’는 물론 일반 모드 “yank”명령입니다. ( :help y
)
a
또는 시각적 선택 i
과 같이 y
또는 내부에서 조작자 후에 오브젝트 선택에 사용될 수 있습니다 . 뒤의 기호 a
또는 i
선택해야 할 항목을 지정합니다. t
여기에 사용 된 객체 유형 은 SGML 태그를 나타냅니다. ( :help object-select
).
물론 <motion>
당신이 선택한 수단으로 어딘가로 이동 p
하고 그 위치에 구부러진 텍스트를 넣는 것을 의미합니다 .
답변
“yank”, “object-select”(태그 선택) 및 “마지막으로 기울어 진 텍스트로 건너 뛰기”를 사용하는 비결입니다.
yit`]
태그를 닫기 전에 오른쪽으로 이동
과
yit
태그를 연 후 바로 점프
참고 : 이것은 기본 레지스터의 내용을 변경합니다