使用 Visual Studio 自定義外部命令 (External Tools) 快速打開 git bash 等各種工具
- 2020 年 2 月 10 日
- 筆記
Visual Studio 支援自定義的外部命令,於是即便 Visual Studio 原生沒有的功能,插件沒有提供的功能,你也能僅僅通過配置就實現。比如,我們可以一鍵打開 Git Bash 輸入 git 命令,比如可以一鍵打開項目或者文件所在的文件夾。
本文將教你如何自定義 Visual Studio 的外部命令,並提供一些我自己正在使用的外部命令配置。

看,就是一鍵的按鈕!
所以,你想不想也在 Visual Studio 的工具欄上增加高效率的功能按鈕呢?
- 一鍵打開 Git Bash
- 一鍵打開解決方案所在文件夾
- 一鍵 Blame 正在打開的文件 (話說 VS17 的 Blame 功能也沒好到哪兒去,還是得 TortoiseGit)
我們開始吧!
第一步:自定義外部命令
打開 [工具] -> [外部命令],然後在新打開的對話框中編輯外部命令。

為了方便,我把我自己正在用的幾個外部命令分享給大家:
- 用於一鍵打開 Git Bash,以便快速輸入 git 命令
- [Title]
打開 Git Bash
- [Command]
C:Program FilesGitgit-bash.exe
- [Arguments]
--cd="$(SolutionDir)."
- [InitialDirectory]
"$(SolutionDir)"
- [Title]
- 用於快速打開解決方案所在的文件夾(通常這也是 git 倉庫的根目錄)
- [Title]
在資源管理器中查看此解決方案
- [Command]
C:Windowsexplorer.exe
- [Arguments]
/select,"$(SolutionDir)$(SolutionFileName)"
- [InitialDirectory]
"$(SolutionDir)"
- [Title]
- 用於快速打開當前正在編輯的文件所在的文件夾
- [Title]
在資源管理器中查看此文件
- [Command]
C:Windowsexplorer.exe
- [Arguments]
/select,"$(ItemPath)"
- [InitialDirectory]
"$(ItemDir)"
- [Title]
- 使用 VSCode 打開此解決方案(這可以用來快速編輯某些 VS 中不方便編輯的文件)
- [Title]
使用 VSCode 編輯
- [Command]
%LocalAppData%ProgramsMicrosoft VS CodeCode.exe
- [Arguments]
"$(SolutionDir)"
- [InitialDirectory]
"$(SolutionDir)"
- [Title]
- 使用 TortoiseGit 來 Blame 此文件(而且還會自動定位到當前行)
- [Title]
追溯此文件
- [Command]
C:Program FilesTortoiseGitbinTortoiseGitBlame.exe
- [Arguments]
"$(ItemPath)" /line:$(CurLine)
- [InitialDirectory]
"$(ItemDir)"
- [Title]
- 使用 TortoiseGit 來查看此文件的 git 日誌
- [Title]
查看此文件的歷史記錄
- [Command]
C:Program FilesTortoiseGitbinTortoiseGitProc.exe
- [Arguments]
/command:log /path:"$(ItemPath)"
- [InitialDirectory]
"$(ItemDir)"
- [Title]
第二步:自定義工具條按鈕
點擊工具條最右側的小箭頭,然後添加刪除按鈕,在長長的下拉框的最後,有一個「自定義」菜單項。打開,我們接下來的操作都在這裡面。

隨後,按照下圖操作添加一個外部命令。注意,外部命令的序號從 1 開始,就是我們在上一節外部命令框中那些命令的序號。

然後,編輯這個外部命令。

在一個個添加完成之後,Visual Studio 的頂部工具欄中就會出現我們剛剛添加的各種外部命令了。點擊可以一鍵使用相應的功能。

本作品採用 知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議 進行許可。歡迎轉載、使用、重新發布,但務必保留文章署名 呂毅 (包含鏈接: https://blog.walterlv.com ),不得用於商業目的,基於本文修改後的作品務必以相同的許可發布。如有任何疑問,請 與我聯繫 (walter.lv@qq.com) 。