我已经尝试了大约30种变体,包括sh -c
版本,双引号和单引号,嵌套引号等。我缺少什么?
shortlog = "!git log -n $((LINES / 2))"
答案 0 :(得分:1)
如果定义一个函数怎么办?
function shortlog { tmp=$(($LINES / 2)); git log -n "$tmp"; }
然后导出它:
export -f shortlog
你应该把它放在你的.bashrc
我想如果你想在每次启动终端时使用它(但你可以先在一个孤立的终端上尝试它)。
修改强>:
这有帮助吗?
git config alias.shortlog '!f() { tmp=$(($LINES / 2)); git log -n "$tmp"; }; f'
答案 1 :(得分:0)
我不会爱我最终如何使用它,但它实际上是唯一可以工作的东西,我希望这是过度。我从~/.gitconfig
和我的~/scripts
文件夹中移除了与较短日志别名相关的所有内容 - 这是我$PATH
中的文件 - 我创建了名为git-las
的文件(列表)所有简短的),每个代码都是这样的:
#!/bin/bash
$height=$(tput lines)
$height=$((height / 3))
git la -$height
我制作了每个可执行文件。 Git会在我的路径上找git las
并找到git-las
(没有扩展名),如果是可执行文件,并执行它,它就可以运行。 git la
(列出所有内容)位于我的~/.gitconfig
中,只是典型的git log --all --oneline --graph --decorate
,每个人都有自己的名字。这是唯一的之类的东西,在我可以找到的每一点在线信息上轻松100个变化之后。即使尝试将tput
内容移回~/.gitconfig
也会失败,$LINES
也会在这些工作文件中失败;它总是0。
真是一场战斗,但是现在我有了短日志(一些不同的大小和设置),可以随窗口动态缩放,总是给我大约1/2到1/4的在线日志输出 - 除以3(和6为1/4)在合并提交和棘手的分支路径周围占了一些额外的空间。我已经有一年的硬编码,但现在我开始正确版本并在机器之间共享我的dotfiles,所以我希望它对我所有不同的显示器高度都是动态的,所以它可以在无论我有多大的窗户,都是一种期待的时尚。