【问题标题】:Configure Sublime Text 3 as git core.editor in Cygwin在 Cygwin 中将 Sublime Text 3 配置为 git core.editor
【发布时间】:2017-06-19 02:08:02
【问题描述】:

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


    【解决方案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】:

      尝试将 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)。

      【讨论】:

      • 谢谢。但我无法让它工作。我将此行添加到我现有的 [core] 部分(使用制表符缩进它),git status 现在给我“致命:文件 .git/config 中的错误配置第 9 行”。有什么想法吗?
      【解决方案3】:

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

      这是我添加到 gitconfig 中的内容:

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

      【讨论】:

        猜你喜欢
        • 2013-09-25
        • 2021-01-08
        • 2014-05-25
        • 2020-04-23
        • 2017-07-16
        • 2015-09-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多