Vim은 탭 대와 관련하여 매우 수용 적입니다. 공간 선호도. 내가 알기로 tabstop
설정은 탭 문자의 너비를 나타냅니다. shiftwidth
설정을 지정 얼마나 많은 열을 증가 / 감소 사용하는 경우 <<와 >>, 명령을 반면 softtabstop
당신이 누를 때 공백의 양을 삽입 할 설정의 영향을 Tab삽입 모드에서 키를 누릅니다. expandtab
가 켜져 있으면 탭 키 softtabstop
가 공백 문자 수를 삽입 합니다. 와 반면 것은 expandtab
압박, 꺼져 Tab키 삽입 탭 + 공백 문자의 가장 작은 수의 일치를 softtabstop
. (내가 틀렸다면 정정하십시오.)
이 마지막 요점은 저를 궁금하게 만듭니다. 원하지 않는 실제 사례가 shiftwidth == tabstop && tabstop == softtabstop
있습니까? 나는 하나를 생각할 수 없다. 내가 아는 한, 하나의 할당에서이 세 가지 모두를 동일한 값으로 설정할 수 있다면 가장 편리 할 것입니다. 예 : 전화 :
:set stab=4
다음을 실행하는 것과 같습니다.
:set tabstop=4 softtabstop=4 shiftwidth=4
누구든지 이것이 어떻게 할 수 있는지 제안 할 수 있습니까?
최신 정보
지금까지의 응답을 주셔서 감사합니다 너무 많은 PHP , 홉스 와 kaiser.se . 각각 개별적으로 답변하는 대신 여기에서 질문을 업데이트하겠습니다.
확장 탭이 꺼진 Softtabstop
위에서 확장 탭이 꺼진 상태에서 Tab 키를 누르면 일치하는 탭 + 공백 문자가 가능한 가장 적게 삽입됩니다 softtabstop
. 나는 그것을지지하지만 내가 의미하는 바를 설명 할 필요가 있다고 생각한다. 몇 가지 예를 들어 시도해 보겠습니다. 따라하려면 :set list
탭 문자를 볼 수 있도록 실행 하십시오.
tabstop=4 softtabstop=2 shiftwidth=4 noexpandtab
삽입 모드에서 Tab 키를 누르면 2 개의 공백 문자가 삽입됩니다. 탭 키를 두 번 누르면 두 개의 공백 문자 (총 4 개의 공백 문자)를 삽입하는 대신 이전 2 개의 공백을 단일 탭 문자로 바꿉니다. Tabstop은 4로 설정되어 있으므로 단일 탭 문자는 4 개의 공백과 동일한 너비를 갖습니다.
tabstop=4 softtabstop=6 shiftwidth=4 noexpandtab
삽입 모드에서 탭 키를 누르면 탭 문자 1 개와 공백 2 개가 삽입됩니다. 탭 문자의 너비는 4이므로 총 너비는 6이며 이는 3 개의 문자를 사용하여 달성됩니다. 탭 키를 두 번 누르면 두 개의 탭 문자가 삽입되고 이전에 삽입 된 두 개의 공백이 제거됩니다. 총 너비는 12이며 이는 3 개의 문자를 사용하여 달성됩니다.
이 두 예제에서 Vim은 softtabstop과 일치하는 최소 가능한 수의 탭 + 공백 문자를 삽입합니다.
expandtab이 꺼진 상태로 작업하는 경우 softtabstop을 tabstop과 다른 값으로 설정하여 얻을 수있는 추가 세부 제어를 원하는 것을 알 수 없습니다. 단일 명령으로 tabstop
, softtabstop
및 shiftwidth
동일한 값 을 설정할 수 있으면 여전히 유용합니다 .
expandtab을 사용하면 softtabstop이 중복됩니까?
tabstop=4 softtabstop=0 shiftwidth=4 expandtab
삽입 모드에서 Tab 키를 누르면 4 개의 공백이 삽입됩니다. 삭제 키를 누르면 단일 공백이 삭제되므로 실수로 탭 키를 눌렀을 경우 백 스페이스를 4 번해야합니다.
tabstop=4 softtabstop=4 shiftwidth=4 expandtab
삽입 모드에서 Tab 키를 누르면 4 개의 공백이 삽입됩니다. 백 스페이스 키를 누르면 4 개의 공백이 삭제됩니다.
내가 함께 일하고 경우 expandtab
스위치, 나는 탭 키 삽입으로 공백의 동일한 금액을 제거하려면 Delete 키를 선호하는 것이다. 따라서이 경우도, 나는 같은 가치 할당 할 수있는 것이 유용 할 수 있다고 생각 tabstop
, softtabstop
그리고 shiftwidth
동시에합니다.
바로 가기는 여전히 유용합니다.
Vim이 너무 많은 유연성을 제공한다는 것은 대단한 일이지만 제 자신이 필요하다고 생각하지 않습니다. 탭의 너비와 탭 문자를 사용하는 '하드'탭인지 공백으로 구성된 '소프트'탭인지를 선택할 수 있기를 원합니다. 하드 탭과 소프트 탭 사이를 전환하는 것은 충분히 쉽지만 ( :set expandtab!
), 3 가지 다른 매개 변수를 사용하지 않고 탭 너비를 설정하는 것이 더 간단했으면합니다.
그래서 제가 제안한 제안은 :set stab=4
여전히 좋은 것 같습니다 .