更新janus后使用vim进行git提交消息

时间:2013-01-30 15:29:20

标签: macos git vim

更新janus vim发行版后,使用vim进行提交消息似乎存在问题。最好的例子就是做git pull来获取别人的变化。显示vim编辑器,我输入我的提交消息,我输入 w q 但不是提交工作,我得到以下错误消息:

error: There was a problem with the editor 'vi'.
Not committing merge; use 'git commit' to complete the merge.

然后我必须手动提交:(

如何让git与vim很好地配合?

5 个答案:

答案 0 :(得分:92)

经过一段谷歌搜索后,结果是答案是运行以​​下内容:

git config --global core.editor $(which vim)

答案 1 :(得分:10)

Nat Ritmeyer已经给出了right solution。我会告诉你原因。

作为Steve Tooke explained,隐藏您的lo或明确告诉~/.vimrc使用git的完整路径来解决问题。然而,他以&#34结束;我仍然想找到问题的根源"

试试这个:

  1. 开始vim让自己进入git commit编辑。
  2. 点击vim停止进程并退回到TTY
  3. 执行<CTRL> + Z并注意您的TTY(使用ps命令获得的号码)有类似的内容......

    tty
  4. 使用$ tty /dev/ttys005 $ ps PID TTY TIME CMD 17547 ttys005 0:00.15 -bash 65126 ttys005 0:00.02 git commit 65127 ttys005 0:00.10 vi .git/COMMIT_EDITMSG $ which vi /usr/bin/vi $ ll /usr/bin/vi lrwxr-xr-x 1 root wheel 3 Oct 3 17:40 /usr/bin/vi -> vim $ jobs [1]+ Stopped git commit (或者列出的fg %1列出的作业编号停止)回到您的vim流程。

  5. shell输出告诉我们的是......

    1. 我使用的是ttys005
    2. 在名为git commit的{​​{1}}和名为bash的{​​{1}}
    3. git的完整路径为git
    4. vi命令是vi
    5. 的符号链接
    6. 调用/usr/bin/vi停止了vi命令,它在作业堆栈中排名第一。
    7. 那么, vi与vim的命令相同?!?!是的,但是vim注意到它的<CTRL> + Zgit commit并在{{}中运行3}}。这可能会导致问题,具体取决于vim

      中的内容

      最佳解决方案是告诉git使用vim,但我建议你不要假设你的vim路径与所有人一样(也许您是通过argv[0]

      安装的
      vi

答案 2 :(得分:4)

这可能是.vimrc文件中的插件或其他内容。在安全模式下加载vim以编辑提交消息的最佳方法是使用:

git config --global core.editor '/usr/bin/vim -f -u NONE'

答案 3 :(得分:2)

每次从远程仓库获取并将其与另一个分支合并时,我都遇到了同样的问题。

在终端输入此内容为我修复了

git config --global core.editor $(which vim)

答案 4 :(得分:0)

如果出于某种原因,git config --global core.editor /usr/bin/vim无法正常工作,请尝试不使用--global标记。我可以让它只在没有--global标志的情况下工作。