如何使用Visual Studio代码作为Git的默认编辑器

时间:2015-05-04 07:03:43

标签: git visual-studio-code

在命令行中使用git时,我想知道是否可以使用Visual Studio Code作为默认编辑器,即在创建提交注释时,从命令行查看文件的差异。

我明白用它做合并是不可能的(至少在一分钟之内)但是有没有人知道是否可以用它来查看diff,如果有的话,会有什么命令行选项在.gitconfig文件中是否需要这样才能实现?

更新1:

我尝试过与Notepad++ in the past类似的方法,即

#!/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]>

使用预期的内容正确打开代码,但它没有等待响应,即单击保存并关闭窗口以返回提示。

更新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:

我已经reliably informed这个功能已被VSCode团队选中,所以我期待将来的版本包含它。

更新4:

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

更新5:

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

14 个答案:

答案 0 :(得分:485)

在最新版本(v1.0,发布于 2016年3月)中,您现在可以use VS Code as the default git commit/diff tool了。引文来自文件:

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

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

           
          
      • Mac:从命令中选择 Shell命令:在路径中安装'代码'命令   调色板。

             
            
        • 命令选项板是在VS内部按 shift + + P 时弹出的内容   码。 (Windows中 shift + ctrl + P
        •   
      •   
      • Windows:确保您在选择期间选择了添加到路径   安装。
      •   
      • Linux:确保您通过我们的新.deb或安装了Code   .rpm包。
      •   
    •   
  2.   
  3. 从命令行运行git config --global core.editor "code --wait"
  4.         

    现在您可以运行git config --global -e并使用VS Code作为编辑器来配置Git。   enter image description here   添加以下内容以支持将VS Code用作diff工具:

[diff]
    tool = default-difftool
[difftool "default-difftool"]
    cmd = code --wait --diff $LOCAL $REMOTE
  

这会利用您可以传递给VS Code的新--diff选项   并排比较两个文件。

     

总结一下,这里有一些你可以在哪里使用Git和VS的例子   代码:

     
      
  • git rebase HEAD~3 -i允许使用VS Code
  • 进行交互式rebase   
  • git commit允许使用VS Code作为提交消息
  •   
  • git add -p后跟e进行互动添加
  •   
  • git difftool <commit>^ <commit>允许使用VS Code作为差异编辑器进行更改
  •   

答案 1 :(得分:24)

根据我的理解,VSCode不再在AppData中了。

因此,通过在命令提示符窗口中执行该命令来设置默认的git编辑器:

git config --global core.editor "'C:\Program Files (x86)\Microsoft VS Code\code.exe' -w"

参数-w--wait是在返回之前等待窗口关闭。 Visual Studio代码基于Atom编辑器。如果你还安装了原子,则执行命令atom --help。您将看到帮助中的最后一个参数是等待。

下次执行git rebase -i HEAD~3时,它会弹出Visual Studio代码。一旦VSCode关闭,Git将收回领先优势。

注意:我当前的VSCode版本是0.9.2

我希望有所帮助。

答案 2 :(得分:10)

您需要使用命令:

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代码添加到您的   %PATH%,因此您可以在控制台中键入&#39; code&#39;打开VS代码   那个文件夹。您需要在以后重新启动控制台   安装以更改为%PATH%环境变量   生效。

答案 3 :(得分:2)

我打开了我的.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

不确定这可能是什么后果。

答案 4 :(得分:2)

除了export EDITOR="code --wait"以外,请注意,在VSCode v1.47(2020年6月)中,这些差异编辑器将提供VSCode重新加载/重启的功能。
参见issue 99290

使用commit 1428d44,差异编辑器现在有机会幸免于重载,除非在git资源上的差异编辑器作为活动文件打开,否则它可以正常工作:

enter image description here

(和commit 24f1b69对此进行了修复)

答案 5 :(得分:2)

git config --global core.editor "code --wait"

git config --global core.editor "code -w"

检查

git config --global e

您的配置将在 Visual Studio Code 中打开

答案 6 :(得分:1)

GitPad将您当前的文本编辑器设置为Git的默认编辑器。

我在Windows 10中.txt文件的默认编辑器是Visual Studio Code,并且运行GitPad曾使它成为Git的默认编辑器。我没有遇到问题中提到的问题(在我的情况下,Git会等到VS Code窗口关闭)。

.exe文件的链接对我不起作用,您可能需要自己编译源代码。)

答案 7 :(得分:1)

好消息!在撰写本文时,此功能已在 0.10.12-insiders 版本中实施,并通过 0.10.14-insiders 执行。因此,我们将在即将发布的版本1.0 Release of VS Code中使用它。

实施参考:Implement -w/--wait command line arg

答案 8 :(得分:1)

在Mac终端应用中运行此命令

git config --global core.editor "/Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code"

答案 9 :(得分:1)

我只是想在Windows 10 CMD上添加这些反斜杠到以前的答案,所以如果空格前没有反斜杠,它将无法正常工作。

git config --global core.editor "C:\\Users\\your_user_name\\AppData\\Local\\Programs\\Microsoft\ VS\ Code\\Code.exe"

答案 10 :(得分:1)

另一个有用的选项是设置EDITOR环境变量。许多实用程序都使用此环境变量来了解要使用的编辑器。如果未设置core.editor,Git也会使用它。

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

export EDITOR=code --wait

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

要使此更改永久生效,例如,将其添加到~/.profile。有关更多选项,请参见this question

答案 11 :(得分:0)

我不确定你能做到这一点,但你可以在你的gitconfig文件中尝试这些添加。

尝试从这些值替换kdiff3以指向visual studio代码可执行文件。

[merge] tool = kdiff3 [mergetool "kdiff3"] path = C:/Program Files/KDiff3/kdiff3.exe keepBackup = false trustExitCode = false

答案 12 :(得分:0)

我将Visual Studio Code设置为默认打开.txt文件。接下来我使用了简单的命令:git config --global core.editor "'C:\Users\UserName\AppData\Local\Code\app-0.7.10\Code.exe\'"。一切都运作良好。

答案 13 :(得分:0)

在Windows 10上使用64位内部人员版本命令应该是:

  

git config --global core.editor“'C:\ Program Files \ Microsoft VS Code   业内人士\ BIN \代码insiders.cmd'“

你也可以在'Program Files'目录中将'code-insiders.cmd'重命名为'code.cmd', 通过这种方式,您现在可以使用命令'code'。开始编辑文件。目录