2012-11-12 2 views
2

다른 HTML 태그로 전체 HTML 섹션을 빠르게 래핑하고 싶습니다.vim에 HTML 태그가있는 섹션을 래핑

기존 HTML :

<div id='a'> 
    <img src='a.png'> 
</div> 
<div id='b'> 
    <img src='b.png'> 
</div> 

수정 된 HTML :

<div id='Main'> 
    <div id='a'> 
     <img src='a.png'> 
    </div> 
    <div id='b'> 
     <img src='b.png'> 
    </div> 
</div> 

내가, 내 다른 div의 주위에 외부 DIV 필요과 같이 깨달을 때 나는이에 많이 실행 matchit.vimsurround.vim을 사용할 수는 있지만 surround.vim이 단어 (예 : <div>)를 둘러싸고 있다고 생각하지 않습니다. 단 하나의 문자 (예 : <) 또한 들여 쓰이지 않습니다.

제가 지금 생각할 수있는 가장 가까운 것은 15-20 개의 버튼을 누르는 것입니다.

+2

surround.vim이 실제로이를 지원합니다. readme에는 바로 나와 있지만 vim.org는 그것을 망가 뜨리는 것으로 보입니다. https://github.com/tpope/vim-surround/blob/master/README.markdown –

+0

@RandyMorris HTML 태그로 둘러 쌉니다. 그러나 README는 내부 텍스트가 들여 쓰기도 가능하다고 말하면서 어떻게 구현 될 수 있습니까? – ZyX

+2

's' 대신'S'를 사용합니다. –

답변

7

surround.vim는 html 태그로 둘러싸 수 있지만, 시각 모드, @RandyMorris로하지 ys하지 s 시각에서, 감사에서 S를 사용할 때 하지 들여 쓰기 들여 쓰기 만한다. ys 또는 시각적 선택을 사용하는 동작이 줄무늬 인 경우에는 들여 쓰기하지 않고 다음 줄과 이전 줄에 같은 들여 쓰기 된 div를 삽입합니다. yss의 경우에도이 작업을 수행하지 않으므로 비주얼 모드를 사용하지 않으려면 [email protected]<div>j>>을 사용해야합니다.

업데이트 : g:surround_indentb:surround_indent 옵션이 있습니다. surround.vim은 서라운드로 둘러싸인 텍스트를 들여 쓰기 위해 =을 사용하고 주위에 들여 쓰지 않은 문자 인 ys을 들여 쓰지 않습니다. S (S도 마찬가지입니다)은 거짓 일 것입니다. =도 사용합니다. filetype indent on 및 들여 쓰기 설정이 필요합니다.

이 옵션을 설정하지 않으면 첫 번째 단락에 설명 된 동작이 표시됩니다 : S 들여 쓰기 무조건.

+0

나는 surround.vim을 사용하며 태그와 들여 쓰기로 적절하게 둘러 쌉니다. 나는 또한 '들여 쓰기'및 '자동들 맞춤'을 내 vimrc에 설정했습니다. –

+0

@GaryWilloughby 들여 쓰기가 어떻게 통합되었는지 언급하거나, mayely 게리가이 점을 밝힐 수 있다면이 대답을 받아 들일 것입니다. – puk

+0

@pook 내 업데이트를 확인하십시오. – ZyX

3

예, 실제로 서라운드가 좋습니다. 커서를 치죠 것은 처음 div에 :

V%j%S<div id="Main"<CR> 

또는

V5jS<div id="Main"<CR> 

트릭을 할.

Vat<div id="Main"<CR> 

<div id="Main" 부분은 생략하기 어려운 것 같다 :

문맥에 따라, 모든 것은도 단축 할 수있다.

물론 다른 방법이 있습니다.

V5j<C-y>,div#Main<CR> 

난 당신이 원하는 것을 얻을 수있는 빠른 방법을 인식하지 오전 :

ZenCoding 예를 들어 당신이 그와 같은 CSS 구문을 사용할 수 있습니다.

의 TextMate의 제어시프트 w은 확실합니다, 좋은 이었지만, 그래서 당신은 어쨌든 div id="Main"을 입력해야 할 것 <p>에 기본값.

관련 문제