首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用$((LINES / 2))的git别名

使用$((LINES / 2))的git别名
EN

Stack Overflow用户
提问于 2014-07-03 06:29:18
回答 2查看 61关注 0票数 1

我尝试了大约30个变体,包括sh -c版本,双引号和单引号,嵌套引号等。我遗漏了什么?

代码语言:javascript
运行
复制
shortlog = "!git log -n $((LINES / 2))"
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-08 02:48:00

我不喜欢我最后是如何让它起作用的,但这确实是唯一起作用的事情,我希望这一切都能结束。我从我的~/.gitconfig中删除了与较短日志别名相关的所有内容,并在我的~/scripts文件夹(它在我的$PATH中)中创建了名为git-las (list all short)的文件,每个文件中的代码如下:

代码语言:javascript
运行
复制
#!/bin/bash

$height=$(tput lines)
$height=$((height / 3))
git la -$height

我做了每个可执行文件。Git将接受git las并在我的路径上找到git-las (没有扩展),如果它是可执行的,并执行它,它就能工作了。git la (list all)在我的~/.gitconfig中,是每个人都给自己命名的典型的git log --all --oneline --graph --decorate。这是唯一起作用的东西,在我能找到的每一个在线信息上都很容易地有100个变化。即使试图将tput内容移回~/.gitconfig中也会失败,而$LINES在这些工作文件中也会失败;它总是0。

这真是一场战斗,但现在我有了短日志(几个不同的大小和设置),它可以动态地与窗口进行缩放,总是给我大约1/2到1/4的单线日志输出-除以3(1/4的6),在合并提交和棘手的分支路径中占了一些额外的空间。这些硬编码我已经有一年了,但是现在我开始在机器之间正确地转换和共享我的点文件,所以我希望它对我所有不同的显示器高度都是动态的,所以不管我有多大的窗口,它都会以一种预期的方式工作。

票数 0
EN

Stack Overflow用户

发布于 2014-07-03 06:36:57

如果你定义了一个函数呢?

代码语言:javascript
运行
复制
function shortlog { tmp=$(($LINES / 2)); git log -n "$tmp"; }

然后出口:

代码语言:javascript
运行
复制
export -f shortlog

您应该把它放在您的.bashrc中,我想如果您想每次启动终端时都使用它(当然,您可以先在孤立的胸骨上使用它)。

编辑

这个有用吗?

代码语言:javascript
运行
复制
git config alias.shortlog '!f() { tmp=$(($LINES / 2)); git log -n "$tmp"; }; f'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24546428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档