git-guiでタブサイズを変更する


15

git-guiのタブサイズを8文字から4文字に変更できるかどうか疑問に思っていました。私が見つけた唯一のことはcore.whitespace = tabsize=4、diffにのみ影響します。

私が尋ねている理由は、タブの使用を徐々に段階的に廃止し、代わりに4スペースのインデントを使用しているためです。ただし、git-guiの差分を見ると、タブサイズが約8文字であるため、混乱を招く結果になる可能性があります。

:retabVimのシンプルなものが私の問題を解決することは知っていますが、非常に頻繁に、別々のブランチに変更が加えられる可能性のある長期の履歴を持つ大きなファイルで作業しなければなりません。そのため、すべてのタブを常に変換できるとは限りません。

回答:


5

以下のようにgit-GUI-0.20gitの2.4.0コミット)構成パラメータはgitのGUIに表示tabsizeを構成するために付加された存在します。

これを〜/ .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「少なく」なります(UNIXツールは「少なく」)。その場合、git guigit-gui自体になります。

少ない構成は簡単です。core.pager4つのスペースを使用してタブを表示するようにgit設定をlessに設定できます(lessには-xntabwidthを設定するパラメーターがあります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の経験はまったくないので、ここでは単純なものを見落としているだけかもしれません。

とにかく、今、あなたは掘り始める場所を知っています。実用的なソリューションがある場合は、ここに必ず報告してください。幸運を。


あなたの研究をありがとう。試してみるには、この時間を確保する必要があります。賞金は当然のようにあなたのものです。いつどのようにそれを行うかを理解した場合、私はここに戻って必ず報告するでしょう。
Htbaa

@Htbaa:賞金を授与するには、「賞金の授与」ボタンをクリックする必要があると思います。答えを受け入れても賞金は授与されません。
レスマナ

ありがとう。できた!私は賞金が与えられると確信していました。
Htbaa

5

レスマナの研究を詳しく述べました

この線

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
  • gitバージョン1.7.4.1
  • tclバージョン8.4.16-2(Ubuntu 11.04 i386パッケージ)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.