Sublime Text 2를 사용하여 HTML 코드를 어떻게 다시 포맷합니까?


1313

다시 포맷하려는 형식이 잘못된 HTML 코드가 있습니다. Sublime Text 2에서 HTML 코드를 자동으로 다시 포맷하여 더보기 쉽고 읽기 쉬운 명령이 있습니까?



1
또한 빈티지 모드를 사용하는 경우 일반 모드에서 gg = G를 사용할 수 있습니다.
Wiktor Mociun

3
이 전체 페이지를 읽는 데 시간을 낭비하거나 github.com/akalongman/sublimetext-codeformatter 를 가져 와서 다시 일할 수 있습니다.
shaneparsons 2016 년

답변:


2080

이를 위해 플러그인이 필요하지 않습니다. 모든 줄 ( Ctrl A)을 선택한 다음 메뉴에서 편집 → 줄 → 다시 들여 쓰기를 선택하십시오. 파일이 .html또는 과 같은 HTML을 포함하는 확장명으로 저장된 경우 작동합니다 .php.

이 작업을 자주 수행하면이 키 매핑이 유용 할 수 있습니다.

{ "keys": ["ctrl+shift+r"], "command": "reindent" , "args": { "single_line": false } }

파일이 저장되지 않은 경우 (예 : 스 니펫에 방금 새 창에 붙여 넣은 경우) 다시 들여 쓰기 language of choice옵션을 선택하기 전에 보기 → 구문 → 메뉴를 선택하여 들여 쓰기 언어를 수동으로 설정할 수 있습니다 .


19
그건 그렇고, 이것은 Ruby 나 JS와 같은 비 HTML 소스 코드에서도 작동합니다.
peter

78
코드에 한 줄에 여러 태그가 열리지 않거나 한 줄에 닫히지 않거나 그 반대의 경우에도 효과적입니다.
Charlie Gorichanaz

31
완전한! Mac에서는 cmd 키에 super가 필요하므로 { "keys": [ "super + shift + r"], "command": "reindent", "args": { "single_line": false}}
Geert Weening

168
라인 reindent는 임의의 HTML을 다시 포맷하는 데 절대적으로 효과가 없습니다. 줄 바꿈이없는 여러 html 태그가있는 경우와 같이 @anneke의 HtmlTidy 답변이 우수합니다. 줄 바꿈과 상관없이 소스 HTML을 멋지게 들여 쓰기 된 소스로 완벽하고 올바르게 다시 포맷합니다.
jpw

33
초보자의 경우 "환경 설정"을 클릭 한 다음 "키 바인딩-사용자"를 선택하고 대괄호 사이에 피터 코드를 붙여넣고 파일을 저장하십시오.
sigmapi13

375

Sublime에서 HTML을 포맷하는 데에는 십여 가지 방법이 있습니다. 가장 인기있는 플러그인을 모두 테스트했습니다 (자세한 내용은 블로그 에서 작성한 글 참조). 다음은 가장 인기있는 옵션에 대한 간략한 개요입니다.

다시 들여 쓰기 명령

장점 :

  • Sublime과 함께 제공되므로 플러그인을 설치할 필요가 없습니다.

단점 :

  • 여분의 빈 줄을 삭제하지 않습니다
  • 축소 된 HTML, 여러 개의 열린 태그가있는 행을 처리 할 수 ​​없음
  • <script>블록을 올바르게 포맷하지 않습니다

꼬리표

장점 :

  • ST2 / ST3 지원
  • 여분의 빈 줄을 제거합니다
  • 바이너리 의존성 없음

단점 :

  • PHP 태그에 질식
  • <script>블록을 올바르게 처리하지 않습니다

HTMLTidy

장점 :

  • PHP 태그 처리
  • 서식을 조정하기위한 일부 설정

단점 :

  • PHP 필요 (웹 서비스로 폴백)
  • ST2 만
  • 버려진?

HTML 미용

장점 :

  • ST2 / ST3 지원
  • 단순하고 binaray 의존성이 없음
  • OS X, Win 및 Linux 지원

단점 :

  • 인라인 주석으로 약간 질식
  • 최소화 / 압축 코드를 확장합니다

HTML-CSS-JS Prettify

