[英]git-log in eshell
我正在嘗試在eshell中運行git命令。 當我跑:
git log -p
它看起來像這樣:
請注意^ [[光標之前的k]。 箭頭鍵向下不起作用,它會給出“未找到”錯誤。 你可以在迷你緩沖區看到。 向下滾動的唯一方法是使用RETURN鍵,它看起來很亂:
我的$ TERM設置為eterm,我也嘗試了ansi。 他們是一樣的。 以前有人經歷過這個嗎?
謝謝
編輯:
我有辦法解決這個問題。 我創建了這個函數:
(defun eshell/git (&rest args)
(apply 'eshell-exec-visual (cons "git" args)))
所以每次運行git命令時,它都會在* git *緩沖區中啟動輸出。
如果您有其他方式,請告訴我。
您只能使用RETURN滾動,因為使用了尋呼機。 您可以通過更改git的core.pager配置選項來永久禁用它,也可以通過將GIT_PAGER環境變量設置為空字符串來臨時禁用它。 另一個可能的問題來源 - ^ [secuences,用於切換顏色。 您可以使用git log命令的--no-color選項禁用它們
你嘗試過使用Magit嗎? 它將git集成到您的普通Emacs工作流程中。 我不能告訴你很多,因為我剛剛開始使用Emacs,我仍然在努力學習基礎知識。 馬吉特看起來真的很不錯。 安裝magit,在你的倉庫中打開一個文件,並運行Mx magit-log-long
,這將創建一個帶有ascii歷史圖的git log
輸出的緩沖區。 我很確定你也可以從那個緩沖區中檢查舊的提交,但你應該閱讀手冊以確定。
你必須在git中打開顏色,並且特定的偽終端不能用於彩色。 嘗試使用mx ansi-term
。 它支持顏色,通常更像終端。
或者你可以嘗試這個鈎子:
(add-hook 'eshell-preoutput-filter-functions
'ansi-color-filter-apply)
從這里引用。
通過將git設置為cat
來禁用git的內置尋呼機:
git config --global core.pager cat
vc-print-root-log命令(Cx v L)在只讀緩沖區中打印格式良好的git日志,您可以從中搜索,區分和顯示提交。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.