繁体   English   中英

如何使用 Visual Studio Code 作为 git 的默认编辑器?

[英]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

如果您有兴趣看到此功能被添加,您可能需要考虑在此处添加您的投票:

http://visualstudio.uservoice.com/forums/293070-visual-studio-code/suggestions/7756482-support-git-configure-diff-and-merge-tools

更新 3:

我被可靠地告知VSCode 团队已经采用了这个功能,所以我期待未来的版本将包含它。

更新 4:

感谢下面的 @f-boucheros 评论,我已经能够让 VS Code 作为提交评论、变基等的默认编辑器工作。我仍然想看看是否也可以将它用作 diff 工具。

更新 5:

根据问题的公认答案,现在可以使用 V1.0 版本的代码。

在最新版本(v1.0,2016 年3 月发布)中,您现在可以使用 VS Code 作为默认的 git commit/diff 工具 从文档中引用:

  1. 确保您可以从命令行运行code --help并获得帮助。

    • 如果您没有看到帮助,请按照以下步骤操作:

      • Mac:选择Shell 命令:在命令面板的路径中安装“代码”命令

        • 命令面板是在 VS Code 中按shift + + P时弹出的内容。 (在 Windows 中shift + ctrl + P
      • Windows:确保在安装过程中选择了添加到 PATH
      • Linux:确保您通过我们新的 .deb 或 .rpm 包安装了 Code。
  2. 从命令行运行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 进行交互式 rebase
  • git 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 中打开。

另一个有用的选项是设置EDITORVISUAL环境变量。 许多应用程序和实用程序使用这些环境变量来了解要使用的编辑器。 如果没有设置core.editor ,Git 也会使用其中之一(取决于 Git 版本)。

您可以使用以下方法为当前会话设置它:

export EDITOR="code --wait"
export VISUAL="$EDITOR"

这样不仅git ,许多其他应用程序都将使用 VS Code 作为编辑器。

例如,要使此更改永久生效,请将其添加到您的~/.profile中。 有关更多选项,请参阅此问题


这种方法的另一个优点是您可以为不同的情况设置不同的编辑器:

  1. 当您在本地终端工作时。
  2. 当您通过 SSH 会话连接时。

这对于 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 连接它也可以工作。


有关EDITORVISUAL环境变量之间的区别,请参阅此问题

您需要使用命令:

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 文本编辑器中打开

资料来源:

https://levelup.gitconnected.com/how-to-configure-git-to-use-vs-code-as-the-default-text-editor-ea3670ab525a

VS Code Denied Permission unlink 'usr/local/bin/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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM