따라서 파일의 모든 탭 문자를 공백으로 바꾸는 것은 어렵지 않습니다.
예를 들어 vim에서는 다음을 수행할 수 있습니다.%s/\t/ /gc
각 줄의 시작 부분에 있는 것을 바꾸고 중간에 있는 것을 바꾸지 않으려면 다음을 수행할 수 있습니다.%s/^\t/ /gc
그러나 시작 부분에 줄이 있고 여러 탭이 있는 줄, 중간에 탭이 있는 줄이 있는 경우 파일의 들여쓰기 구조를 유지하기 위해 줄 시작 부분의 각 탭을 공백으로 바꾸고 싶습니다. 무엇을 해야할지 모르겠습니다.
vim이나 sed 또는 일반적으로 정규식을 사용하세요.
답변1
평가 레지스터를 사용하여 원하는 수의 탭 문자를 적절한 수의 공백으로 바꿀 수 있습니다. 예를 들어:
:s/^\t\+/\=repeat(' ',len(submatch(0)))
설명하다:
:s/ " Replace
^ " At the start of a line
\t\+ " One or more tabs
/\= " With the following evaluated as vimscript:
repeat(' ',len(submatch(0))) " 4 spaces times the length of the previously matched string