![](/img/trans.png)
[英]How to use Visual Studio Code as the default editor for Git MergeTool
[英]How to use Visual Studio Code as default editor for git?
在命令行使用 git 时,我想知道是否可以使用 Visual Studio Code 作为默认编辑器,即在创建提交注释并从命令行查看文件差异时。
我知道不可能用它来进行合并(至少在当时是这样)但是有谁知道是否可以用它来查看差异,如果可以的话,需要哪些命令行选项the.gitconfig 文件来实现这一点?
更新 1:
我尝试了一种类似于我过去为 Notepad++所做的方法,即
#!/bin/sh
"c:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$*"
并使用:
#!/bin/sh
"C:\Users\gep13\AppData\Local\Code\app-0.1.0\Code.exe" "$*"
但这会导致错误消息:
C:\temp\testrepo [master +1 ~0 -0]> git commit
[8660:0504/084217:ERROR:crash_reporter_win.cc(70)] Cannot initialize out-of-process crash handler
Aborting commit due to empty commit message.
C:\temp\testrepo [master +1 ~0 -0]>
代码正确打开,具有预期的内容,但它没有等待响应,即单击保存并关闭 window 以返回提示。
更新 2:
我刚刚收到一位从事 VSCode 开发的开发人员的回复。 看起来目前不支持此功能:-(
https://twitter.com/IsidorN/status/595501573880553472
如果您有兴趣看到此功能被添加,您可能需要考虑在此处添加您的投票:
更新 3:
我被可靠地告知VSCode 团队已经采用了这个功能,所以我期待未来的版本将包含它。
更新 4:
感谢下面的 @f-boucheros 评论,我已经能够让 VS Code 作为提交评论、变基等的默认编辑器工作。我仍然想看看是否也可以将它用作 diff 工具。
更新 5:
根据问题的公认答案,现在可以使用 V1.0 版本的代码。
在最新版本(v1.0,2016 年3 月发布)中,您现在可以使用 VS Code 作为默认的 git commit/diff 工具。 从文档中引用:
确保您可以从命令行运行
code --help
并获得帮助。
如果您没有看到帮助,请按照以下步骤操作:
Mac:选择Shell 命令:在命令面板的路径中安装“代码”命令。
- 命令面板是在 VS Code 中按shift + ⌘ + P时弹出的内容。 (在 Windows 中shift + ctrl + P )
- Windows:确保在安装过程中选择了添加到 PATH 。
- Linux:确保您通过我们新的 .deb 或 .rpm 包安装了 Code。
- 从命令行运行
git config --global core.editor "code --wait"
现在您可以运行
git config --global -e
并使用 VS Code 作为编辑器来配置 Git。添加以下内容以启用对使用 VS Code 作为差异工具的支持:
[diff]
tool = default-difftool
[difftool "default-difftool"]
cmd = code --wait --diff $LOCAL $REMOTE
这利用了可以传递给 VS Code 的新
--diff
选项来并排比较两个文件。总而言之,以下是一些可以在 VS Code 中使用 Git 的示例:
git rebase HEAD~3 -i
允许使用 VS Code 进行交互式 rebasegit commit
允许使用 VS Code 作为提交信息git add -p
后跟e
用于交互式添加git difftool <commit>^ <commit>
允许使用 VS Code 作为差异编辑器进行更改
据我了解,VSCode 不再在 AppData 中。
因此,通过在命令提示符窗口中执行该命令来设置默认的 git 编辑器:
git config --global core.editor "'C:\Program Files (x86)\Microsoft VS Code\code.exe' -w"
参数-w
, --wait
是等待窗口关闭后再返回。 Visual Studio Code 基于 Atom 编辑器。 如果您还安装了 atom 执行命令atom --help
。 您将看到帮助中的最后一个参数是等待。
下次你执行git rebase -i HEAD~3
时,它会弹出 Visual Studio Code。 一旦 VSCode 关闭,Git 将夺回领先地位。
注意:我当前的 VSCode 版本是 0.9.2
我希望有帮助。
git config --global core.editor "code --wait"
或者
git config --global core.editor "code -w"
验证:
git config --global -e
您的配置将在 Visual Studio Code 中打开。
另一个有用的选项是设置EDITOR
和VISUAL
环境变量。 许多应用程序和实用程序使用这些环境变量来了解要使用的编辑器。 如果没有设置core.editor
,Git 也会使用其中之一(取决于 Git 版本)。
您可以使用以下方法为当前会话设置它:
export EDITOR="code --wait"
export VISUAL="$EDITOR"
这样不仅git
,许多其他应用程序都将使用 VS Code 作为编辑器。
例如,要使此更改永久生效,请将其添加到您的~/.profile
中。 有关更多选项,请参阅此问题。
这种方法的另一个优点是您可以为不同的情况设置不同的编辑器:
这对于 VS Code(或任何其他 GUI 编辑器)尤其有用,因为它在没有 GUI 的情况下无法工作。
在 Linux 操作系统上,将其放入您的~/.profile
中:
# Preferred editor for local and remote sessions
if [[ -n $SSH_CONNECTION ]]; then # SSH mode
export EDITOR='vim'
else # Local terminal mode
export EDITOR='code -w'
fi
export VISUAL="$EDITOR"
这样当你使用本地终端时, $SSH_CONNECTION
环境变量将为空,所以会使用code -w
编辑器,但是当你通过 SSH 连接时, $SSH_CONNECTION
环境变量将是一个非空字符串,所以将使用vim
编辑器。 它是控制台编辑器,因此即使您通过 SSH 连接它也可以工作。
有关EDITOR
和VISUAL
环境变量之间的区别,请参阅此问题。
您需要使用命令:
git config --global core.editor "'C:\Program Files\Microsoft VS Code\code.exe' -n -w"
确保你可以从 Git Bash 启动你的编辑器
如果您想使用带有短路径的 Code.exe,可以通过将以下行添加到您的 .bash_profile 来执行此操作:
alias vscode="C:/Program\ Files/Microsoft\ VS\ Code/Code.exe"
现在,您可以仅使用vscode
命令(或您命名的任何名称)调用它
一些附加信息:
安装程序会将 Visual Studio Code 添加到您的 %PATH%,因此您可以从控制台键入“code”以打开该文件夹上的 VS Code。 您需要在安装后重新启动控制台,以使对 %PATH% 环境变量的更改生效。
我打开了我的.gitconfig
并对其进行了修改:
[core]
editor = 'C:/Users/miqid/AppData/Local/Code/app-0.1.0/Code.exe'
这对我有用(我在 Windows 8 上)。
但是,我注意到,在我的Git Bash控制台中尝试任意git commit
后,我看到以下消息:
[9168:0504/160114:INFO:renderer_main.cc(212)] Renderer process started
不确定这可能会产生什么后果。
好消息! 在撰写本文时,此功能已在0.10.12-insiders版本中实现,并通过0.10.14-insiders执行。 因此,我们将在即将发布的 VS Code 1.0 版本中使用它。
实施参考: 实施 -w/--wait 命令行参数
在您的 Mac 终端应用程序中运行此命令
git config --global core.editor "/Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code"
除了export EDITOR="code --wait"
,请注意,使用 VSCode v1.47(2020 年 6 月),这些差异编辑器将在 VSCode 重新加载/重新启动时运行。
请参阅问题 99290 :
使用commit 1428d44 ,差异编辑器现在有机会在重新加载后幸存下来,并且这可以正常工作,除非 git 资源上的差异编辑器被打开为活动的:
(并提交 24f1b69修复该问题)
GitPad将您当前的文本编辑器设置为 Git 的默认编辑器。
我在 Windows 10 中.txt
文件的默认编辑器是 Visual Studio Code,运行 GitPad 曾经使它成为 Git 的默认编辑器。 我没有遇到问题中提到的问题(在我的情况下,Git 等到 VS Code 窗口关闭)。
( .exe
文件的链接对我不起作用,您可能需要自己编译源代码。)
只想将这些反斜杠添加到以前的答案中,我在 Windows 10 CMD 上,如果没有空格前的反斜杠,它就无法工作。
git config --global core.editor "C:\\Users\\your_user_name\\AppData\\Local\\Programs\\Microsoft\ VS\ Code\\Code.exe"
.gitconfig 文件中需要哪些命令行选项才能实现这一点?
我必须将此添加到我的 .gitconfig 文件中才能使 git-lense 工作:
[core]
# Make sure that interactive rebases open correctly with vs code
editor = code -w -n
-n
是可选的——正如下面 Alex 提到的,它是--new-window
的缩写,我觉得它很有帮助:)
如果你像我一样懒惰,我在vscode terminal
中添加了git bash
作为默认值。 那我劝你也跟我一样。
Step1:打开设置: Ctrl + ,
Step2:搜索.json
--> 选择文件setting.json
步骤3:将代码粘贴到文件末尾但在括号'}'
中
“terminal.integrated.defaultProfile.windows”:“gitbash”,“terminal.integrated.shell.windows”:“E:\app\git\Git\bin\bash.exe”,
我正在添加一个答案,因为所有其他人都不够简洁,我喜欢/不适合我的确切情况。 我正在运行带有 M1 芯片的 MacBook Air 2021
要使 VS Code 你在 VS Code 中默认 git 编辑器:
步骤1
在命令行中运行命令git config --global core.editor "code --wait"
。
第2步
如果您尝试在此阶段进行提交,您可能会收到如下所示的错误:
“提示:等待您的编辑器关闭文件...代码-w:代码:找不到命令错误:编辑器'代码-w'有问题”。
这意味着您没有在 VS Code 中安装 shell 命令“code”。 使用 (command + shift + p) 在 VS Code 中打开命令中心。 搜索“code”和 select“Shell 命令:在 PATH 中安装 'code' 命令”。 这会将“代码”添加到您的路径中。
第 3 步
在尝试安装“代码”时,您可能会收到如下所示的错误:
“EACCES:权限被拒绝,取消链接'/usr/local/bin/code'”。
我不知道是什么原因造成的,但是一个简单的卸载并重新安装就可以解决它。 要卸载,请在 VS Code 命令中心搜索“卸载”和 select“Shell 命令:在 PATH 中卸载 'code' 命令”
第4步
运行命令git config --global -e
测试您的新默认编辑器是什么。 你的配置文件应该在 VS Code 文本编辑器中打开
资料来源:
我不确定你能做到这一点,但是你可以在你的 gitconfig 文件中尝试这些添加。
尝试从这些值替换 kdiff3 以指向 Visual Studio 代码可执行文件。
[merge] tool = kdiff3 [mergetool "kdiff3"] path = C:/Program Files/KDiff3/kdiff3.exe keepBackup = false trustExitCode = false
我将 Visual Studio Code 设置为默认打开 .txt 文件。 接下来我确实使用了简单的命令: git config --global core.editor "'C:\Users\UserName\AppData\Local\Code\app-0.7.10\Code.exe\'"
。 一切都很好。
在使用 64 位 Insiders 版本的 Windows 10 上,命令应该是:
git config --global core.editor "'C:\Program Files\Microsoft VS Code Insiders\bin\code-insiders.cmd'"
您还可以在“Program Files”目录中将“code-insiders.cmd”重命名为“code.cmd”,这样您现在就可以使用“code”命令了。 开始编辑 . 目录
在 Windows 10 上的 2022 年,您应该有下一条路径:
git config --global core.editor "'C:\Users\<your username here>\AppData\Local\Programs\Microsoft VS Code\code.exe' -w"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.