git-gui에서 탭 크기 변경


15

git-gui의 탭 크기를 8 자에서 4 자로 변경할 수 있는지 궁금합니다. 유일하게 찾은 것은 core.whitespace = tabsize=4diff에만 영향을 미칩니다.

내가 묻는 이유는 천천히 탭 사용법을 단계적으로 폐지하고 대신 4 칸 들여 쓰기를 사용하기 때문입니다. 그러나 탭 크기가 약 8 자이므로 git-gui에서 diff를 볼 때 혼란스러운 결과를 줄 수 있습니다.

:retabVim 의 간단한 문제가 내 문제를 해결 한다는 것을 알고 있지만 장기간의 역사를 가진 큰 파일을 별도의 브랜치에서 수정할 수있는 경우가 종종 있습니다. 항상 모든 탭을 변환 할 수는 없습니다.

답변:


5

현재 자식-GUI-0.20자식 2.4.0 ( 커밋 구성 매개 변수가 tabsize에 GUI 표시된 자식 구성 첨가 된 존재).

이것을 ~ / .gitconfig에 추가하십시오

[gui]
    tabsize = 4

또는 git-gui의 구성 메뉴를 통해 변경하십시오 (편집-> 옵션 ...)


감사. Git을 업데이트했고 (1.8 : -O로)이 옵션이 표시됩니다. 나는 여전히 탭과 공백의 믹스 매치를 처리해야하는데, 이것이 훌륭합니다.
Htbaa

10

나는 약간의 연구를했다.

구성 core.whitespace은 탭 표시 방법과 관련이 없습니다. git이 탭 관련 공백 오류를 인식하는 데만 사용됩니다. 예를 들어 indent-with-non-tab, 활성화되어 있고 core.whitespace로 설정되어 tabwidth=4있고 4 개 이상의 공백을 사용하여 줄을 들여 쓰면 git에서 오류를보고합니다.

git의 경우 탭 관련 공백 오류 감지 기능 외에도 탭 문자는 다른 문자와 같은 문자입니다. 비교되고 문자를 표시하는 데 사용되는 도구에 덤프됩니다. 즉, 표시된 탭 너비를 구성하려면 git의 "프론트 엔드"를 구성해야합니다. 이 경우 git diff"less"(UNIX 도구 "less")가됩니다. 이 경우 git guigit-gui 자체가됩니다.

덜 구성하는 것은 쉽습니다. core.pager4 개의 공백을 사용하여 탭을 표시 하도록 git 구성 을 덜 설정할 수 있습니다 ( -xntabwidth를 설정 하는 매개 변수 는 적음 n).

git-gui를 구성하는 것이 상당히 어려워졌습니다. Git-gui는 Tcl / Tk로 작성되었습니다. 텍스트 위젯에서 탭 너비를 구성 하는 Tcl / Tk 옵션 을 찾았습니다 . 또한 git-gui.sh텍스트 위젯이 초기화되는 것처럼 보이는 줄을 찾았습니다 .

이것은 git-gui.shgit 버전 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에 대한 경험이 없으므로 여기서 간단한 것을 간과하고있을 것입니다.

어쨌든 이제 파기를 시작할 곳을 알았습니다. 작동하는 솔루션이있는 경우 여기에 다시보고해야합니다. 행운을 빕니다.


연구 해 주셔서 감사합니다. 시도해 볼 시간을 예약해야합니다. 현상금은 당신의 자격입니다. 언제 어떻게해야하는지 알아 내면 여기에 다시보고하겠습니다.
Htbaa

@Htbaa : 현상금을 수여하려면 "수상 현상금"버튼을 클릭해야한다고 생각합니다. 답변을 수락해도 현상금이 지급되지 않습니다.
lesmana

감사. 끝난! 나는 현상금이 사라 졌다고 확신했다.
Htbaa

5

나는 lesmana가 만든 연구를 정교하게 했다 .

라인

catch {$ui_diff configure -tabstyle wordprocessor}`

lesmana 가 언급 한 것은 다음으로 대체되어야합니다.

catch {$ui_diff configure -tabs "[expr {[get_config gui.tabsize] * [font measure font_diff 0]}] left" -tabstyle wordprocessor}

이 작업을 수행 한 후 git 구성 파일 (gui.tabsize)의 [gui] 섹션에있는 "tabsize"옵션을 사용하여 탭 크기를 조정할 수 있습니다. 나쁜 소식:

  1. 공백이 아닌 마지막 문자 뒤의 일부 탭은 간단한 공백으로 바뀝니다. 이것은 tcl의 버그처럼 보입니다.
  2. 올바른 탭을 얻으려면 글꼴 크기를 변경 한 후 git-gui를 다시 시작해야합니다. 어떻게 해결해야합니까?

로 테스트 :

  • git-gui 버전 0.13.0.8.g8f85
  • 자식 버전 1.7.4.1
  • tcl 버전 8.4.16-2 (우분투 11.04 i386 패키지)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.