如何在“git add -p”中为帅哥设置标签大小?

时间:2013-08-03 16:26:32

标签: git version-control tabs git-add tab-size

我使用解决方案here更改git diff输出中的标签大小。这适用于git diff

我在 .gitconfig

中有这些设置
[core]    
whitespace = tabsize=4,indent-with-non-tab
pager = less -FSRX -x4

但这些设置似乎不会影响git add -p。 如何在git add -p命令中为帅哥设置标签大小?

2 个答案:

答案 0 :(得分:4)

core.pager设置不会影响git add -p命令,因为git add -p没有通过less / pager。要更改字幕大小,您需要更改终端的标签大小。找到解决方案here。刚刚添加到 .bashrc

env TERM=linux setterm -regtabs 4

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

答案 1 :(得分: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
但是,如果使用cattabs -c3需要cat),则会中断tabs -4的输出。
因此,仅在运行tabs -c3时才需要git 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