Git登录ZSH终端

时间:2012-04-19 20:18:30

标签: git terminal zsh

我记得在一个Git教程视频中,用户的终端(可能是ZSH)被分成两部分;一个用于标准终端命令,下面有一些像Git日志图形表示。它总是在终端的底部可见,颜色很好。

terminal screen

如何将终端屏幕分成两部分并在终端屏幕上显示Git日志(类似git log --pretty=format:'%h : %s' --graph)?

更新:我在Vimeo上发现了视频,http://vimeo.com/16018419。我试图在我的ZSH终端上进行完全相同的设置。

3 个答案:

答案 0 :(得分:6)

使用tmux,您可以拆分窗格zsh -c while :; do sleep 60; git log ...; done,这应该可以在窗格中实现自动刷新的git log输出。

将[-vh] [percent]提供给拆分窗格以使用给定百分比的终端拆分vert或horiz。 iirc,它从终端的底部和/或右侧分开,因此相应地调整百分比。

这应该具有在$ EDITOR(或以下)旁边的窗格中具有git日志的期望效果,具有适当的尺寸并且每分钟自动刷新。随意改变或清理语法以满足您的需求。

编辑: 可以使用tmux内置respawn-pane重新生成tmux中的窗格。你可以绑定这样的键来获得一个简单的快捷方式

bind-key -n M-r respawn-pane -t git:0.1 [command]

在这个例子中,我假设有3件事。首先,你有一个名为tmux的会话(名为git,但这是任意的,你可以选择在tmux中使用rename-session或者使用new-session -s name启动会话)。第二,git日志(我们想要刷新的)是在索引0的窗口(这是在会话中打开的第一个窗口,默认情况下,除非你将base-index设置为else)和窗格指数1。

所以在这里,它通过按alt-r重新生成“git”会话中第一个窗口的第二个窗格。如果您使用之前提供的循环,则无需这样做,因为日志会在每次睡眠后自行刷新。对某些人来说可能被认为是浪费,所以你可以随心所欲地决定重新制作这个窗格。

[command]是可选的。 tmux的respawn-pane将执行首先生成窗格时给出的命令。在此示例中,默认情况下它将是while循环。如果你跳过循环而只是使用split-pane [-hv] [percent] "git log ...",那么不要提供可选的命令参数,因为窗格会巧妙地为你运行它。向respawn-pane提供命令参数将优先于生成窗格时使用的初始命令。

最后,如果最初没有向split-pane提供命令参数,tmux将运行default-command的任何值。

所以你有一个过于冗长的解释,说明如何以多种方式做这个视频的作用。

答案 1 :(得分:2)

git log --oneline --graph --decorate --color=always用于git log输出。

终端拆分功能取决于您的控制台。

答案 2 :(得分:1)

好,

他在Mac上使用iTerm,默认情况下进行拆分,你只需要进入菜单或使用任何短命令。您可以在ubuntu / linux上使用终结器。如果你想继续使用gnome-terminal,你可以使用screen或tmux来模拟它。

在日志中,他正在使用tig(http://jonas.nitro.dk/tig/):一个git浏览工具。它可以轻松安装。顺便说一下,您可以使用watch来自动更新日志,这样您就可以在终端的另一部分上拥有“autolog”。 ;)

watch git log --graph

在这里,我在我的控制台中使用tmux:

Using tmux with some applications