source

Vim endent xml 파일

factcode 2023. 9. 21. 21:33
반응형

Vim endent xml 파일

저는 Vim을 배우고 있지만 이것은 간단한 일이라고 생각했는데 작동이 안 됩니다.저는 브라우저 SO를 가지고 있지만 솔루션이 제게 맞지 않습니다.

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

gg=G 

또는 ggVG= (이것을 내가 직접 만든 것은 아마도 다른 것을 할 것입니다 ;)

내 .vimrc는:

syntax on 
filetype plugin indent on 
set nu 

Berei의 대답이 마음에 듭니다. 점에서 더 하다고 생각합니다,만.vimrc파일. 또한 XML 파일의 선택된 부분을 포맷하는 것이 더 쉽습니다(제가 자주 하는 일입니다.

먼저 포맷할 XML을 강조 표시합니다.

그런 다음 시각적 모드에서 입력합니다.! xmllint --format -

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

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

그럼 엔터를 칩시다.

기술설명

는 됩니다.xmllint어,어--format ', 는'의 결과.xmllintvim에서 선택한 텍스트 위에 배치됩니다. 그- 이 입니다 -입니다 vim우로 xmllint.

하여 들여쓰기xml 이 이요를 이 경우엔 제가 선택한 겁니다.xmllint을 , 로 합니다.equalprg옵션:

:set equalprg=xmllint\ --format\ -

이제 실행할 수 있습니다.

gg=G

내버려 두다xmllint을 지정합니다.xml

을 사용할 때마다 받기 위해서는.autocommand설정합니다.

autocommand

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

타사 툴이 필요 없는 간단한 솔루션은 '<...>'. 그러면 표준 vim 자동 들여쓰기를 사용할 수 있습니다.간단히 말해서:

  1. %s/</\r</g
  2. gg=G

단답형:match it.vim을 켜세요.추가할 수 있습니다.packadd matchito대로.vimrc, 또는 vim-sensible를 사용하여 기본적으로 활성화합니다.

긴 답변:는 Vim 위키에서 논의된 xmlint 접근법을 포함하여 Vim에서 XML을 자동으로 들여보내기 위한 많은 전략을 시도했습니다.문제는.xmllint식부 외부 한 접근 방식을 사용할 수 있습니다.xmlformat그리고.tidy는이 모두 빈 줄을 짜내야 한다고 입니다.다를줄고합니다.xmllint최선의 선택은 아닙니다

matchit.vim 스크립트가 활성화되어 있는 한 Vim의 equals (=) 명령은 이미 XML을 지원하는 것으로 나타났습니다.그것을 가능하게 하는 아주 쉬운 한 가지 방법은 교황의 vim-sensible을 채택하는 것입니다.다른 것은 추가하는 것입니다.packadd matchit당신에게.vimrc. 그러면 XML 형식이 "바로 작동"합니다.

이는 ~/.vimrc를 올바르게 설정한 후 달성하기 쉽습니다.

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

filetype indent on
set smartindent

이렇게 하면 커서를 파일 상단으로 이동하고 끝까지 들여쓰기 할 수 있습니다: gg=G

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

제시 호건의 대답도 좋지만 좀 더 간단한 대답을 하고 싶습니다.

vim에 있고 XML 파일이 열려 있는 동안 일반 모드에서는 다음과 같이 기록합니다.

:%!xmllint --format %

그런 다음 Enter 키를 누릅니다.모든 XML 파일이 포맷됩니다.

에 xmllint를 설치했어야 한다는 것을 기억하세요.

VIM에서는 다음 명령을 사용하여 (하드 탭을 사용하여) 전체 파일을 자동으로 들여씁니다.

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

^I+,+vCTRLi를 통해 생성하는 단일 문자입니다.

저도 같은 문제가 있었습니다.알고 보니, 그 선이

set viewdir=~\.vim\views\

내 안에.vimrc문제를 일으켰습니다.꼭 확인해보세요, 당신은 그걸 가지고 있지 않아요.

사용하고 있는 것에 대하여coc.nvim플러그인, 설치할 수 있습니다.coc-xml타고:CocInstall coc-xml, 그런 다음 구성 파일에 형식 키를 매핑합니다.nmap <silent> fm <Plug>(coc-format). 이제부터는 xml 파일 뿐만 아니라 다른 파일도 매우 쉽게 포맷할 수 있습니다.

가져올 수 없음coc-xml자바 문제로 인해 작동 중입니다.파이썬의 xml 모듈을 사용하는 것은 이미 많은 최신 시스템이 파이썬과 함께 제공되고 있기 때문에 빠른 해결책이 될 수 있는 것으로 나타났습니다.아래에 당신의 것에.vimrc

com! 포맷XML :%!python3 -c "import xml.dom.minidom, sys; print(xml.dom.minidom.parse(sys.stdin).toppytyxml ())"

이제 할 수 있습니다.:FormatXML명령어 모드에서 시작합니다.그런 다음 구문 강조 표시를 설정합니다.

:set ft=xml
# OR
:set syntax=xml

보너스 : SAML로 하던 중이었기 때문에 base64 text(비주얼모드)를 선택하면 vim/neovim 안에서 base64를 빠르게 해독할 수 있고,!base64 -d명령어 모드로 전환됩니다. 됩니다.명령에 다음과 같이 표시됩니다.

:'<','>!base64 -d

언급URL : https://stackoverflow.com/questions/21408222/vim-indent-xml-file

반응형