Git-gui'de sekme boyutunu değiştir


15

Git-gui'de sekme boyutunu 8 karakterden 4'e değiştirmenin mümkün olup olmadığını merak ediyordum. Bulduğum tek şey, core.whitespace = tabsize=4ancak bu sadece farkı etkiler.

Sormamın nedeni, sekmelerin kullanımını yavaş yavaş aşamalı olarak kaldırıyorum ve bunun yerine 4 boşluklu girinti kullanıyorum. Bununla birlikte, tabsize yaklaşık 8 karakter olduğu için git-gui'deki farkı izlerken kafa karıştırıcı sonuçlar verebilir.

:retabVim'de basit olanın sorunumu çözdüğünü biliyorum , ancak oldukça sık, ayrı dallarda değişiklikler yapabilen uzun vadeli bir geçmişe sahip büyük dosyalar üzerinde çalışmam gerekiyor. Bu yüzden her zaman tüm sekmeleri dönüştüremiyorum.

Yanıtlar:


5

İtibariyle git GUI-0.20 ve Git 2.4.0 ( işlemek bir konfigürasyon parametresi tabsize içinde git GUI gösterilen yapılandırma eklenmiş olan var).

Bunu ~ / .gitconfig dosyanıza ekleyin

[gui]
    tabsize = 4

veya git-gui'nin yapılandırma menüsünden değiştirin (Düzenle -> Seçenekler ...)


Teşekkürler. Gitimi güncelledim (1.8: -O'daydı) ve bu seçeneği görüyorum. Hala arada sırada sekmeler ve boşlukların bir karışımı ile uğraşmak zorundayım, bu yüzden bu harika.
Htbaa

10

Biraz araştırma yaptım.

Yapılandırmanın core.whitespacesekmelerin nasıl görüntülendiğiyle ilgisi yoktur. Git için sekmeyle ilgili boşluk alanlarını tanımak için kullanılır. Örneğin: indent-with-non-tabetkinleştirildiğinde ve core.whitespaceolarak ayarlandığında tabwidth=4ve bir satır 4 veya daha fazla boşluk kullanılarak girintilendiğinde git bir hata bildirir.

Git için, sekmeyle ilgili boşluk hatası algılama özelliklerinin yanı sıra, sekme karakteri diğer herhangi bir karakter gibi bir karakterdir. Karşılaştırılır ve karakterleri görüntülemek için kullanılan herhangi bir araca dökülür. Bu, görüntülenen sekme genişliğini yapılandırmak için git'in "ön uçlarını" yapılandırmanız gerekir. Bu durumda git diff"daha az" (unix aracı "daha az") olacaktır. Bu durumda git guigit-gui'nin kendisi olur.

Daha az yapılandırmak kolaydır. core.pager4 yapılandırmayı kullanarak sekmeyi görüntülemek için git yapılandırmasını daha az olacak -xnşekilde ayarlayabilirsiniz (daha azı, sekme genişliğini ayarlamak için bir parametreye sahiptir n).

Git-gui'yi yapılandırmak oldukça zor oldu. Git-gui Tcl / Tk dilinde yazılmıştır. Metin widget'larında sekme genişliğini yapılandırmak için bir Tcl / Tk seçeneği buldum . Ayrıca git-gui.shmetin widget'ı başlatılıyor gibi görünüyor bir çizgi buldum .

Bu git-gui.shgit sürüm 1.7.5 dosya 3346 hattıdır :

catch {$ui_diff configure -tabstyle wordprocessor}

Bunu Tcl / Tk kılavuzuna göre değiştirdim:

catch {$ui_diff configure -tabs "[expr {4 * [font measure $font 0]}]" -tabstyle wordprocessor}

Bunun bir etkisi yoktu. Farklı değerler denedim -tabsve görüntülenen sekme genişliği üzerinde bazı etkisi oldu, bu yüzden değiştirmek için doğru satır gibi görünüyor.

Ne yazık ki, Tcl / Tk'nin karakterler açısından sekme genişliği kavramına sahip olmadığı anlaşılıyor, bunun yerine sekme genişliği piksel veya santimetre olarak ayarlanmalıdır.

Tcl / TK'da hiçbir deneyimim olmadığını unutmayın, bu yüzden belki sadece burada basit bir şeye bakmıyorum.

Her neyse, şimdi nerede kazmaya başlayacağınızı biliyorsunuz. Çalışan bir çözümünüz varsa buraya bildirmeyi unutmayın. İyi şanslar.


Araştırmanız için teşekkürler. Bunu denemek için biraz zaman ayırmam gerekecek. Ödül senin hak ettiğin gibi. Ne zaman ve nasıl yapılacağını anlarsam, buraya rapor vereceğimden emin olurum.
Htbaa

@Htbaa: Sanırım ödülü vermek için "ödül ödülü" düğmesini tıklamanız gerekiyor. Cevabı kabul etmek ödül vermiyor.
lesmana

Teşekkürler. Bitti! Ödülün verildiğinden oldukça emindim.
Htbaa

5

Lesmana tarafından yapılan araştırmayı detaylandırdım .

Çizgi

catch {$ui_diff configure -tabstyle wordprocessor}`

lesmana tarafından belirtilen aşağıdaki ile değiştirilmelidir:

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

Bunu yaptıktan sonra git yapılandırma dosyasının [gui] bölümündeki "tabsize" seçeneğini (sekme gui.tabsize) kullanarak sekme boyutunu ayarlayabilirsiniz. Kötü haber:

  1. Son boşluk olmayan karakterden sonraki bazı sekmeler basit boşluklara dönüşür. Bu tcl bir hata gibi görünüyor.
  2. Doğru sekmeleri elde etmek için yazı tipi boyutunu değiştirdikten sonra git-gui'yi yeniden başlatmanız gerekir. Bunu nasıl çözeceğini kim bilebilir?

Şununla test edildi:

  • git-gui sürüm 0.13.0.8.g8f85
  • git sürüm 1.7.4.1
  • tcl sürüm 8.4.16-2 (Ubuntu 11.04 i386 paketi)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.