Windows Terminal 配置 git-bash,集成右鍵菜單,集成VSCode


Windows Terminal 支持 UTF-8 輸出內容,對 git-bash 和 cmd 自帶的輸出中文支持較好,而且支持 FiraCode 這種程序編碼的連接字體。

 

准備

Windows Terminal 的下載頁面:https://github.com/microsoft/terminal/releases

FiraCoda 字體的下載頁面:https://github.com/tonsky/FiraCode/releases

Git-Bash 下載頁面:https://git-scm.com/downloads

安裝

Windows Terminal 安裝包的擴展名是 .appxbundle ,如果雙擊安裝包沒有關聯的程序可以打開,需要先在 Microsoft Store(系統自帶的商店APP)中搜索安裝:“應用安裝程序”,在 Microsoft Corporation * 應用程序與工具 類別。

然后就可以雙擊安裝了。

FiraCode 下載到 zip 文件包,解壓后進入 ttf 目錄,全選字體文件,右鍵 -> 安裝。如果之前安裝過低版本的 FiraCode 字體,需要先到 Fonts 中刪除原有的 FiraCode 字體,如果無法刪除,最好重啟下電腦。

Git-Bash 直接安裝 git 軟件即可,建議安裝后啟動 git-bash(右鍵一個目錄 -> Git Bash Here),配置 git,輸入:

# 請更改為你的用戶名和郵箱
git config --global user.name "yourname"
git config --global user.email "yourname@domain.com"
# 配置僅推送當前分支
git config --global push.default current
# 若需要推送全部分支
# git config --global push.default matching
# 配置非ASCII字符輸出
git config --global core.quotepath off
# 配置禁用自動換行符替換(僅Windows)
git config --global core.autocrlf false
# 配置大小寫敏感(僅Windows)
git config --global core.ignorecase false
# 配置 gui 文本編碼(僅Windows)
git config --global gui.encoding utf-8

右鍵Git Bash窗口標題欄 -> 選項...

打開選項窗口,在“文本”分類里配置:字符集:UTF-8,本地Locale選擇:zh_CN;

在“窗口”分類里配置:界面語言:zh_CN;

點擊“應用”按鈕后,點“保存”。

 

配置 Windows Terminal

啟動 Windows Terminal,默認打開了一個 PowerShell,點擊標題欄的向下箭頭->設置命令,會用默認程序打開一個 settings.json 配置文件(最好先關聯json文件用你熟悉的文本編輯工具打開)

然后在 list 數組中加入下面內容:

            {
                "guid": "{f323ab3c-9641-4904-a3a6-dc4e4992b6ae}",
                "name": "Git Bash",
                "commandline": "%programfiles%\\Git\\bin\\bash.exe --login",
                // "startingDirectory": "%userprofile%",
                "hidden": false,
                "closeOnExit": true,
                "fontFace": "Fira Code Retina",
                "fontSize": 12,
                "historySize": 9001,
                "icon": "%programfiles%\\Microsoft VS Code\\resources\\app\\extensions\\git\\resources\\icons\\git.png"
            }

如果你的git-bash沒有安裝到C:盤位置,你需要修改為正確的路徑,icon也是,我使用了 VSCode 中的 git.png 作為圖標,如果沒有可以去掉這個屬性。

如果沒有安裝 Fira Code 字體,可以將 fontFace 和 fontSize 去掉。

默認啟動目錄使用了用戶目錄。命令行中 --login 參數是必須的,這樣,與單獨啟動 git-bash 的行為一樣,會自動執行 .bash_profile 的配置。

如果想讓 git bash 作為默認的啟動 Shell,可以在配置中找到 defaultProfile,更改為git bash的guid,這里是 {f323ab3c-9641-4904-a3a6-dc4e4992b6ae}

當然也可以自己配置任意的 guid,可以是 PowerShell 中輸入 New-Guid 獲得。

為了集成到Windows的右鍵菜單,所以注釋掉了 startingDirectory。

 

 

集成右鍵菜單

