簡體   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