簡體   English   中英

eshell中的git-log

[英]git-log in eshell

我正在嘗試在eshell中運行git命令。 當我跑:

git log -p

它看起來像這樣:

eshell中的git-log

請注意^ [[光標之前的k]。 箭頭鍵向下不起作用,它會給出“未找到”錯誤。 你可以在迷你緩沖區看到。 向下滾動的唯一方法是使用RETURN鍵,它看起來很亂:

eshell中的git-log  - 滾動

我的$ 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM