首页 文章

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

提问于
浏览
230

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

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

UPDATE 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]>

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

UPDATE 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

UPDATE 3:

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

UPDATE 4:

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

UPDATE 5:

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

10 回答

  • 389

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

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

    您需要使用命令:

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

    Make sure you can start your editor from Git Bash

    如果要使用具有短路径的Code.exe,可以通过将以下行添加到.bash_profile来执行此操作:

    alias vscode="C:/Program\ Files/Microsoft\ VS\ Code/Code.exe"
    

    现在,您可以仅使用 vscode 命令(或任何您命名的命令)来调用它

    一些额外的信息:

    安装程序会将Visual Studio代码添加到%PATH%,因此您可以在控制台中键入“代码”以在该文件夹上打开VS代码 . 安装后需要重新启动控制台才能使更改为%PATH%环境变量生效 .

  • 1

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

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

  • 0

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

  • 2

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

    git config --global core.editor“'C:\ Program Files \ Microsoft VS Code Insiders \ bin \ code-insiders.cmd'”

    你也可以在'Program Files'目录中将'code-insiders.cmd'重命名为'code.cmd',这样你就可以使用命令'code'了 . 开始编辑文件 . 目录

  • 20

    我打开了 .gitconfig 并修改了它:

    [core]
        editor = 'C:/Users/miqid/AppData/Local/Code/app-0.1.0/Code.exe'
    

    这样做对我来说(我在Windows 8上) .

    但是,我注意到在我尝试了一个任意 git commit 后,在我的 Git Bash 控制台中,我看到以下消息:

    [9168:0504/160114:INFO:renderer_main.cc(212)] Renderer process started
    

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

  • 0

    据我所知,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

    我希望有所帮助 .

  • 0

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

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

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

  • 1

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

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

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

  • 7

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

    确保您可以从命令行运行代码--help并获得帮助 . 如果您没有看到帮助,请按照以下步骤操作:Mac:选择Shell命令:在命令选项板的路径中安装“代码”命令 . Windows:确保在安装期间选择了“添加到PATH” . Linux:确保您通过我们安装了Code新的.deb或.rpm包 . 从命令行运行git config --global core.editor“code --wait”现在你可以运行git config --global -e并使用VS Code作为配置Git的编辑器 . 添加以下内容以支持将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的交互式rebase代码git commit允许使用VS代码提交消息git add -p后跟e代表交互式添加git difftool <commit> ^ <commit>允许使用VS Code作为差异编辑器进行更改

相关问题