在explorer的地址欄里直接輸入 wt 就可以在當前目錄啟動 Windows Terminal,為了方便鼠標使用,可以通過注冊表集成到目錄的右鍵菜單里。

wt.exe 的完整路徑是 %userprofile%\AppData\Local\Microsoft\WindowsApps\wt.exe

加入注冊表需要將環境變量 %userprofile% 替換正確的位置,也就是你的用戶目錄下。

我寫了一個 bat 腳本來自動安裝或者卸載它,內容如下:

Microsoft.Terminal.Here.bat

:: install or uninstall windows terminal here
:: written by m2nlight
@echo off
setlocal enabledelayedexpansion
set regkey=HKCR\Directory\Background\shell\wt_shell
set regkey2=HKCR\Directory\shell\wt_shell
set exe="%userprofile%\AppData\Local\Microsoft\WindowsApps\wt.exe"
set title=Windows Terminal
set cmdText=Terminal Here
set cmdLine=\"%exe%\"
set icon=
:: check UAC
set getadminfile="%temp%\getadmin.vbs"
echo %title%
echo ============================
echo Starting, please allow UAC window...
>nul 2>nul "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\SYSTEM"
if %ERRORLEVEL% equ 0 (
    goto :start
) else (
    if %ERRORLEVEL% equ 2 (
        goto :pathErr
    ) else (
        goto :getUAC
    )
)
:pathErr
echo.
echo Please open "%~n0%~x0" in explorer.exe
echo.
echo Press any key to explore the folder...
pause>nul
start "" "%SYSTEMROOT%\system32\explorer.exe" /select,"%~f0"
goto :eof
:getUAC
echo Set sh = CreateObject^("Shell.Application"^) > %getadminfile%
echo sh.ShellExecute "%~f0", "", "", "runas", 1 >> %getadminfile%
ping 127.1 -n 1 >nul
"%SYSTEMROOT%\system32\cscript.exe" %getadminfile% >nul 2>nul
goto :eof
:start
if exist %getadminfile% ( del %getadminfile% )
cls
rem UAC code end
echo %title%
echo ============================
:: check is installed
reg query "%regkey%" >nul 2>nul
if errorlevel 1 goto :install
goto :uninstall
:install
:: check wt.exe is existed
if not exist "%exe%" (
    echo Please install %title%, first!
    pause>nul
    goto :eof
) else (
    :: find WindowsTerminal.exe and set icon
    if "%icon%"=="" (
        for /f %%i in ('dir /b /w "%programfiles%\WindowsApps\Microsoft.WindowsTerminal_*"') do (
            set wtfull=%programfiles%\WindowsApps\%%~i\WindowsTerminal.exe
            if exist "!wtfull!" (
                set icon=!wtfull!
                goto :breakfor
            )
        )
    )
    :breakfor
    call :regadd "%regkey%"
    call :regadd "%regkey2%"
    echo %cmdText% is installed
)
goto :end

:regadd
reg add "%~1" /ve /t REG_SZ /d "%cmdText%" /f >nul 2>nul
if not "%icon%"=="" reg add "%~1" /v Icon /t REG_SZ /d "%icon%" /f >nul 2>nul
reg add "%~1\command" /ve /t REG_SZ /d "%cmdLine%" /f >nul 2>nul
goto :eof

:uninstall
set /p ok=Uninstall %title% (y/N)?^ 
if /i "%ok%"=="y" (
    reg delete "%regkey%" /f >nul 2>nul
    reg delete "%regkey2%" /f >nul 2>nul
    echo %cmdText% is uninstalled
) else (
    goto :eof
)
goto :end
:end
timeout /t 5
View Code

雙擊后,出現 Terminal Here is installed 表示安裝成功。(請忽略:錯誤: 系統找不到指定的注冊表項或值。)

再次雙擊會刪除 Terminal Here

  

 

集成VSCode

修改VSCode的配置文件,如下:

"terminal.explorerKind": "external",
"terminal.external.windowsExec": "C:\\Users\\你的用戶名\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe"

這樣在VSCode左側的 EXPORER 右鍵一個目錄,選擇“Open in terminal”命令,就可以啟動 Windows Terminal。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM