我記得在一個Git教程的視頻中,用戶的終端(可能是ZSH)被分成兩部分;一個用於標準終端命令,下面有一些像Git日誌圖形表示。它總是在終端的底部以漂亮的顏色可見。Git登錄ZSH終端
。
如何將終端屏幕拆分爲兩個並在終端屏幕上顯示Git日誌(如git log --pretty=format:'%h : %s' --graph
)?
更新:我在Vimeo上找到了視頻,http://vimeo.com/16018419。我正在嘗試在我的ZSH終端上進行完全相同的設置。
我記得在一個Git教程的視頻中,用戶的終端(可能是ZSH)被分成兩部分;一個用於標準終端命令,下面有一些像Git日誌圖形表示。它總是在終端的底部以漂亮的顏色可見。Git登錄ZSH終端
。
如何將終端屏幕拆分爲兩個並在終端屏幕上顯示Git日誌(如git log --pretty=format:'%h : %s' --graph
)?
更新:我在Vimeo上找到了視頻,http://vimeo.com/16018419。我正在嘗試在我的ZSH終端上進行完全相同的設置。
與tmux,你可以拆分窗格zsh -c while :; do sleep 60; git log ...; done
,這應該實現了自動刷新窗格中的git日誌輸出。
將[[vh] [percent]]提供給拆分窗格,以便將vert或horiz與給定的終端百分比分開。 iirc,它從終端的底部和/或右側分開,因此相應地調整百分比。
這應該具有git log在$ EDITOR(或以下)旁邊的窗格中的預期效果,並具有適當的尺寸並每分鐘自動刷新一次。隨時修改或清理語法以滿足您的需求。
編輯: 在tmux中重新生成窗格可以使用tmux內置respawn-pane
完成。你可以綁定一個鍵像這樣得到一個簡單快捷
綁定鍵-n M-[R重生窗格-t的git:0.1命令]
在這個例子中,我認爲三兩件事。首先,您有一個名爲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
。
所以你有一個過度詳細的解釋如何做這個視頻做多種方式。
git log --oneline --graph --decorate --color=always
爲git日誌輸出。
終端拆分功能取決於您的控制檯。
我知道Git log命令。我在Ubuntu 12和Mac OS X 1.7上都使用了ZSH,並且我正在尋找將終端拆分爲兩部分並在終端底部顯示該Git日誌。感謝無論如何:) – 2012-04-19 20:35:02
@BurakErdem然後你的問題似乎屬於超級用戶。 – KurzedMetal 2012-04-20 11:35:02
好吧,
他是在Mac上使用的iTerm,分割在默認情況下做出,你只需要進入菜單或使用任何簡短的命令。你可以在ubuntu/linux上使用終止符。如果你想繼續使用gnome-terminal,你可以使用screen或者tmux來模擬這個。
在日誌中,他使用tig(http://jonas.nitro.dk/tig/):一個git瀏覽工具。它可以安裝容易。順便說一句,您可以使用手錶自動更新您的日誌,這樣您可以在終端的其他部分擁有「自動登錄」功能。 ;)
watch git log --graph
在這裏,我使用TMUX在我的控制檯:
從它看起來像他做的GNU屏幕窗口拆分視頻。如果你在6點28分左右看,他也必須以某種方式手動刷新顯示。你可以通過標準的屏幕分割和點擊q/up重新運行命令來完成這個任務;你也可以在一個循環中運行它,每10秒鐘自動執行一次。 – Dougal 2012-04-19 20:48:19
是的,似乎他手動刷新。在這一點上,我可以去手動刷新,沒問題。你確定要拆分GNU屏幕嗎?我認爲他在做別的事情。如果你看右邊的滾動條,它從上到下覆蓋。他很爽快,不寫一個shell命令。我不知道,也許你是對的,但我認爲他正在做一些不同的事情。 – 2012-04-19 20:55:20
如果你看看終端的標題欄,它會顯示它的屏幕,而這些狀態行看起來就像是我的屏幕。而滾動條在Terminal.app/iTerm.app中,而不是屏幕,所以它可以覆蓋整個事物。我不知道他是如何令人耳目一新的(你是對的,它不是重新運行一個shell命令),但重新運行應該有同樣的效果......也許他有一個後臺進程寫出一個文件,並正在做一些編輯器咒語重新加載文件(或只是在編輯器內重新運行命令),不確定。 – Dougal 2012-04-19 21:02:41