나는 약간의 연구를했다.
구성 core.whitespace
은 탭 표시 방법과 관련이 없습니다. git이 탭 관련 공백 오류를 인식하는 데만 사용됩니다. 예를 들어 indent-with-non-tab
, 활성화되어 있고 core.whitespace
로 설정되어 tabwidth=4
있고 4 개 이상의 공백을 사용하여 줄을 들여 쓰면 git에서 오류를보고합니다.
git의 경우 탭 관련 공백 오류 감지 기능 외에도 탭 문자는 다른 문자와 같은 문자입니다. 비교되고 문자를 표시하는 데 사용되는 도구에 덤프됩니다. 즉, 표시된 탭 너비를 구성하려면 git의 "프론트 엔드"를 구성해야합니다. 이 경우 git diff
"less"(UNIX 도구 "less")가됩니다. 이 경우 git gui
git-gui 자체가됩니다.
덜 구성하는 것은 쉽습니다. core.pager
4 개의 공백을 사용하여 탭을 표시 하도록 git 구성 을 덜 설정할 수 있습니다 ( -xn
tabwidth를 설정 하는 매개 변수 는 적음 n
).
git-gui를 구성하는 것이 상당히 어려워졌습니다. Git-gui는 Tcl / Tk로 작성되었습니다. 텍스트 위젯에서 탭 너비를 구성 하는 Tcl / Tk 옵션 을 찾았습니다 . 또한 git-gui.sh
텍스트 위젯이 초기화되는 것처럼 보이는 줄을 찾았습니다 .
이것은 git-gui.sh
git 버전 1.7.5에서 파일의 3346 행입니다 .
catch {$ui_diff configure -tabstyle wordprocessor}
Tcl / Tk 매뉴얼에 따라 다음과 같이 변경했습니다.
catch {$ui_diff configure -tabs "[expr {4 * [font measure $font 0]}]" -tabstyle wordprocessor}
효과가없는 것 같습니다. 나는 다른 값을 시도 -tabs
하고 자신이 갖고했던 일부 표시 탭 폭에 영향을, 그래서 올바른 라인이 수정 될 것으로 보인다.
불행히도 Tcl / Tk는 문자로 탭 너비의 개념을 가지고 있지 않은 것 같습니다. 대신 탭 너비는 픽셀 또는 센티미터로 설정해야합니다.
Tcl / TK에 대한 경험이 없으므로 여기서 간단한 것을 간과하고있을 것입니다.
어쨌든 이제 파기를 시작할 곳을 알았습니다. 작동하는 솔루션이있는 경우 여기에 다시보고해야합니다. 행운을 빕니다.