2012-11-22 243 views
151

試圖學習GitHub,並在nettuts上做這個Git essentials tutorial。我正在進行提交的課程。Git commit在終端打開VIM,但無法返回到終端

老師類型git commit和它打開VIM爲他的編輯(我也想知道如何使它在Sublime Text 2而不是打開)反正它在VIM打開,我在1號線加說這是我的第一次提交併保存。

接下來,它會提示我將輸出保存到桌面,這在屏幕錄像中沒有看到。現在我仍然在VIM,不知道如何返回到'正常'終端:(

我無法弄清楚,所以我只是退出終端並重新啓動它,沒有再次提交git併發出警告關於重複的信息!不知道如果我需要(E)edit反正或(A)abort

git的狀態

enter image description here

VIM

enter image description here

消息,當我重新打開終端,做git的承諾再次

enter image description here

+3

f你只是想知道如何保存並退出vim,它是_:wq_ –

+0

可能的重複[使用git commit -a with vim](http://stackoverflow.com/questions/6098742/using-git- commit-a-with-vim) –

+0

同樣的問題在這裏......只要我嘗試提交,終端打開某種我不能退出的編輯器。很煩人! – Kokodoko

回答

279

保存您的工作並退出按Esc鍵然後:瓦特q (w表示寫入,q表示退出)。

或者,你可以既保存和退出按Esc鍵然後X

要設置其他編輯器做出口EDITOR = myFavoriteEdior

+5

+1解釋命令序列,並在過程中顯示如何在需要時切換編輯器*(但是,嚴重的是,爲什麼會有人想使用vim以外的編輯器:) * –

+12

NB一個簡單的':x'保存並退出vim,它比':wq'快一點;) – Xavier

+1

謝謝,幫助我呢! – 1088

15

簡單地做了VIM「保存並退出「命令:wq應該做的伎倆。

爲了讓Git在另一個編輯器中打開它,您需要將Git core.editor設置更改爲運行所需編輯器的命令。

git config --global core.editor "command to start sublime text 2"

+3

感謝您將編輯器設置爲崇高文本的提示。我遇到了一個問題,但我必須設置一個'--wait'標誌:'git config --global core.editor「subl --wait」'。這可以防止由於提交空消息而中止提交。 – Eric

31

不是真正的答案VIM問題,但你可以使用命令行來也進入了提交信息:

git commit -m "This is the first commit" 
+1

感謝您的提示! –

18

您需要返回到正常模式並保存提交消息

<Esc>:wq 

<Esc>:x 

<Esc>ZZ 

Esc鍵鍵返回從插入模式正常模式。 :wq,:xZZ序列寫入更改並退出編輯器。

+2

不... esc鍵沒有任何作用。我被困在「合併分支主...」中。請輸入一條提交消息來解釋爲什麼這個合併是必要的。 – Kokodoko

+0

*您輸入了提交信息嗎?當按':wq'時會發生什麼? –

+2

在我的情況下沒有任何反應。這個神祕的命令是什麼,這是2016年還是1996年? – oyalhi

7

這是回答你的問題......

I'd also like to know how to make it open up in Sublime Text 2 instead

對於Windows:

git config --global core.editor "'C:/Program Files/Sublime Text 2/sublime_text.exe'" 

檢查爲sublime_text.exe路徑是否正確,如果需要進行調整。

對於Mac/Linux的:

git config --global core.editor "subl -n -w" 

如果你得到一個錯誤信息,如:

error: There was a problem with the editor 'subl -n -w'.

創建subl

sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl 

別名再次檢查路徑匹配您的機器。

對於Sublime Text只需保存cmd S並關閉窗口cmd W即可返回到git。