문제

모두 엉망인 그의 거대한 HTML 파일의 압입을 어떻게 수정합니까?

나는 평소를 시도했다 "gg = g"명령, 코드 파일의 압입을 수정하는 데 사용하는 것입니다. 그러나 HTML 파일에서는 제대로 작동하지 않는 것 같습니다. 그것은 단순히 모든 형식을 제거했습니다.

나는 또한 설정을 시도했다 :filetype = xml, 이것이 XML 파일이라고 생각하도록 속이는 지 확인하는 것이 도움이 될 수 있지만 여전히 그렇게하지 않았습니다.

도움이 되었습니까?

해결책

와 함께 filetype indent on 내 내부 .vimrc, vim은 html 파일을 아주 멋지게 들여다 봅니다.

a shiftwidth

<html>
  <body>
    <p>
    text
    </p>
  </body>
</html>

다른 팁

모든 것이 제자리에 있어야 할 몇 가지가 있습니다. 한 위치에 모두 요약하기 위해 :

다음 옵션을 설정하십시오.

:filetype indent on
:set filetype=html           # abbrev -  :set ft=html
:set smartindent             # abbrev -  :set si

그런 다음 커서를 파일 상단으로 옮기고 끝까지 들여 쓰기하십시오. gg =G
또는 원하는 텍스트를 선택하여 들여 쓰고 누릅니다 = 그것을 들여 쓰기.

Smart Indentation을 사용하는 주요 문제는 XML (또는 HTML)이 한 줄에 앉으면 CURL 요청에서 돌아올 수 있다는 것입니다. gg=G 트릭을하지 않습니다. 대신 나는 vi에서 직접 호출 된 Tidy를 사용하여 좋은 들여 쓰기를 경험했습니다.

:!tidy -mi -xml -wrap 0 %

이것은 기본적으로 VI에게 Tidy를 호출하여 XML 파일을 정리하여 선을 감싸지 않도록 기본 68 자의 폭에 맞게 적합합니다. 큰 29MB XML 파일을 처리했는데 5-6 초가 걸렸습니다. HTML 파일의 경우 명령이 다음과 같아야한다고 생각합니다.

:!tidy -mi -html -wrap 0 %

의견에 언급했듯이 tidy 많은 기본 Linux / MacOS 시스템에서 찾을 수있는 기본 도구입니다. 다음은 Projet의 페이지입니다. HTML 깔끔한.

이것이 도움이되기를 바랍니다.

Tylerl이 위에서 설명한 것처럼 다음을 설정하십시오.

:filetype indent on
:set filetype=html
:set smartindent

하지만!

VIM 7.4에서 HTML 태그 html, head, body, 그리고 다른 사람들은 그렇습니다 ~ 아니다 기본적으로 들여 쓰기. HTML 파일의 거의 모든 컨텐츠가 해당 태그에 해당하므로 이는 의미가 있습니다. 당신이 정말로 원한다면, 당신은 그 태그를 그렇게 들여 쓰기 할 수 있습니다.

:let g:html_indent_inctags = "html,body,head,tbody" 

보다 여기 그리고 여기 자세한 내용은.

이것은 "Ugly"HTML을 멋지게 간격으로 여는 데 잘 작동하는 솔루션입니다.

vim fileIn.html -c "set sw=2 | %s/>/>\r/ | execute 'normal gg=G' | set nohlsearch | g/^\\s*\$/d"

그만큼 sw 명령은 내 기본값이 4이기 때문에 HTML에 비해 너무 높기 때문입니다.

다음 부분은 새로운 라인을 추가합니다 (VIM은 각 요소 후 (마차 반환, 한숨이라고 생각합니다) (>)

그런 다음 전체 파일을 다시 표시하십시오 =

그런 다음 UNHINGLIGHT > (내가 가지고 있기 때문에 set hlsearch 내 VIMRC에서)

그런 다음 모든 빈 / 공백 전용 라인을 제거하십시오 (참조 여기 더욱

추가 할 수도 있습니다 | wq! fileOut.html VIM을 전혀 입력하고 싶지 않지만 파일을 정리하십시오.

이 스크립트를 사용합니다.https://github.com/maksimr/vim-jsbeautify

위의 링크에는 모든 정보가 있습니다.

  1. 설치
  2. 구성 (첫 번째 예제에서 복사)
  3. 운영 :call HtmlBeautify()

직업이 아름답게!

VIM 사이트에서 HTML Indentation Script를 사용해 보셨습니까?

다음은 무거운 체중 솔루션이 있습니다.

먼저 다운로드 깔끔한. 이진을 경로에 추가하여 모든 위치에서 호출 할 수 있는지 확인하십시오.

다음으로, 좋아하는 HTML 맛을 설명하는 구성 파일을 만듭니다. 문서화는 깔끔하지 않지만 여기에 있습니다. 개요, 및 목록 모든 옵션. 내 구성 파일은 다음과 같습니다.

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

이것을 저장하십시오 tidyrc_html.txt 당신의 ftplugin 폴더 (vimfiles 아래).

하나 더 파일 : 다음 줄을 추가 (또는 생성) html.vim, 또한 ftplugin:

map <leader>tidy :%! tidy -config ~/vimfiles/ftplugin/tidyrc_html.txt <CR>

사용하려면 HTML 파일을 열고 입력하십시오. /tidy. (저것 / 입니다 <leader> 열쇠.)

당신은 간다! 빠른 솔루션은 아니지만, 이제는 거대하고 엉망인 HTML 파일을 편집하는 데 약간 더 잘 갖추어져 있습니다.

둘 다 통합 할 수 있습니다 깔끔한 그리고 html-beautify 플러그인을 설치하여 자동으로 vim-autoformat. 그런 다음 단일 키 스트로크로 설치된 Formatter를 실행할 수 있습니다.

나는 일반적인 "gg = g"명령을 시도했는데, 이것은 코드 파일의 압입을 수정하는 데 사용하는 것입니다. 그러나 HTML 파일에서는 제대로 작동하지 않는 것 같습니다. 그것은 단순히 모든 형식을 제거했습니다.

VIM의 자동 지/계약 인 경우 gg=G "깨진"(예 : 모든 라인을 들여 쓰기) 인 것 같습니다. 대부분의 인트 플러그인이 활성화/로드되지 않았을 가능성이 높습니다. 그것은 단지 나쁜 들여 쓰기를하는 대신 오류 메시지를 제공해야합니다. 그렇지 않으면 사용자는 자동 관단/들여 쓰기 기능이 실제로 꽤 좋을 때 끔찍하다고 생각합니다.

Indent 플러그인이 활성화/로드되어 있는지 확인하려면 실행하십시오. :scriptnames. 확인하십시오 .../indent/html.vim 목록에 있습니다. 그렇지 않으면 플러그인이로드되지 않았 음을 의미합니다. 이 경우이 줄을 추가하십시오 ~/.vimrc:

filetype plugin indent on

이제 파일을 열고 실행하면 :scriptnames, 넌 봐야 해 .../indent/html.vim. 그런 다음 실행하십시오 gg=G, 지금은 올바른 자동 형태/들여 쓰기해야합니다. (Newlines를 추가하지는 않지만 모든 HTML 코드가 한 줄에 있으면 압입되지는 않습니다).

참고 : 실행중인 경우 :filetype plugin indent on 대신 vim 명령 줄에서 ~/.vimrc, 파일을 다시 열어야합니다 :e.

또한 걱정할 필요가 없습니다 autoindent 그리고 smartindent 설정, 이는 관련이 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top