ChatGPT解决这个技术问题 Extra ChatGPT

如何让 Sublime Text 成为 Git 的默认编辑器?

我在使用 git 将 Sublime Text 2 设置为 core.editor 时遇到问题。

我已经阅读了所有我能找到解决问题的帖子,但仍然没有任何东西对我有用。我正在运行 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

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

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

如果您在 cmd.exe 中键入 only README.markdown --edit,则根本不涉及 git。如果您希望它起作用,请更改 Windows 中的文件关联。
以下大多数答案的一般 FYI:-w 表示“等待文件关闭后再返回”,-n 表示“打开一个新窗口”。来源:docs.sublimetext.info/en/latest/command_line/command_line.html
我最喜欢使用 Sublime Text 3 作为我的 git 编辑器的设置:stackoverflow.com/questions/2596805/…

c
chicks

视窗

崇高文本 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(内部版本 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": false, "close_windows_when_empty": true }
@Phrogz:我能够使用以下语法在我的 .gitconfig 中运行它:editor = 'C:\\Program Files\\Sublime Text 2\\sublime_text.exe' -w
对我来说,如果 sublime text 已经打开,这将打开一个新标签。关闭选项卡,不会让 git 知道它已经完成。我试过--multiinstance,但它似乎没有做任何事情。
请注意,当 hot_exit 为 false 并且灯熄灭时,所有未保存的工作都将开始!!!!!!!!!!!!
实际上,使用“-n -w”,git 似乎无法判断 sublime 文本窗口已关闭(如果我至少打开了现有的 sublime 窗口)。 “-w --multiinstance” 似乎仍然工作得最好,尽管在新的 sublime 窗口中重新打开了任何现有的选项卡。似乎可以安全地忽略它们。
f
fedorqui

您可以在 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
n
nu-bo

对于 Mac 和 Sublime 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 让我毛骨悚然。
A
Ahmad Awais

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

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'.

在尝试了其他解决方案后,这就是我的诀窍,谢谢
m
meeech

在 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 "$@"`
F
Francois

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

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

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

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


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

我刚刚在 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'
D
Diego Buendia

今天晚上我在 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 名称


P
Pratik Patel

在下面的 MacOS(Mojave) 上为 Sublime 3 工作:

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


j
justin.m.chase

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

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

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


m
mainframer

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

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

O
OLATOMIDE

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

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

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

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


f
fedorqui

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

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

cd ~ ls -la cat .gitconfig

现在可以添加此配置:

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

l1 将告诉从第 1 行开始。


X
Xavier John

https://i.stack.imgur.com/u3w2p.png


t
tscott1

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

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

A
Angelfirenze

https://i.stack.imgur.com/pxXUh.png