私はいくつかの研究をしました。
設定core.whitespace
は、タブの表示方法とは関係ありません。gitがタブ関連の空白エラーを認識するためにのみ使用されます。例:indent-with-non-tab
が有効でにcore.whitespace
設定されtabwidth=4
、行が4スペース以上を使用してインデントされている場合、gitはエラーを報告します。
gitの場合、タブ関連の空白エラー検出機能を除き、タブ文字は他の文字と同様の文字です。それは比較され、キャラクターを表示するために使用されるあらゆるツールにダンプされます。つまり、表示されるタブの幅を構成するには、gitの「フロントエンド」を構成する必要があります。その場合、git diff
「少なく」なります(UNIXツールは「少なく」)。その場合、git gui
git-gui自体になります。
少ない構成は簡単です。core.pager
4つのスペースを使用してタブを表示するようにgit設定をlessに設定できます(lessには-xn
tabwidthを設定するパラメーターがあります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の経験はまったくないので、ここでは単純なものを見落としているだけかもしれません。
とにかく、今、あなたは掘り始める場所を知っています。実用的なソリューションがある場合は、ここに必ず報告してください。幸運を。