10

我在这里使用了解决方案来更改git diff输出中的选项卡大小。这适用于git diff.

我的.gitconfig中有这些设置:

[core]    
whitespace = tabsize=4,indent-with-non-tab
pager = less -FSRX -x4

但这些设置似乎对git add -p. 如何在git add -p命令中设置大块的标签大小?

4

2 回答 2

5

core.pager设置不会影响git add -p命令,因为git add -p不会通过 less/pager。要更改 hunks 选项卡大小,您需要更改终端的选项卡大小。在这里找到解决方案。刚刚在.bashrc中添加:

env TERM=linux setterm -regtabs 4

该设置在xterm终端中运行良好。对于其他终端类型,请查看手册以获得正确的解决方案。

于 2013-08-24T06:01:45.220 回答
0

您可以使用 可视化当前的制表位setterm --tabs
对于“git add -p”,您可能希望制表位看起来像这样:

         10        20        30        40        50        
12345678901234567890123456789012345678901234567890123456789
     T   T   T   T   T   T   T   T   T   T   T   T   T   T 

不是这个:

         10        20        30        40        50        
12345678901234567890123456789012345678901234567890123456789
    T   T   T   T   T   T   T   T   T   T   T   T   T   T 

要获得第一个,您可以使用tabs -c3 (read here)
要获得第二个,您可以使用tabs -4. 但是,如果你使用( needs )
,你会破坏你的cat输出。 所以你只需要在运行时。tabs -c3cattabs -4
tabs -c3git add -p

这是我的做法:

git() {
    if [[ "$1" == "add" ]] &&
       [[ "$2" == "-p" ]] || [[ "$2" == "--patch" ]]
    then
        tabs -c3
        if [[ "$#" -eq 2 ]]
        then
            command git add -p
        else
            command git add -p "$3"
        fi
        tabs -4
    else
        command git "$@"
    fi
}

把它放在你的.bashrc和/或.zshrc

于 2019-01-07T11:53:18.283 回答