經過幾個小時的使用shell的git試用後,我切換到了magit如何更有效地使用Magit?
它非常整齊有效:我不需要輸入「git」來調用git命令了!
但我還是發現了一個缺點比較shell命令行
每次我輸入:調用git的命令,輸出中的其他窗口彈出。我必須鍵入C-x o才能切換回來,然後再次鍵入git命令。
在emacs中,除了shell模式以外,是否還有更好的方法可以在輸出中同時輸入和查看輸出?
我應該重新綁定輸出到其他模式嗎?哪一個?還是更優雅的解決方案?
非常感謝
經過幾個小時的使用shell的git試用後,我切換到了magit如何更有效地使用Magit?
它非常整齊有效:我不需要輸入「git」來調用git命令了!
但我還是發現了一個缺點比較shell命令行
每次我輸入:調用git的命令,輸出中的其他窗口彈出。我必須鍵入C-x o才能切換回來,然後再次鍵入git命令。
在emacs中,除了shell模式以外,是否還有更好的方法可以在輸出中同時輸入和查看輸出?
我應該重新綁定輸出到其他模式嗎?哪一個?還是更優雅的解決方案?
非常感謝
我通常使用Magit內置在我的大部分工作的命令時,我使用Magit,只是使用普通的終端,當我需要做的事情,我不能從Magit的做內置命令。幾乎所有的日常使用都有Magit的built in commands;你經常使用什麼,Magit不提供,你不會在一個完整的終端無論如何做?
我同意Brian的看法,你想通過一個簡單的按鍵觸發器做什麼?它可能已經是一個鍵綁定了。如果不是,我只需要C-z
放到shell並運行該命令,然後鍵入fg
將emacs恢復到前臺。
編輯:我的流程是這樣的。
git diff
只是爲了查看是否有前一天有任何未提交的更改(不要忘記enabled colors!)我在命令行中執行此操作的原因是由於我不在emacs中。emacs file1 file2
中打開未編譯的文件,要麼打開一些我正要處理的文件。C-c i
打開Magit狀態窗口。s
來進行這些更改,要麼按u
來取消這些更改。s
和u
來暫停和取消代碼段。有用的,如果我有一些調試代碼的地方,並希望殺死它。c
打開magit-edit-log。我輸入我的提交信息,然後輸入C-c C-c
來提交它。然後P
推它。完成!請注意,這聽起來像很多步驟,但它變得非常自然,整個過程需要30秒來區分我的整個變更集,階段和提交消息。同時留在Emacs。比下降到命令行要容易得多。
當我通過Magit進行推送時,有時會出現錯誤,通常是由於我在推送之前必須拉動的遠程回購中的新代碼造成的。在這種情況下,F
再次推動更改然後P
推。老實說,由於某種原因,而不是拉動magit,我通常只是Ctrl-z
在這種情況下,下降到殼,git pull
,和git push
。
編輯:我想我記得Magit的默認顏色比較殘暴。我用我的.emacs下面我敢肯定,我從什麼地方偷了:
;; change magit diff colors
(eval-after-load 'magit
'(progn
(set-face-foreground 'magit-diff-add "green3")
(set-face-foreground 'magit-diff-del "red3")
(when (not window-system)
(set-face-background 'magit-item-highlight "black"))))
(add-to-list 'auto-mode-alist '("COMMIT_EDITMSG$" . diff-mode))
(eval-after-load 'diff-mode
'(progn
(set-face-foreground 'diff-added "green4")
(set-face-foreground 'diff-removed "red3")))
的建議上magit-run*
解決這個問題。可能破壞其他調用magit-run*
,我沒有測試這進一步...
(defadvice magit-run* (around stay-in-magit activate)
(flet ((pop-to-buffer (buf &optional act rec) (display-buffer buf act)))
ad-do-it))
唉,我想這是因爲Magit是如此之大,我不想回去終端了。在emacs中完成所有事情: - ]謝謝 – sfszh 2011-04-16 11:14:24