我记得在一个Git教程视频中,用户的终端(可能是ZSH)被分成两部分;一个用于标准终端命令,下面有一些像Git日志图形表示。它总是在终端的底部可见,颜色很好。
如何将终端屏幕分成两部分并在终端屏幕上显示Git日志(类似git log --pretty=format:'%h : %s' --graph
)?
更新:我在Vimeo上发现了视频,http://vimeo.com/16018419。我试图在我的ZSH终端上进行完全相同的设置。
答案 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: