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
', 는'의 결과.xmllint
vim에서 선택한 텍스트 위에 배치됩니다. 그-
이 입니다 -입니다 vim우로 xmllint
.
하여 들여쓰기xml
이 이요를 이 경우엔 제가 선택한 겁니다.xmllint
을 , 로 합니다.equalprg
옵션:
:set equalprg=xmllint\ --format\ -
이제 실행할 수 있습니다.
gg=G
내버려 두다xmllint
을 지정합니다.xml
vim을 사용할 때마다 받기 위해서는.autocommand
설정합니다.
autocommand
au FileType xml setlocal equalprg=xmllint\ --format\ --recover\ -\ 2>/dev/null
타사 툴이 필요 없는 간단한 솔루션은 '<...>'. 그러면 표준 vim 자동 들여쓰기를 사용할 수 있습니다.간단히 말해서:
%s/</\r</g
gg=G
단답형:match it.vim을 켜세요.추가할 수 있습니다.packadd matchit
o대로.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
'source' 카테고리의 다른 글
OLD에서 각각의 차이를 확인하는 방법.* MySQL 트리거에서 NEW.* 열로 이동하시겠습니까? (0) | 2023.09.21 |
---|---|
내부에 추가할 수 있습니까?후손의 이벤트 청취자를 파괴하지 않고 HTML? (0) | 2023.09.21 |
Oracle 19c에서 large json을 clob에 반환할 때 ORA-40478 (0) | 2023.09.21 |
VBA를 사용하여 아래 셀이 비어 있는지 확인 (0) | 2023.09.21 |
ng-change에 대한 지연을 캡슐화하는 각도 지시 (0) | 2023.09.21 |