Git commit trong terminal mở VIM, nhưng không thể quay lại terminal


209

Cố gắng học GitHub tại thời điểm này và thực hiện hướng dẫn cần thiết Git này tại nettuts. Tôi đang học bài về việc thực hiện các cam kết.

Các loại giáo viên git commitvà nó sẽ mở ra VIM như biên tập viên của mình (Tôi cũng thích biết làm thế nào để làm cho nó mở ra trong Sublime bản 2 thay vì) anyways nó sẽ mở ra trong VIM và tôi thêm trong 1 dòng nói rằng đây là lần đầu tiên tôi cam kết và hit tiết kiệm .

Tiếp theo nó sẽ nhắc tôi lưu đầu ra vào máy tính để bàn, điều mà tôi không thấy trong đoạn ghi hình của anh ấy. Bây giờ tôi vẫn còn trong VIM và không biết làm cách nào để quay lại thiết bị đầu cuối 'bình thường' :(

Tôi không thể tìm ra nó vì vậy tôi mới thoát khỏi thiết bị đầu cuối và khởi động lại nó, đã thực hiện lại cam kết và có một số thông báo cảnh báo về các bản sao! Không chắc chắn nếu tôi cần (E)editdù sao hay (A)abort.

tình trạng git

nhập mô tả hình ảnh ở đây

vim

nhập mô tả hình ảnh ở đây

thông báo khi tôi mở lại terminal và thực hiện lại git commit

nhập mô tả hình ảnh ở đây


3
Nếu bạn chỉ muốn biết cách lưu và thoát vim, đó là : wq
guido

1
cùng một vấn đề ở đây ... ngay khi tôi cố gắng cam kết, thiết bị đầu cuối sẽ mở một loại trình soạn thảo mà tôi không thể thoát ra. Rất phiền phức!
Kokodoko

3
@Kokodoko yeah Tôi chỉ cam kết với git commit -m 'my message'bây giờ, vậy thôi :) không cần biên tập viên, không bao giờ cần sử dụng 1, chỉ cần 1 lót.
Leon Gaban

1
@LeonGaban tin nhắn cam kết ngắn là ổn đối với lần cam kết đầu tiên, nhưng từ đó, bạn nên cố gắng áp dụng kỹ thuật có một chủ đề ngắn và sau đó nêu chi tiết những gì thực sự xảy ra trong cam kết đó.
liamvictor

1
@LeonGaban bạn thật tuyệt vời
baydi

Câu trả lời:


368

Để lưu công việc của bạn và thoát, nhấn Escvà sau đó :wq(w để viết và q để thoát).

Ngoài ra, bạn có thể lưu và thoát bằng cách nhấn Escvà sau đó:x

Để thiết lập một trình soạn thảo chạy export EDITOR=myFavoriteEdiortrên thiết bị đầu cuối của bạn, nơi myFavoriteEdiorcó thể vi, gedit, subl(đối với siêu việt) vv


7
+1 về việc giải thích chuỗi lệnh và trong quá trình hiển thị cách chuyển đổi trình chỉnh sửa nếu cần (nhưng nghiêm túc, tại sao mọi người lại muốn sử dụng trình soạn thảo ngoài vim :)
Lieven Keersmaekers

15
NB Lưu đơn giản :xvà thoát vim nhanh hơn một chút :wq;)
Xavier

1
Te thiết lập trình chỉnh sửa vĩnh viễn bạn có thể sử dụng: git config --global core.editor myFavoriteEditor
Machta 17/214

2
Phím esc không làm gì cho tôi. Các lệnh khó hiểu này là gì, năm 2016 hay 1996 này? Thật đáng kinh ngạc ...
oyaltyhi

1
Hoàn toàn không hoạt động. Có tôi đã nhập một tin nhắn cam kết. Vim hút.
Dave Kielpinski

40

không thực sự là câu trả lời cho vấn đề VIM nhưng bạn có thể sử dụng dòng lệnh để nhập thông điệp cam kết:

git commit -m "This is the first commit"

19

Bạn cần quay lại chế độ bình thường và lưu thông điệp cam kết với một trong hai

<Esc>:wq

hoặc là

<Esc>:x

hoặc là

<Esc>ZZ

Các Esclợi nhuận chính bạn khỏi chèn chế độ bình thường chế độ. Các :wq, :xhoặc ZZtự viết những thay đổi và thoát trình soạn thảo.


2
Không ... chìa khóa esc không làm gì cả. Tôi bị kẹt trong "Hợp nhất chủ chi nhánh của ..." Vui lòng nhập thông báo cam kết để giải thích lý do hợp nhất này là cần thiết.
Kokodoko

Bạn đã nhập một tin nhắn cam kết? Điều gì xảy ra khi bạn nhấn <Esc>:wq?
Lieven Keersmaekers

2
Trong trường hợp của tôi không có gì xảy ra. Các lệnh khó hiểu này là gì, năm 2016 hay 1996 này?
oyaltyhi

1
@ Homo-Erectus - Tôi đã bắt đầu sử dụng vim khoảng 4 năm trước và điều hối tiếc duy nhất của tôi là tôi đã không bắt đầu sớm hơn. Tôi không coi đó là thời gian lãng phí, bạn nên thử nó. Nó có một đường cong học tập dốc tâm trí bạn nhưng nó sẽ có giá trị nó. Đối với các lệnh, tôi không có nhiều thứ để thêm. Nhập <esc>, gõ :, gõ x và đó phải là nó.
Kẻ lừa đảo

@idelhi Không bao giờ là muộn để bắt đầu sử dụng vim
Anatoly Yakimchuk

16

Đơn giản chỉ cần thực hiện lệnh "lưu và thoát" vim :wqsẽ thực hiện thủ thuật.

Để Git mở nó trong một trình soạn thảo khác, bạn cần thay đổi core.editorcài đặt Git thành một lệnh chạy trình soạn thảo mà bạn muốn.

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


4
Cảm ơn các mẹo về cài đặt trình soạn thảo thành văn bản cao siêu. Tôi đã chạy vào một vấn đề mặc dù, tôi đã phải đặt một --waitlá cờ : git config --global core.editor "subl --wait". Điều này ngăn chặnAborting commit due to empty commit message.
Eric

16

Đây là câu trả lời cho câu hỏi của bạn ...

Thay vào đó, tôi cũng muốn biết làm thế nào để mở nó trong Sublime Text 2

Cho cửa sổ:

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

Kiểm tra xem đường dẫn cho sublime_text.execó chính xác không và điều chỉnh nếu cần.

Đối với máy Mac / Linux:

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

Nếu bạn nhận được một thông báo lỗi, chẳng hạn như:

lỗi: Có vấn đề với trình soạn thảo 'subl -n -w'.

Tạo bí danh cho subl

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

Một lần nữa kiểm tra xem đường dẫn phù hợp với máy của bạn.

Đối với Sublime Text chỉ cần lưu cmd Svà đóng cửa sổ cmd Wđể trở về git.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.