如何使用Visual Studio代码作为Git的默认编辑器
在命令行使用git时,我想知道是否可以使用Visual Studio Code作为默认编辑器,即创build提交注释时,以及从命令行查看文件的差异。
我明白,它不可能用于合并(至less在一分钟),但有人知道是否有可能使用它来查看差异,如果是的话,将需要什么样的命令行选项.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]>
代码打开正确,与预期的内容,但它不等待响应,即单击保存并closures窗口返回提示。
更新2:
我刚刚听到从VSCode工作的开发者之一。 看起来像这个function目前不支持:-(
@gep13 @NathanGloyn @code I checked and what you want to do is currently not possible, unfortunetly.
— Isidor Nikolic (@IsidorN) May 5, 2015
如果你有兴趣看到这个function被添加,你可能想考虑在这里添加你的选票:
http://visualstudio.uservoice.com/forums/293070-visual-studio-code/suggestions/7756482-support-git-configure-diff-and-merge-tools
更新3:
我已经被可靠地告知 ,这个function已经被VSCode团队采纳了,所以我期待将来的版本将包括它。
更新4:
感谢下面的@ f-boucheros评论,我已经能够获得VS Code作为提交评论,rebase等默认编辑器。我仍然想看看是否有可能使用它作为diff工具。
更新5:
根据问题的接受答案,现在可以使用V1.0版本的代码。
在最新版本(v1.0,2016年3月发布)中,您现在可以使用VS Code作为默认的git commit / diff工具 。 引用文件:
- 确保你可以从命令行运行
code --help
并获得帮助。
- 如果您没有看到帮助,请按照以下步骤操作:
- Mac:selectShell命令:在 “命令面板”的path中安装“代码”命令 。
- Windows:确保在安装期间select了“ 添加到path ”。
- Linux:确保通过新的.deb或.rpm软件包安装了代码。
- 从命令行运行
git config --global core.editor "code --wait"
现在你可以运行
git config --global -e
并使用VS Code作为编辑器来configurationGit。 添加以下内容以支持使用VS代码作为diff工具:
[diff] tool = default-difftool [difftool "default-difftool"] cmd = code --wait --diff $LOCAL $REMOTE
这将利用您可以传递给VS Code的新的
--diff
选项来并排比较两个文件。总而言之,下面是一些可以在VS代码中使用Git的例子:
git rebase HEAD~3 -i
允许使用VS Code进行交互式重新分页git commit
允许使用VS代码来提交消息git add -p
后面跟e
交互添加git difftool <commit>^ <commit>
允许使用VS Code作为diff编辑器进行更改
据我所知,VSCode不在AppData中了。
所以通过在命令提示符窗口中执行该命令来设置默认的git编辑器:
git config --global core.editor "'C:\Program Files (x86)\Microsoft VS Code\code.exe' -w"
参数-w
,– --wait
是在返回之前等待窗口closures。 Visual Studio代码基于Atom编辑器。 如果你还安装了atom --help
执行命令atom --help
。 你会看到帮助中的最后一个参数是等待。
下次你做一个git rebase -i HEAD~3
它会popupVisual Studio代码。 一旦VSCodeclosures,Git将收回领先。
注意:我目前版本的VSCode是0.9.2
我希望有所帮助。
GitPad将您当前的文本编辑器设置为Git的默认编辑器。
我在Windows 10中的.txt
文件的默认编辑器是Visual Studio Code,运行GitPad曾经使它成为Git的默认编辑器。 我没有遇到问题中提到的问题(Git等到VS Code窗口closures在我的情况)。
( .exe
文件的链接不适用于我,您可能需要自己编译源代码。)
我不知道你可以做到这一点,但是你可以尝试在你的gitconfig文件中添加这些。
尝试从这些值replacekdiff3指向Visual Studio代码可执行文件。
[merge] tool = kdiff3 [mergetool "kdiff3"] path = C:/Program Files/KDiff3/kdiff3.exe keepBackup = false trustExitCode = false
我打开了我的.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.10.12-内部人士发布中实施,并通过0.10.14-内部人员进行 。 因此,我们将在即将到来的1.0版VS代码中使用它 。
实现参考: 实现-w / – 等待命令行arg
我将Visual Studio代码设置为默认打开.txt文件。 接下来我使用了简单的命令: git config --global core.editor "'C:\Users\UserName\AppData\Local\Code\app-0.7.10\Code.exe\'"
。 一切工作都很好。
在您的Mac Terminal应用程序中运行此命令
git config --global core.editor "/Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code"