Thay đổi tabize trong git-gui


15

Tôi đã tự hỏi liệu có thể thay đổi tabize trong git-gui từ 8 ký tự thành 4. Điều duy nhất tôi tìm thấy là core.whitespace = tabsize=4nhưng điều đó chỉ ảnh hưởng đến diff.

Lý do tại sao tôi hỏi là vì tôi đang dần dần loại bỏ việc sử dụng các tab và thay vào đó sử dụng thụt lề 4 không gian. Tuy nhiên, điều này có thể cho kết quả khó hiểu khi xem diff trong git-gui, vì tabize có khoảng 8 ký tự.

Tôi biết một đơn giản :retabtrong Vim giải quyết vấn đề của tôi, nhưng khá thường xuyên tôi phải làm việc trên các tệp lớn có lịch sử lâu dài có thể có sửa đổi trong các nhánh riêng biệt. Vì vậy, tôi không thể luôn luôn chuyển đổi tất cả các tab.

Câu trả lời:


5

Kể từ git-gui-0.20git 2.4.0 ( cam kết ), một tham số cấu hình tồn tại đã được thêm vào để định cấu hình tabize được hiển thị trong git gui.

Thêm phần này vào ~ / .gitconfig

[gui]
    tabsize = 4

hoặc thay đổi nó thông qua menu cấu hình của git-gui (Chỉnh sửa -> Tùy chọn ...)


Cảm ơn. Tôi đã cập nhật Git của mình (ở mức 1.8: -O) và tôi thấy tùy chọn này. Tôi vẫn phải đối phó với một hỗn hợp các tab và khoảng trắng mọi lúc và sau đó vì vậy điều này là tuyệt vời.
Htbaa

10

Tôi đã làm một số nghiên cứu.

Cấu hình core.whitespacekhô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=4và 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.shtrong 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 -tabsvà 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.


Cảm ơn về sự nghiên cứu của bạn. Tôi sẽ phải dành một chút thời gian cho việc này để thử. Tiền thưởng là của bạn như xứng đáng. Khi nào và nếu tôi tìm ra cách thực hiện, tôi chắc chắn sẽ báo cáo lại ở đây.
Htbaa

@Htbaa: Tôi nghĩ bạn phải nhấp vào nút "tiền thưởng" để trao tiền thưởng. Chấp nhận câu trả lời không trao giải thưởng.
lesmana

Cảm ơn. Làm xong! Tôi khá chắc chắn tiền thưởng đã được cho đi.
Htbaa

5

Tôi xây dựng nghiên cứu được thực hiện bởi lesmana .

Dòng

catch {$ui_diff configure -tabstyle wordprocessor}`

được đề cập bởi lesmana nên được thay thế bằng:

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

Sau khi thực hiện việc này, người ta có thể điều chỉnh kích thước tab bằng tùy chọn "tabize" trong phần [gui] của tệp cấu hình git (còn gọi là gui.tabsize). Tin xấu:

  1. Một số tab sau ký tự không phải khoảng trắng cuối cùng biến thành khoảng trắng đơn giản. Điều này trông giống như một lỗi trong tcl.
  2. Người ta phải khởi động lại git-gui sau khi thay đổi kích thước phông chữ để có các tab chính xác. Ai biết làm thế nào để giải quyết nó?

Đã thử nghiệm với:

  • phiên bản git-gui 0.13.0.8.g8f85
  • phiên bản git 1.7.4.1
  • phiên bản tcl 8.4.16-2 (gói Ubuntu 11.04 i386)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.