【问题标题】:How can I make Sublime Text the default editor for Git?如何让 Sublime Text 成为 Git 的默认编辑器?
【发布时间】:2017-05-14 22:49:09
【问题描述】:

我在将 Sublime Text 2 设置为 core.editorgit 时遇到问题。

我已经阅读了所有能找到解决问题的帖子,但仍然没有什么对我有用。我正在运行 Windows。

我已经完成了:

git config --global core.editor "'C:/Program Files/Sublime Text 2/sublime_text.exe'"

并尝试使用各种参数,例如-m。当我打开我的.gitconfig 时,里面是这样的:

[user]
    name = Spencer Moran
    email = smoran02@gmail.com
[core]
    editor = 'C:/Program Files/Sublime Text 2/sublime_text.exe'

如果我去 Git 并输入:

README.markdown --edit

README 文件在记事本中打开,而不是 Sublime Text。

有谁知道我做错了什么或如何解决这个问题?

【问题讨论】:

标签: git editor default sublimetext git-config


【解决方案1】:

MacOS(Mojave) 上,Sublime 3 对我有用:

git config --global core.editor "/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl -n -w"

【讨论】:

    【解决方案2】:

    我还没有看到任何有关 Windows 的更新实例,允许 Git 安装主动选择 Sublime Text 作为您的默认文本编辑器,而没有原始覆盖代码的所有喧嚣...

    【讨论】:

      【解决方案3】:

      在 Windows 上,如果你正在安装 git,你可以选择其他编辑器并给出以下命令行。 C:\Program Files\Sublime Text 3\sublime_text.exe -w

      【讨论】:

        【解决方案4】:

        对于 MacSublime Text 3

        如果git config --global core.editor "subl -n -w" 不起作用,请使用此git config 命令:

        $ git config --global core.editor "'/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl' -n -w"
        

        注意:它确实包含转义反斜杠。

        【讨论】:

        • 这是正确的设置方法。谢谢你。
        • 你我的朋友救了我很多时间,vim 让我毛骨悚然。
        【解决方案5】:

        对于 MAC 用户,我可以说 Sublime 使用以下内容:

        首先使用命令检查 .gitconfig 文件:

        1. cd ~
        2. ls -la
        3. cat .gitconfig

        现在可以添加这个配置了:

        git config --global core.editor "subl -n -wl1"
        

        l1 将告诉从第 1 行开始。

        【讨论】:

          【解决方案6】:

          您可以在 Mac 和 Linux 上使用此命令:

          git config --global core.editor "subl -n -w"
          

          【讨论】:

          • 实际上,最近在 Mac 上的建议是将 subl 符号链接到 $PATH 中的某个位置,并将编辑器设置为“subl -w”。它在官方文档中。
          • 文档说要使用subl -w,但如果您打开了其他选项卡,这将无法正常工作。我发现subl -n -w 效果更好,因为它会打开一个新窗口。
          • @iano 如果我这样做,我应该关闭选项卡还是关闭窗口来提交?关闭窗口不起作用
          • 这会在 sublime 中为我打开一个空文档,直到我按照以下说明操作:sublimetext.com/docs/3/osx_command_line.html 但将路径从 Sublime Text.app 更改为 Sublime Text 2.app
          【解决方案7】:

          好吧,即使在将它设置为我的 core.editor 之后,我在从 gitbash 调用 notepad++ 时也遇到了一些麻烦。

          我通过将以下行附加到我的 gitbash 安装目录中的 .bashrc 文件来解决所有问题。

          alias npp='winpty "C:/Program Files (x86)/Notepad++/notepad++.exe"'

          所以,我可以使用别名“npp”调用记事本++。如果您将目录更改为您要使用的相应编辑器,我觉得这会对您有所帮助。

          【讨论】:

            【解决方案8】:

            窗口

            崇高文本 2(内部版本 2181)

            最新的Build 2181 刚刚添加了对-w(等待)命令行参数的支持。以下配置将允许 ST2 作为 Windows 上的默认 git 编辑器工作。这将允许 git 打开 ST2 以获取提交消息等。

            git config --global core.editor "'c:/program files/sublime text 2/sublime_text.exe' -w"
            

            崇高文本 3(构建 3065)

            Sublime Text 3 (Build 3065) 添加了subl.exe 命令行助手。使用subl.exe -h 获取您可用的选项。我在我的 Sublime Text 用户设置中设置了 hot_exit: trueremember_open_files: true。我发现以下 git config 对我很有效。

            git config --global core.editor "'c:/program files/sublime text 3/subl.exe' -w"
            

            Mac 和 Linux

            通过在终端中输入以下命令,将 Sublime 设置为 Git 编辑器:

            git config --global core.editor "subl -n -w"


            有了这个 Git 配置,新标签页就会在我的编辑器中打开。我编辑我的提交消息,保存选项卡 (Ctrl+S) 并关闭它 (Ctrl+W) .

            Git 会等到标签页关闭后才能继续工作。

            【讨论】:

            • 就我个人而言,除了按照@jrotello 的建议设置我的编辑器之外,当我在我的 ST2 设置中添加以下选项时,我的 ST2/git 体验有了很大改善:{ "hot_exit": false, "remember_open_files" :假,“close_windows_when_empty”:真}
            • @Phrogz:我能够使用以下语法在我的 .gitconfig 中使用它:editor = 'C:\\Program Files\\Sublime Text 2\\sublime_text.exe' -w
            • 对我来说,如果 sublime text 已经打开,这将打开一个新标签。关闭选项卡,不会让 git 知道它已经完成。我试过 --multiinstance,但它似乎没有做任何事情。
            • 请注意,当hot_exit 为假并且灯熄灭时,所有未保存的工作都将开始!!!!!!!!!!
            • 实际上,使用“-n -w”,git 似乎无法判断 sublime 文本窗口已关闭(如果我至少打开了现有的 sublime 窗口)。 “-w --multiinstance” 似乎仍然工作得最好,尽管在新的 sublime 窗口中重新打开了任何现有的选项卡。似乎可以放心地忽略它们。
            【解决方案9】:

            对于 Windows 7,我发现以下解决方案有效:

            git config --global core.editor "C:/Program\ Files/Sublime\ Text\ 2/sublime_text.exe -n -w"
            

            【讨论】:

              【解决方案10】:

              对于 Mac OS X,在 [core] 下的 ~/.gitconfig 文件中,我不得不把这段代码放在我的最后解决问题。

              editor = /Applications/Sublime\\ Text.app/Contents/SharedSupport/bin/subl  -n -w
              

              这是 subl 工作正常但 git 无法访问它的时候。并显示这些错误

              subl -n -w: subl: command not found
              error: There was a problem with the editor 'subl -n -w'.
              

              【讨论】:

              • 这就是我尝试过其他解决方案后的诀窍,谢谢
              【解决方案11】:

              如果您是 Mac 用户,那么方法如下:

              git config --global core.editor '/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl'
              

              【讨论】:

                【解决方案12】:

                使用 Sublime Text 2 和以下配置,如果关闭 git commit 的注释文件时没有任何反应:

                git config --global core.editor "'c:/program files/sublime text 2/sublime_text.exe' -w"
                

                如果在 Sublime 中关闭 COMMIT_EDITMSG 注释文件时 git commit 没有完成,我发现这可能是因为您在管理员模式下运行 CMD(并且已经在非管理员模式下打开了 Sublime Text)。我遇到了同样的问题,当我在正常模式下启动我的 CMD 时,它对我有用。

                Ps:只是想回答@david 在接受的答案的 cmets 中指出的问题,但我无法发表评论,因为我是新来的……所以我做了一个新的答案,因为我认为这对某些遇到问题的人很有用。

                【讨论】:

                • 感谢您的提示。你知道解决办法吗?
                • @ScottWegner 只需在非管理员模式下启动您的 CMD,作为一种解决方法。您无需处于管理员模式即可运行 git 命令。但是,如果您真的需要处于管理员模式,那么我没有找到解决方案,除了打开另一个 CMD 实例。
                • 感谢您的跟进。我最终得到了提升的 shell,因为我的开发环境需要其他工具(Visual Studio)的管理模式,因此我运行我的整个 shell 提升。我想我只会探索提升需要它的工具。
                • @ScottWegner 我个人使用Cmder(完整版甚至包括msysgit)。它允许在带有选项卡的独特窗口中使用 CMD、bash 或其他 Shell 的多个实例。您可以在管理模式下启动一些选项卡,在正常模式下启动其他选项卡。我通常有一个专用于 git 的选项卡和用于其他工具的其他选项卡。也许您有兴趣尝试一下。这是一个很棒的工具!
                • re: 管理员模式 - 我认为诀窍是你的 shell 和 sublime 必须使用相同的权限。即,如果您运行终端提升并且 sublime 也提升它运行顺利。
                【解决方案13】:

                今天晚上我在使用 Windows 中的 git 编辑器时遇到了同样的问题,终于解决了。

                您需要使用 bash 语法并使用 DOS 8.3 格式设置编辑器路径以避免空格

                这不起作用(对我来说):

                git config --global core.editor "C://Program files/Sublime Text/sublime_text.exe"
                

                这样做:

                git config --global core.editor /C/PROGRA~1/SUBLIME~1/sublime_text.exe
                

                您可以使用 dir /x

                获取目录的 DOS 8.3 名称

                【讨论】:

                  【解决方案14】:

                  出于某种原因,我只是在为此苦苦挣扎,上面的示例都没有对我有用。这是我的解决方案:

                   git config --global core.editor "'c:/<path to sublime>/sublime_text.exe' -w $*"
                  

                  您特别需要路径周围的' ' 和args 末尾的$*,都在" " 中。

                  【讨论】:

                    【解决方案15】:

                    在 cygwin/zsh 中什么对我有用:

                    在 /usr/local/bin 中创建 subl_git 文件

                    #!/bin/bash
                    /cygdrive/c/Program\ Files/Sublime\ Text\ 2/sublime_text.exe -w -n `cygpath -w $@`
                    

                    在 gitconfig 中:

                    editor = /usr/local/bin/subl_git
                    

                    【讨论】:

                    • 请原谅我的新手问题,但我如何访问 gitconfig?这与运行git config --list 有什么不同吗?提前致谢。
                    • 只是列出了它们。你需要编辑你的 gitconfig
                    • 我的用户文件夹中有一个空间,所以我使用了修改后的 -"/cygdrive/c/Program Files/Sublime Text 3/subl.exe" -w -n "`cygpath -d -w "$@"`
                    【解决方案16】:

                    我刚刚在 PowerShell(windows 命令行工具,也可用作 GithubforWindows 上的默认命令行)的帮助下成功实现了它

                    只需在“C:\Users\%username%\My Documents”上创建一个文件夹“WindowsPowerShell”。 然后,创建一个名为“profile.ps1”的文件。 确保您具有正确的文件扩展名,.ps1 而不是 .txt。 在profile.ps1里面,放这行来设置一个别名命令:

                    Set-Alias subl 'c:\program files\sublime text 2\sublime_text.exe'
                    

                    确保你机器上的 sublime 目录是正确的。 也可以在here查看配置详情。

                    现在,我可以通过 PowerShell 命令使用 Sublime Text 2 编辑文件,只需键入:

                    subl filename
                    

                    希望这是有用的...

                    【讨论】:

                    • 要在 Sublime Text 2 中打开当前文件夹,可以使用:subl .
                    • 对于 Sublime Text 3,使用新的 subl.exe:Set-Alias subl 'c:\program files\sublime text 3\subl.exe'
                    猜你喜欢
                    • 2015-09-04
                    • 2012-04-12
                    • 2012-03-16
                    • 2014-05-22
                    • 1970-01-01
                    • 1970-01-01
                    • 2018-10-29
                    • 2019-04-01
                    相关资源
                    最近更新 更多