在Subgime中将Sublime Text 3配置为git core.editor

时间:2017-02-02 05:32:00

标签: git cygwin sublimetext3

我想在Cygwin中使用Sublime Text作为git的编辑器(我认为它是v.2.6.1-1,但无论如何,它是最近的版本)。

我通过

设置core.editor
git config --global core.editor "/cygdrive/c/Program\ Files/Sublime\ Text\ 3/subl.exe -n -w"

现在,如果我这样做

git commit --amend

git启动Sublime,但是当我尝试保存消息时,我得到了

Unable to save C:\home\david\my_git_clone\.git\COMMIT_EDITMSG
Error: The system cannot find the path specified.

有谁知道如何让这个工作?我已经找到了很多关于如何做类似事情的解释,但没有一个特定于git,Cygwin和Sublime。

3 个答案:

答案 0 :(得分:1)

尝试明确地将COMMIT_EDITMSG的路径传递给Sublime。更新项目.git/config,如下所示:

[core]
        editor = /cygdrive/c/Program\ Files/Sublime\ Text\ 3/subl.exe `cygpath -w $PWD/.git/COMMIT_EDITMSG` -w

cygpath -w $PWD/.git/COMMIT_EDITMSG将解析COMMIT_EDITMSG的绝对路径并将其转换为Windows路径格式(根据cygpath documentation):

  

-u和-w选项指示是否要转换为UNIX   (POSIX)格式(-u)或Windows格式(-w)。

答案 1 :(得分:1)

需要制作干预的shell脚本。与difftool不同,git不会通过shell运行编辑器调用,因此你必须强制它。

所以:
〜/ bin / git-editor.sh:

`cygpath "C:\Program Files\Sublime Text 3\subl.exe"` `cygpath -w $1`

〜/ .gitconfig:

[core]
    editor = ~/bin/git-editor.sh

脚本不必完全在〜/ bin。当您输入正确的路径时,可以在任何地方作为日志。

答案 2 :(得分:0)

让它与Mykhailo的解决方案一起使用。我在Windows上使用Ubuntu,所以我必须使用" wslpath"这就像cygpath一样,可以改变目录格式。现在唯一的问题是它打开了两个文件;一个工作正常,另一个路径仍然是Unix格式。工作,但我觉得每次关闭它都很烦人。

这是我添加到gitconfig的内容:

[core]
    editor = /mnt/c/Program\\ Files/Sublime\\ Text\\ 3/subl.exe `wslpath.sh -w $PWD/.git/COMMIT_EDITMSG` -nw