Programing

Vim 들여 쓰기 xml 파일

lottogame 2020. 9. 10. 08:17
반응형

Vim 들여 쓰기 xml 파일


저는 Vim을 배우고 있지만 이것이 간단한 작업이라고 생각했지만 작동하지 않습니다. 브라우저가 있지만 솔루션이 작동하지 않습니다.

파일 (xml)을 올바르게 들여 쓰려고합니다. 내가 사용하는 명령은 다음과 같습니다.

gg=G 

또는 ggVG = (이것이 아마 다른 일을하도록 만들었습니다.))

내 .vimrc는 다음과 같습니다.

syntax on 
filetype plugin indent on 
set nu 

나는 Berei의 대답을 좋아합니다. 그러나 다음은 vimrc파일 을 변경할 필요가 없다는 점에서 좀 더 유연하다고 생각 합니다. 또한 XML 파일의 일부를 선택하는 것이 더 쉽습니다 (내가 많이하는 일).

먼저 형식을 지정할 XML을 강조 표시하십시오.

그런 다음 일반 모드에서 ! xmllint --format -

하단의 명령 줄은 다음과 같습니다.

:'<,'>!xmllint --format -

그런 다음 Enter 키를 누르십시오.

기술적 설명

선택한 텍스트는 xmllint명령 으로 전송 된 다음 --format'ed' 로 전송되고 결과는 xmllintvim에서 선택한 텍스트 위에 배치됩니다. -이 경우, 정력에 보내는 선택한 텍스트이고, - 명령의 끝은 표준 입력을 수신하기위한 것이다 xmllint.


외부 프로그램을 사용하여 xml파일 을 들여 쓰십시오 . 이 경우 xmllint에는을 equalprg선택 했으므로 명령을 옵션으로 설정하십시오 .

:set equalprg=xmllint\ --format\ -

이제 실행할 수 있습니다.

gg=G

수 있도록 xmllint당신의 포맷 xml파일을.

을 사용할 때마다 가져 오려면 an autocommand사용하여 설정하십시오.

autocommand 아래 댓글에서

au FileType xml setlocal equalprg=xmllint\ --format\ --recover\ -\ 2>/dev/null

타사 도구가 필요하지 않은 간단한 솔루션은 각 여는 태그 '<...>'앞에 개행 문자를 삽입하는 것입니다. 그런 다음 표준 vim 자동 들여 쓰기를 사용할 수 있습니다. 요컨대 :

  1. %s/</\r</g
  2. gg=G 자동 들여 쓰기

짧은 대답 : matchit.vim을 켜십시오 . 당신은 추가 할 수 있습니다 packadd matchit당신에게 .vimrc, 또는 사용 VIM-재치 , 기본적으로 할 수 있습니다.

긴 답변 : 저는 Vim 위키에서 논의 된 xmllint 접근 방식을 포함하여 Vim에서 XML을 자동 들여 쓰기하는 많은 전략을 시도했습니다 . 의 문제 xmllint(와 같은 다른 외부 CLI 도구와 같은 접근 방식 xmlformattidy도)는 모두 빈 줄 바꿈을 압박 주장이다. 빈 줄, 주석 및 / 또는 기타 의도적 인 서식을 제거하지 않고 XML을 들여 쓰는 것 xmllint이라면 최선의 선택이 아닙니다.

Vim의 같음 (=) 명령은 matchit.vim 스크립트가 활성화 되어있는 한 이미 XML을 지원합니다 . 이를 활성화하는 가장 쉬운 방법 중 하나는 tpope의 vim-sensible 을 채택하는 것입니다 . 또 다른 추가하는 것입니다 packadd matchit당신에게 .vimrc. 그러면 XML 서식이 즉시 "작동"합니다.


~ / .vimrc가 올바르게 설정되면 쉽게 얻을 수 있습니다.

~ / .vimrc에서 다음 옵션을 설정합니다.

filetype indent on
set smartindent

이렇게하면 커서를 파일의 맨 위로 이동하고 끝까지 들여 쓸 수 있습니다. gg = G

시각적 모드로 원하는 텍스트를 선택하고 =를 눌러 들여 쓰기 할 수도 있습니다.


VIM에서 다음 명령을 사용하여 전체 파일 (하드 탭 사용)을 자동 들여 쓰기합니다.

:%!XMLLINT_INDENT="^I" xmllint --format -

(가) ^I당신을 통해 생성 한 캐릭터입니다 : CTRL+ v, CTRL+i


나는 같은 문제가 있었다. 그 라인이

set viewdir=~\.vim\views\

.vimrc문제를 일으켰습니다. 당신은 그것을 가지고 있지 않은지 확인하십시오.

참고 URL : https://stackoverflow.com/questions/21408222/vim-indent-xml-file

반응형