답변:
함께 filetype indent on
안에 내 .vimrc
, 빔 들여 쓰기 HTML은 아주 잘 파일.
shiftwidth
가 2 인 간단한 예 :
<html>
<body>
<p>
text
</p>
</body>
</html>
모두 제자리에 있어야 할 것이 몇 가지 있습니다. 한 곳에서 모두 요약하면 다음과 같습니다.
다음 옵션을 설정하십시오.
:filetype indent on
:set filetype=html # abbrev - :set ft=html
:set smartindent # abbrev - :set si
그런 다음 커서를 파일의 상단으로 이동하고 끝까지 들여 쓰기 gg
=G
하십시오 . 또는 들여 쓰기를 원하는 텍스트를 선택하고 들여 쓰기를 누르 =십시오.
home.html
합니다. .php 파일을 들여 쓰는 데 아무런 문제가 없습니다. 여기에 내 .vimrc가 있습니다 : pastebin.com/FAJ0MCA9
smartindent
필요하지 않습니다. 또한 C 및 C ++에 맞게 조정되었으므로 autoindent
대신 더 일반적인 것을 선호합니다 .
스마트 들여 쓰기를 사용하는 주된 문제는 XML (또는 HTML)이 한 줄에 앉아 있으면 컬 요청에서 돌아올 gg=G
수 있으며 트릭을 수행하지 않는다는 것입니다. 대신 저는 VI에서 직접 호출 한 깔끔한 방법을 사용하여 들여 쓰기를 잘했습니다.
:!tidy -mi -xml -wrap 0 %
이것은 기본적으로 VI를 깔끔하게 호출하여 줄을 줄 바꿈하지 않은 XML 파일을 정리하여 기본 68 자 너비 줄에 맞도록합니다. 큰 29MB XML 파일을 처리했으며 5 초 또는 6 초가 걸렸습니다. HTML 파일의 경우 명령은 다음과 같아야합니다.
:!tidy -mi -html -wrap 0 %
주석에서 언급했듯이 tidy
많은 기본 Linux / MacOS 시스템에서 찾을 수있는 기본 도구입니다. 다음은 원하는 경우에 대비하여 프로젝트 페이지입니다. HTML Tidy .
tylerl이 위에서 설명했듯이 다음을 설정하십시오.
:filetype indent on
:set filetype=html
:set smartindent
그러나 참고 정력 7.4 HTML 태그에 있음을 html
, head
, body
, 일부 다른 사람이되어 있지 기본적으로 들여 쓰기. HTML 파일의 거의 모든 내용이 해당 태그에 속하기 때문에 이치에 맞습니다. 정말로 원한다면 태그를 들여 쓰기 할 수 있습니다.
:let g:html_indent_inctags = "html,body,head,tbody"
자세한 내용은 " 컴파일 된 Vim 7.4에서 HTML 들여 쓰기가 작동하지 않습니다. "및 " 대체 html 들여 쓰기 스크립트 "를 참조하십시오.
이것은 "간편한"HTML을 깔끔한 간격으로 여는 데 잘 작동하는 솔루션입니다.
vim fileIn.html -c "set sw=2 | %s/>/>\r/ | execute 'normal gg=G' | set nohlsearch | g/^\\s*\$/d"
sw
내 기본은 HTML에 대한 너무 높은 인 4 있기 때문에 명령입니다.>
) 뒤에 줄 바꿈 (Vim은 캐리지 리턴이라고 생각합니다 )을 추가합니다.=
.>
( set hlsearch
내 vimrc에 있기 때문에 ).| wq! fileOut.html
Vim을 전혀 입력하지 않고 파일을 정리하면 끝에 추가 할 수도 있습니다 .
:%s/>\s*/>\r/g
( g
전역 대체를 위해 추가 \s*
하고 후행 공백을 제거 하기 위해) 수정했다 . 또한 :%s/</\r</g
열린 괄호 앞에 줄 바꿈을 추가하기 위해 추가했습니다. 그렇지 않으면 like 같은 태그 <td>foo</td>
는 <td>
and 처럼 분할 foo</td>
됩니다.
이 스크립트를 사용합니다 : https://github.com/maksimr/vim-jsbeautify
위의 링크에는 모든 정보가 있습니다.
:call HtmlBeautify()
일을 아름답게합니까!
Vim 사이트에서 HTML 들여 쓰기 스크립트를 사용해 보셨습니까?
/usr/share/vim/vim74/indent/html.vim
. "2014 년 7 월 4 일 : Vim 7.4.356 이상에는이 스크립트의 자손이 포함됩니다 (공식 스크립트는 현재 Bram에 의해 유지 보수되고 대규모 변경 사항이 포함됩니다)"
다음은 들여 쓰기를 할 수있는 강력한 솔루션과 편집하는 동안 신경 쓰지 않아도되는 모든 HTML 인쇄 기능입니다.
먼저 Tidy를 다운로드하십시오 . 바이너리를 경로에 추가해야하므로 어느 위치에서나 바이너리를 호출 할 수 있습니다.
다음으로 선호하는 HTML 버전을 설명하는 구성 파일을 만듭니다. Tidy에는 문서가 적합하지 않지만 다음은 개요 및 모든 옵션 목록입니다 . 내 구성 파일은 다음과 같습니다.
bare: yes
break-before-br: no
clean: yes
drop-proprietary-attributes: yes
fix-uri: yes
indent-spaces: 4
indent: yes
logical-emphasis: yes
markup: yes
output-xhtml: yes
quiet: yes
quote-marks: yes
replace-color: yes
tab-size: 4
uppercase-tags: no
vertical-space: yes
word-2000: yes
wrap: 0
이것을 vimfiles 아래 tidyrc_html.txt
의 ftplugin
폴더 에 저장하십시오 .
또 하나 개의 파일 :에 다음 줄을 추가 (또는 생성) html.vim
도, ftplugin
:
map <leader>tidy :%! tidy -config ~/vimfiles/ftplugin/tidyrc_html.txt <CR>
사용하려면 HTML 파일을 열고을 입력하십시오 /tidy
. (즉, /
는 IS <leader>
키).
당신은 간다! 빠른 솔루션은 아니지만, 이제 엉망인 거대한 HTML 파일을 편집하는 데 약간 더 적합합니다.
당신은 모두 통합 할 수 있습니다 정돈을 하고 , HTML 아름답게 플러그인 설치에 의해 자동으로 VIM-자동 서식을 . 그런 다음 단일 키 입력으로 설치된 포맷터를 실행할 수 있습니다.
코드 파일의 들여 쓰기를 수정하는 데 사용하는 일반적인 "gg = G"명령을 시도했습니다. 그러나 HTML 파일에서는 제대로 작동하지 않는 것 같습니다. 단순히 모든 서식을 제거했습니다.
vim의 자동 서식 / 들여 쓰기 gg=G
가 "깨진"것처럼 보이면 (예 : 모든 줄 들여 쓰기) 왼쪽 들여 쓰기 플러그인이 활성화 /로드되지 않았을 가능성이 높습니다. 실제로 들여 쓰기를 잘못하는 대신 오류 메시지를 표시해야합니다. 그렇지 않으면 사용자는 자동 형식 / 들여 쓰기 기능이 실제로 꽤 좋을 때 끔찍하다고 생각합니다.
들여 쓰기 플러그인이 활성화 /로드되었는지 확인하려면을 실행하십시오 :scriptnames
. .../indent/html.vim
이 목록에 있는지 확인하십시오 . 그렇지 않은 경우 플러그인이로드되지 않았 음을 의미합니다. 이 경우이 줄을 ~/.vimrc
다음에 추가하십시오 .
filetype plugin indent on
이제 파일을 열고 실행 :scriptnames
하면 다음 과 같이 표시 .../indent/html.vim
됩니다. 그런 다음을 실행 gg=G
하십시오. 이제 올바른 자동 형식 / 들여 쓰기를해야합니다. 줄 바꿈을 추가하지는 않지만 모든 HTML 코드가 한 줄에 있으면 들여 쓰기되지 않습니다.
참고 : :filetype plugin indent on
대신 vim 명령 줄에서 실행중인 경우 ~/.vimrc
파일을 다시 열어야합니다.:e
.
또한 걱정할 필요가 없으며 설정 autoindent
과 smartindent
관련이 없습니다.