2009-10-06 2 views
2

나는 탭이 아닌 들여 쓰기에 공백을 사용하고 싶다. 라인의 처음에 탭 장착 sed 또는 vim에 간단하다intraline 탭을 공백으로 대체하여 정렬을 유지하려면 어떻게해야합니까?

'foo'^I ^I => 'bar', 
'bazzle'^I => 'qux', 

:

s/^I/ /g 

그러나 라인 (공백은 탭 문자의 폭이 척) 내에 탭이 있는지 각 탭은 정렬을 유지하기 위해 설정된 공간 수와 일치하지 않습니다. 누구나 올바른 정렬을 유지하면서 탭 문자를 공백으로 대체하는 방법에 대한 교활한 생각이 있습니까?

답변

7

공백 뒤에 탭이 있습니다.

:retab! 
+0

expandtab을 설정하는 것을 잊지 마세요. – rampion

8

Linux 및 BSD에서 확장 및 확장 명령 행 도구를 찾으십시오. expand는 탭을 공백으로 변환하고 unexpand는 반대의 작업을 수행합니다. 가장 간단한 사용법은 다음과 같습니다

expand filename 

당신이 나 같은 경우, 탭 4 공백을 사용하여 기본적으로

expand -t 4 filename 

는, 표준 출력에 인쇄를 확장하고 재치있는 원본 파일을 둡니다. 경우,

:retab 

또는 : 현재 위치에서 교체하려면 적어도 두 가지 선택이 있습니다

$ cp filename backup 
$ expand -t 4 filename > tempfile 
$ mv tempfile filename 

를 또는, VI 내에서 확장 호출 할 수 있습니다 : 빔에서

$ vi filename 
:%!expand -t 4 
+0

저는 이것을 사용하지 않고 싶었습니다. 다른 에디터와'expand'는 훌륭하게 작동합니다. – fuenfundachtzig

관련 문제