![](/img/trans.png)
[英]How to use Visual Studio Code as the default editor for Git MergeTool
[英]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
如果您有興趣看到此功能被添加,您可能需要考慮在此處添加您的投票:
更新 3:
我被可靠地告知VSCode 團隊已經采用了這個功能,所以我期待未來的版本將包含它。
更新 4:
感謝下面的 @f-boucheros 評論,我已經能夠讓 VS Code 作為提交評論、變基等的默認編輯器工作。我仍然想看看是否也可以將它用作 diff 工具。
更新 5:
根據問題的公認答案,現在可以使用 V1.0 版本的代碼。
在最新版本(v1.0,2016 年3 月發布)中,您現在可以使用 VS Code 作為默認的 git commit/diff 工具。 從文檔中引用:
確保您可以從命令行運行
code --help
並獲得幫助。
如果您沒有看到幫助,請按照以下步驟操作:
Mac:選擇Shell 命令:在命令面板的路徑中安裝“代碼”命令。
- 命令面板是在 VS Code 中按shift + ⌘ + P時彈出的內容。 (在 Windows 中shift + ctrl + P )
- Windows:確保在安裝過程中選擇了添加到 PATH 。
- Linux:確保您通過我們新的 .deb 或 .rpm 包安裝了 Code。
- 從命令行運行
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 進行交互式 rebasegit 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 中打開。
另一個有用的選項是設置EDITOR
和VISUAL
環境變量。 許多應用程序和實用程序使用這些環境變量來了解要使用的編輯器。 如果沒有設置core.editor
,Git 也會使用其中之一(取決於 Git 版本)。
您可以使用以下方法為當前會話設置它:
export EDITOR="code --wait"
export VISUAL="$EDITOR"
這樣不僅git
,許多其他應用程序都將使用 VS Code 作為編輯器。
例如,要使此更改永久生效,請將其添加到您的~/.profile
中。 有關更多選項,請參閱此問題。
這種方法的另一個優點是您可以為不同的情況設置不同的編輯器:
這對於 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 連接它也可以工作。
有關EDITOR
和VISUAL
環境變量之間的區別,請參閱此問題。
您需要使用命令:
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 文本編輯器中打開
資料來源:
我不確定你能做到這一點,但是你可以在你的 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.