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

问题描述 投票:1回答:3

我想在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。

git cygwin sublimetext3
3个回答
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
投票

需要制作一个介入的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。当您输入正确的路径时,可以在任何地方作为日志。


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
© www.soinside.com 2019 - 2024. All rights reserved.