장점 :

  • ST2 / ST3 지원
  • HTML, CSS, JS 처리
  • Sublime의 메뉴와의 뛰어난 통합
  • 고도로 사용자 정의 가능
  • 프로젝트 별 설정
  • 저장시 형식 옵션

단점 :

  • Node.js 필요
  • 임베디드 PHP에는 좋지 않습니다

어느 것이 가장 좋은가요?

HTML-CSS-JS Prettify가 제 책의 승자입니다. 불평하지 않는 많은 훌륭한 기능.


12
Prettify에서 2 위. 다시 들여 쓰기는 내가 가진 HTML에서 작동하지 않았으며 Tag를 찾을 수 없었으며 HtmlTidy는 전화했을 때 아무것도하지 않았습니다.
jcollum

2
방금 시도해 보았고 HTML-CSS-JS Prettify는 내 유스 케이스에서 이상적으로 작동했습니다 (내장 된 reindent 또는 다른 reformatter 패키지보다 훨씬 나은 HTML 정리 처리)
Mark Essel

2
다른 모든 것들을 시험해 보았지만 (HTML 스 니펫을 위해) 작동 한 유일한 것은 HTML-CSS-JS Prettify였습니다. 감사합니다!
zumek

1
또한 ST의 내장 기능을 사용하여 모든 들여 쓰기 (예 : 마크 업을 편집 한 후)를 제거 할 수 있다고 언급하고 싶었습니다. 블록을 선택하고 ctrl + j를 누릅니다.
zumek

1
HTML 이외의 확장명에서도 작동합니까? PHP와 다른 템플릿을 사용해 보았습니다. 작동하지 않았습니다.
Bsienn

179

내가 찾은 유일한 패키지는 Tag 입니다.

패키지 컨트롤을 사용하여 설치할 수 있습니다. https://sublime.wbond.net

패키지 제어를 설치 한 후 제어 패키지로 이동 ( 기본 설정 -> 패키지 제어 )를 입력 한 다음 install, 히트를 enter. 그런 다음을 입력 tag하고 누르십시오 enter.

태그를 설치 한 후 텍스트를 강조 표시하고 바로 가기 Ctrl+ Alt+를 누릅니다 F.


21
더 좋은 플러그인은 Tidy HTML입니다.
MatthewFord

1
고마워 ... 방금 패키지에 대해 알고 있었다 : D. 숭고한 텍스트에 대한 멋진 것들도 여기에서 보았습니다. arlando.net/blog/…
mars-o

3
이것은 솔직하게 수백 개의 임의의 줄 바꿈이있는 HTML 코드와 잘못 중첩 된 HTML 코드에서 완벽하게 작동하는 유일한 것입니다. 기본적으로 내가 본 것 중 가장 지저분한 HTML 페이지 중 하나를 정리했습니다!
justinhartman

1
@ mars-o에 동의하지 않습니다. 이 플러그인은 훌륭합니다. Tidy는 실제로 몇 가지 일을 잘하고 매우 잘 확립되어 있지만이 플러그인은 몇 가지 다른 흥미로운 일을합니다. 게시물 주셔서 감사합니다.
zedd45

@JonnyLeeds 그것은 그렇습니다, 그러나 항상 정확하게는 아닙니다. 특히 XML의 경우, Indent XML또는 IndentX다른 것들 중에서 시도하십시오 .
Joel Mellon

49

이 플러그인을 추천합니다 : HTML / CSS / JS Prettify , 그것은 실제로 작동합니다.

설치 후 코드를 선택하고을 누릅니다 Ctrl+Shift+H.

끝난!


3
해당 플러그인을 사용하려면 Node.js가 필요합니다. 일반 사용자에게는 편하지 않습니다.
nikoskip

4
이 플러그인의 유용성과 비교하여 Node.js 설치 문제를 무시할 수 있습니다.)
Peter Zhu

packagecontrol.io/packages/HTML-CSS-JS%20Prettify 설치 지침이 훌륭했습니다. 감사.
Sacky San

41

일반적인 팁. HTML을 자동 정리하고 HTML_Tidy 패키지를 설치 한 다음 기본 설정 (사용하는)에 다음 키 바인딩을 추가했습니다.

{ "keys": ["enter"], "command": "html_tidy" },

