Tôi đã làm một số nghiên cứu.
Cấu hình core.whitespace
không có gì để làm với cách hiển thị các tab. Nó chỉ được sử dụng cho git để nhận ra các lỗi khoảng trắng liên quan đến tab. Ví dụ: khi indent-with-non-tab
được bật và core.whitespace
được đặt thành tabwidth=4
và một dòng được thụt vào bằng cách sử dụng 4 khoảng trắng trở lên, sau đó git sẽ báo lỗi.
Đối với git, ngoài các tính năng phát hiện lỗi khoảng trắng liên quan đến tab, một ký tự tab là một ký tự giống như bất kỳ ký tự nào khác. Nó được so sánh và được đổ vào bất kỳ công cụ nào được sử dụng để hiển thị các ký tự. Điều đó có nghĩa là, để định cấu hình chiều rộng tab được hiển thị, bạn phải định cấu hình "giao diện người dùng" của git. Trong trường hợp git diff
đó sẽ là "ít" (công cụ unix "ít hơn"). Trong trường hợp git gui
đó sẽ là git-gui.
Cấu hình ít hơn là dễ dàng. Bạn có thể đặt cấu hình git core.pager
để thiết lập ít hơn để hiển thị một tab bằng cách sử dụng 4 khoảng trắng (ít có tham số -xn
để đặt băng thông thành n
).
Cấu hình git-gui hóa ra khó hơn đáng kể. Git-gui được viết bằng Tcl / Tk. Tôi tìm thấy tùy chọn Tcl / Tk để định cấu hình độ rộng tab trong tiện ích văn bản. Tôi cũng tìm thấy một dòng trong git-gui.sh
đó có vẻ như tiện ích văn bản đang được khởi tạo.
Đây là dòng 3346 của tệp git-gui.sh
trong phiên bản git 1.7.5:
catch {$ui_diff configure -tabstyle wordprocessor}
Tôi đã thay đổi điều đó, theo hướng dẫn Tcl / Tk, thành:
catch {$ui_diff configure -tabs "[expr {4 * [font measure $font 0]}]" -tabstyle wordprocessor}
Điều đó dường như không có bất kỳ ảnh hưởng. Tôi cố gắng giá trị khác nhau cho -tabs
và họ đã có một số ảnh hưởng đến chiều rộng tab hiển thị, vì vậy nó có vẻ là dòng đúng để sửa đổi.
Thật không may, Tcl / Tk dường như không có khái niệm về độ rộng của tab về các ký tự, thay vào đó, chiều rộng của tab phải được đặt theo pixel hoặc centimet.
Lưu ý rằng tôi không có kinh nghiệm về Tcl / TK gì, vì vậy có lẽ tôi chỉ đang xem xét một cái gì đó đơn giản ở đây.
Dù sao, bây giờ bạn biết nơi để bắt đầu đào. Hãy nhớ báo cáo lại ở đây nếu bạn có một giải pháp làm việc. Chúc may mắn.