Git commit in terminal打开Vim,但无法返回terminal

bbuxkriu  于 2023-10-20  发布在  Git
关注(0)|答案(6)|浏览(151)

目前正在尝试学习GitHub,并在nettuts上做Git essentials tutorial。我在上关于承诺的课。
老师输入git commit,它打开Vim作为他的编辑器(我也想知道如何让它在Sublime Text 2中打开),无论如何,它在VIM中打开,我添加了一行,说这是我的第一次提交,并点击保存。
接下来,它提示我将输出保存到桌面,这是我在他的截屏中没有看到的。现在我仍然在Vim中,不知道如何回到“正常”终端:(
我不明白,所以我退出终端并重新启动它,git再次提交,并有一些关于重复的警告消息!不知道我是否需要(E)edit无论如何或(A)abort

git status

Vim

message当我重新打开终端并再次执行git commit时

m3eecexj

m3eecexj1#

要保存您的工作并退出,请按ESC,然后按:wq(w表示写入,q表示退出)。
或者,您也可以通过按下ESC键,然后按下:x,来进行保存和退出
要设置另一个编辑器,请在您的终端上运行export EDITOR=myFavoriteEdior,其中myFavoriteEdior可以是vigeditsubl(sublime)等。

bxgwgixi

bxgwgixi2#

这并不是Vim问题的真正答案,但您也可以使用命令行输入提交消息:

git commit -m "This is the first commit"
kgsdhlau

kgsdhlau3#

您需要返回到 normal 模式,并使用以下命令之一来保存提交消息

<Esc>:wq

<Esc>:x

<Esc>ZZ

按ESC键可将您从 * 插入 * 模式返回到 * 正常 * 模式。:wq、:x或ZZ序列写入更改并退出编辑器。

nwnhqdif

nwnhqdif4#

只需执行Vim的“保存并退出”命令:wq就可以了。
为了让Git在另一个编辑器中打开它,你需要将Git core.editor设置为一个运行你想要的编辑器的命令。
git config --global core.editor "command to start sublime text 2"

zmeyuzjn

zmeyuzjn5#

这是对你问题的回答

  • 我还想知道如何在Sublime Text 2中打开它 *
    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"

如果您收到以下错误消息:
错误:编辑器“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。

b1zrtrql

b1zrtrql6#

像所有调用编辑器的行为良好的终端应用程序一样,git尊重EDITORVISUAL环境变量的值。如果这两个都没有设置,它通常会回落到类似vi的东西(尽管在某些平台上,你可能会发现自己在nano或更糟)。
有很多现有的答案告诉你如何退出vim,甚至如果你真的想在vim中编辑。
在类Unix平台上,您可以仅在单个命令的持续时间内设置EDITOR

EDITOR=emacsclient git commit

或者你可以为你的shell会话的剩余部分定义它:

export EDITOR=emacsclient

将其添加到您的.profile或类似设备,以便在登录时为所有会话设置它。
(For特别是emacsclient,您希望在当前运行的Emacs示例中运行M-x server-start
要完全不使用编辑器,只需将提交消息作为参数传递给-m。大多数Unix shell允许你传入多行字符串。通常,你希望第一行总结整个提交(这就是显示的内容,例如:通过git log --oneline),并且按照惯例,在此之后应该有一个空行将其与消息的其余部分分开。

git commit -m 'Small fixes

Refactored all 1,365 source files by hand'

(Many shell将显示一个PS2提示符,通常只有>,而你在一个多行引号字符串中。

[master] (venv) your usual shell prompt$ git commit -m 'Small changes (return)
> (return)
> More text' (return)

缺乏这种简单而明显的便利性是避免使用Windows的众多原因之一。

相关问题