5

I remember in a Git-tutorial video that the user's terminal (probably ZSH) was split into two; one for the standard terminal commands, and below that there was something like Git log graphical representation. It was always visible at the bottom of the terminal with nice colors.

terminal screen.

How is it possible to split the terminal screen into two and display Git log (something like git log --pretty=format:'%h : %s' --graph) on the terminal screen?

UPDATE: I found the video on Vimeo, http://vimeo.com/16018419. I am trying to do the exact same setup on my ZSH terminal.

4

3 回答 3

6

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

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

这应该具有将 git log 放在 $EDITOR(或以下)旁边的窗格中的预期效果,具有适当的尺寸并每分钟自动刷新一次。随意更改或清理语法以满足您的需要。

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

bind-key -n Mr respawn-pane -t git:0.1 [命令]

在这个例子中,我假设 3 件事。首先,您有一个命名的 tmux 会话(命名为 git,但这是任意的,您可以通过rename-session在 tmux 中使用或使用 启动会话来选择new-session -s name)。其次,git log(这是我们要刷新的)位于索引 0 的窗口(这是会话中打开的第一个窗口,默认情况下,除非您设置base-index为 else)和索引 1 的窗格。

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

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

最后,如果您最初不提供命令参数split-pane,则 tmux 将运行任何值default-command

因此,您对如何以多种方式执行此视频的功能有一个过于冗长的解释。

于 2012-04-27T20:45:29.120 回答
2

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

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

于 2012-04-19T20:28:20.683 回答
1

好的,

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

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

watch git log --graph

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

在某些应用程序中使用 tmux

于 2013-04-04T09:58:13.783 回答