2015-02-07 4 views
1

vim에서 yaml 파일을 정리하려고합니다. yaml 파일은 테스트를위한 픽스쳐이며 XML의 리터럴 문자열을 포함합니다. 내가 좋아하는 그들을보고 싶어Vim에서 '!'명령으로 기존 들여 쓰기 유지

- 
    - "<xml>blah blah blah …1000 characters later</xml>" 
    - "<more>…</more>" 

: 나는 <tab>을 따옴표를 제거 포맷되지 않은 XML의 시작 부분에 커서를 놓고 > 충돌, 입력

- 
    - > 
    <xml> 
     <nicely>formatted</nicely> 
     … 
    </xml> 
    - > 
    <more> 
     … 
    </more> 

내가 얻을처럼 그들은 볼 v 라인을 선택 - shift가 :

- 
    - > 
    <xml>… 

는하지만 그때는 XML을 나는 방법을 알고있는 유일한 방법을 포맷하려고합니다. :'<,'>!xmllint --nocdata --format - | awk 'NR>1'는 XML 포맷을하고, 나는

- 
    - > 
<xml> 
    <nicely>formatted</nicely> 
    … 
</xml> 

을 얻을하고 내가 XML을 다시 선택하고 reindent하는 2>>을 사용해야합니다.

Vim에서 ! 명령을 실행할 때 들여 쓰기를 유지하는 더 좋은 방법이 있습니까?

답변

2

귀하의 질문에이 내용이 명백히 명시되어 있지는 않지만 vim이 들여 쓰기가 제거 된 이유가 다소 있음을 의미하므로 xmllint가 들여 쓰는 중입니다.

들여 쓰기를 먼저 저장할 수도 있지만 들여 쓰기가 다른 줄 사이에 다른 경우 혼란을 줄 수 있습니다. 이 경우에는 아마 당신은 그냥 나중에 들여 쓰기를 추가하고 실행하는 명령보고에서 더 많은 의미가 있습니다 - 당신은 같은 명령 필터에 추가하여 자동으로 수행 할 수 있습니다

:'<,'>!xmllint --nocdata --format - | awk 'NR>1' | sed -e 's/^/\t/'

관련 문제