VI에서 HTML 파일의 압입을 어떻게 정리합니까?
-
03-07-2019 - |
문제
모두 엉망인 그의 거대한 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
위의 링크에는 모든 정보가 있습니다.
- 설치
- 구성 (첫 번째 예제에서 복사)
- 운영
: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
설정, 이는 관련이 없습니다.