当在命令行使用git时,我想知道是否可以使用Visual Studio Code作为默认编辑器,即当创建提交注释并从命令行查看文件的差异时。
我知道不可能使用它来做合并(至少在一分钟),但有人知道是否有可能使用它来查看diff,如果是这样,在.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]>
代码正确地打开,带有预期的内容,但它不等待响应,即单击保存并关闭窗口以返回提示。
更新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作为默认编辑器来提交注释,rebase等。我仍然想看看是否有可能将它用作diff工具。
更新5:
根据这个问题的公认答案,现在可以使用V1.0版本的代码实现这一点。
另一个有用的选项是设置编辑器和VISUAL环境变量。许多应用程序和实用程序都使用这些环境变量来了解使用哪个编辑器。如果没有核心,Git也会使用其中之一(取决于Git版本)。编辑器已设置。
您可以使用以下方法将其设置为当前会话:
export EDITOR="code --wait"
export VISUAL="$EDITOR"
这种方式不仅是git,而且许多其他应用程序将使用VS Code作为编辑器。
要使此更改永久生效,请将此添加到~/。以Profile为例。有关更多选项,请参阅这个问题。
这种方法的另一个优点是你可以为不同的情况设置不同的编辑器:
当您从本地终端工作时。
当您通过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连接,它也能工作。
关于编辑器和VISUAL环境变量之间的区别,请参阅这个问题。
另一个有用的选项是设置编辑器和VISUAL环境变量。许多应用程序和实用程序都使用这些环境变量来了解使用哪个编辑器。如果没有核心,Git也会使用其中之一(取决于Git版本)。编辑器已设置。
您可以使用以下方法将其设置为当前会话:
export EDITOR="code --wait"
export VISUAL="$EDITOR"
这种方式不仅是git,而且许多其他应用程序将使用VS Code作为编辑器。
要使此更改永久生效,请将此添加到~/。以Profile为例。有关更多选项,请参阅这个问题。
这种方法的另一个优点是你可以为不同的情况设置不同的编辑器:
当您从本地终端工作时。
当您通过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连接,它也能工作。
关于编辑器和VISUAL环境变量之间的区别,请参阅这个问题。