그런 다음 자동으로 다시 들여 쓰기? 한 터미널 화면에서 다른 터미널 화면으로 코드를 복사하려고 시도했지만 테이블이 엉망이되었습니다.
나는이 기능을 무엇이라고 부르는지 몰랐기 때문에 구글에서 그것을 찾기가 어려웠다.
그런 다음 자동으로 다시 들여 쓰기? 한 터미널 화면에서 다른 터미널 화면으로 코드를 복사하려고 시도했지만 테이블이 엉망이되었습니다.
나는이 기능을 무엇이라고 부르는지 몰랐기 때문에 구글에서 그것을 찾기가 어려웠다.
답변:
Vim에는 retab
문서를 탭하거나 탭을 해제 할 수 있는 명령이 있습니다. 이 같은 설정을 사용 tabstop
하고 expandtab
. 따라서 탭을 공백으로 바꾸려면 다음을 수행하십시오.
:%retab
자세한 내용은 retab
설명서를 참조 하십시오.
Caveat Emptor : 줄의 시작 이 아닌 탭을 대체합니다 . 따라서 문자열 중간에 하드 탭을 사용하면 교체됩니다.
\t
이러한 종류의 문제를 피하기 위해 선호됩니다.
retab 명령을 실행하기 전에 @Kaleb의 답변을 확장하려면 (아직 답글이 없습니다)을 수행해야합니다 :set expandtab (set et)
. 그렇지 않으면 탭이 공백으로 바뀌지 않습니다.
또한 탭 스탑을 지정할 수도 있습니다. 다른 사용자가 만든 소스 코드에서 코드는 tabstops를 4 또는 2로 설정하여 작성됩니다. :%retab
명령을 수행하기 전에 다른 tabstop을 사용해보십시오. 시험
:set ts=8 (the default)
:set ts=4
:set ts=2
어떤 설정이 가장 적합한 지 확인하십시오.
뒤로 이동하려면 (적절한 TAB 문자로 공백을 바꾸려면
:set noet
:%retab!
탭을 해제하면 탭을 공백으로 변경 하시겠습니까? 그렇다면 다음과 같이 전체 버퍼에서 탭을 공백으로 대체하십시오.
:%s/^I/ /g
대체의 오른쪽에 4 개의 공백이 있지만 원하는 수를 지정할 수 있습니다. 리터럴 ^I
탭 문자 를 얻으려면 ^V
Tab 키를 누르십시오.
=
명령으로 다시 들여 쓸 수 있습니다 . 버퍼의 전체 내용을 다시 들여 쓰려면 다음 명령을 사용하십시오.
gg
=G
그러면 맨 위로 이동 한 다음 모든 것을 맨 아래로 다시 들여 씁니다.