我在这里使用了解决方案来更改git diff
输出中的选项卡大小。这适用于git diff
.
我的.gitconfig中有这些设置:
[core]
whitespace = tabsize=4,indent-with-non-tab
pager = less -FSRX -x4
但这些设置似乎对git add -p
. 如何在git add -p
命令中设置大块的标签大小?
core.pager
设置不会影响git add -p
命令,因为git add -p
不会通过 less/pager。要更改 hunks 选项卡大小,您需要更改终端的选项卡大小。在这里找到解决方案。刚刚在.bashrc中添加:
env TERM=linux setterm -regtabs 4
该设置在xterm终端中运行良好。对于其他终端类型,请查看手册以获得正确的解决方案。
您可以使用 可视化当前的制表位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 -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