이것은 모든 입력마다 HTML Tidy를 실행합니다. 이것에 단점이있을 수 있습니다. 나는 Sublime에 익숙하지 않지만 내가 원하는 것을하는 것 같습니다 :)


2
이 플러그인은 큰 파일에서 약간 집중적이 될 수 있다고 생각합니다 .Enter를 누를 때마다 실행되면 느려질 수 있습니까?
Rikki

2
ENTER 키 바인딩을 약 하루 동안 사용한 다음 제거했습니다. v2에서는 화면이 너무 느리고 커서를 화면 상단으로 가져갔습니다.
Ravi Ram

22

질문은 HTML에 관한 것이지만 Sublime Text 2에 대한 Javascript 코드자동 형식화 하는 방법에 대한 정보를 추가로 제공하고 싶습니다 .

모든 코드 ( ctrl+ A)를 선택하고 인앱 기능 reindent ( Edit-> Line-> Reindent)를 사용하거나 JsFormat 형식 플러그인을 사용 Sublime Text 2하여 코드를 형식화하는 방법에 대한 사용자 정의 가능한 설정을 원하는 경우 숭고한 텍스트의 기본 탭 / 들여 쓰기 설정.

https://github.com/jdc0589/JsFormat

패키지 제어 ( -> ) 를 사용하여 JsFormat 을 쉽게 설치할 수 있습니다. 패키지 제어를 연 다음 install, hit입력하십시오 . 그런 다음을 입력 하고 누르십시오 . (패키지 컨트롤러는의 왼쪽 하단에 성공 및 오류와 함께 설치 상태를 표시합니다. )PreferencesPackage Controlenterjs formatenterSublime

키 바인딩에 다음 행을 추가하십시오 ( Preferences-> Key Bindings User).

{ "keys": ["ctrl+alt+2"], "command": "js_format"}

ctrl+ alt+를 사용 2하고 있습니다. 원하는 바로 가기 키를 변경할 수 있습니다. 지금까지 JsFormat사용해 볼 가치가있는 좋은 플러그인입니다!

이것이 누군가를 도울 수 있기를 바랍니다.



13

나에게 HTML Prettify해결책은 매우 간단했다. HTML Prettify 페이지로 갔다 .

  1. 필요한 Sublime Package Manager
  2. 여기 에서 패키지 관리자 설치 지침을 따랐습니다.
  3. cmd + shift + p메뉴를 불러 오기 위해 입력
  4. 타이핑 prettify
  5. HTML prettify메뉴에서 선택을 선택하십시오

팔. 끝난. 좋아 보인다


이 솔루션은 내가 원하는 방식대로 정확하게 작동했으며 PM을 이미 설치 한 경우 2 초를 제외하고 모두 걸립니다. prettify 패키지를 설치해야한다고 추가 할 수 있습니다.
doogle

참고 : 관심있는 사람은이 답변의 플러그인에 node.js를 설치해야합니다.
가짜 이름

제대로 작동하지 않습니다. HTML을 들여 쓰기 / 줄 바꿈하여 특정 수준의 들여 쓰기까지하고 나머지는 들여 쓰지 않고 같은 줄에 두었습니다.
Jonathan

11

간단하게

문서의 편집-> 태그-> 자동 서식 태그


6
Sublime Text 2 Version 2.0.1, Build 2217Mac 에서 해당 메뉴 옵션이 표시되지 않습니다 . 표준 기능입니까?
ostergaard

1
패키지 관리자에서 태그를 설치해야합니다. 그러나 한 가지 문제가 있습니다. 때 <b>somthing</b>쉼표 뒤에 쉼표 뭔가 및 브라우저보기에서 쉼표 사이의 공간에 결과 새 줄에 배치됩니다.
reitermarkus

9

HTML을 다시 포맷하는 작업을 수행하는 HTMLBeautify 라는 패키지를 만들었습니다 . 나는 1997 년에 찾은 Perl 스크립트를 기반으로 새로운 모든 최신 현대 태그와 작동하도록 업데이트했습니다. :)

그것을 확인하고 당신이 어떻게 생각하는지 알려주세요!

https://github.com/rareyman/HTMLBeautify


3
나는 그것을 설치했지만 데모 파일에서 HTMLBeautify를 실행할 때 아무것도하지 않습니다. 메시지 파일이 아름답다는 메시지가 표시되지만 파일 내용에는 아무 변화가 없습니다.
Sam

내 생각 엔 당신은 Windows를 사용하고 있습니까…? Windows에서 스크립트를 사용하려면 SublimeText 2를 다시 시작해야합니다. 그것을 시도하고 무슨 일이 있는지 알려주십시오. :)
Ross

스크립트를 사용할 수 있었지만 파일에서 아무것도 변경하지 않았습니다.
Sam

이상한. 다른 모든 플러그인 / 패키지가 정상적으로 작동한다고 가정합니까? 테스트 환경에서이 문제를 재현 할 수없는 것 같습니다. :(
Ross

형식화 외에도 모든 것이 예상대로 작동합니다. 어쩌면 독일어 버전의 Windows를 실행하고 있기 때문일 수 있습니까?
Sam

7

나는 이것이 당신이 찾고있는 것이라고 생각합니다.

https://github.com/victorporof/Sublime-HTMLPrettify


지시 사항을 따랐지만 작동하지 않았습니다. 플러그인에서 오류가 발생합니다. " '{'은 (는) 내부 또는 외부 명령, 실행 가능한 프로그램 또는 배치 파일로 인식되지 않습니다."
라비 램

나는 특정 패키지가 Node를 설치해야한다고 믿습니다. dandean.com/nodejs-npm-express-osx 는 NPM을 무시하고 다음과 같이 표현합니다.
bgreater

@Allan 이것은 Windows에서 작동합니다. 내 컴퓨터에 node.js가 설치되어 있습니다.
Anirudha Gupta

7

나는 아직 언급 할 특권이 없으므로 위 의 답변에 대한 @peter의 답변 과 관련된 추가 정보 일뿐 입니다.

헤더의 IE 조건부 주석 이 완전히 인라인되지 않은 경우 HTML이 예상대로 정렬되지 않은 것으로 나타났습니다.

<!--[if lt IE 7]>
<p class='chromeframe'>Your browser is <em>unsupported</em>. <a href="http://browsehappy.com/">Upgrade to a different browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to experience this site.</p>
<![endif]-->
<!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]--> 

7

멋진 오픈 소스 CodeFormatter 플러그인 이 있습니다.이 코드는 모든 코드가 한 줄에 있어도 더러운 코드를 아름답게 만들 수 있습니다.


참고 : 로컬 PHP 설치가 필요합니다.
가짜 이름

나는 이것이 유일한 좋은 플러그인 이라는 것을 발견했다 . 그리고 나는 그들 모두를 거의 시도했다.
shaneparsons 2016 년

HTML 속성을 형식화하기위한 설정이있는 것 같습니다. 다른 플러그인이 보이지 않습니까? 아니면 내가 빠졌습니까?
Basil

4

깔끔한 HTML을 사용자 지정 빌드 시스템과 함께 사용 하고 있습니다.

내 Packages / User / 디렉토리에 HTMLTidy.sublime-build가 있습니다.

{
  "cmd": ["tidy", "-config", "$packages/User/tidy_config.cfg", "$file"]
}

같은 디렉토리에있는 tidy_config.cfg 파일 :

indent: auto
tab-size: 4
show-warnings: no
write-back: yes
quiet: yes
indent-cdata: yes
tidy-mark: no
wrap: 0

빌드 시스템을 선택하고 ctrl+ b또는 cmd+ b를 눌러 파일 내용을 다시 포맷하십시오. 그것에 대한 한 가지 사소한 문제는 ST2가 파일을 자동으로 다시로드하지 않기 때문에 다른 파일로 또는 다른 응용 프로그램으로 전환 해야하는 결과를 볼 수 있다는 것입니다.

Mac에서는 macports를 사용하여 깔끔하게 설치했지만 Windows에서는 직접 다운로드하고 tidy가있는 빌드 시스템에서 작업 디렉토리를 지정해야합니다.

"working_dir": "c:\\HTMLTidy\\"

또는 PATH에 추가하십시오.


4

바로 가기 키를 F12쉽게 설정할 수 있습니다 !!!

{ "keys": ["f12"], "command": "reindent" , "args": { "single_line": false } }

자세한 내용은 여기를 참조 하십시오 .


6
쓸모없는 대답; 이것은 허용되는 답변의 복제본입니다.
Mark Amery
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.