2025年3月5日 星期三

VS Code 的使用者設定與鍵盤綁定

 這個 Zsh 腳本的作用是自動安裝 VS Code 擴充功能,並設定 VS Code 的使用者設定與鍵盤綁定。以下是對每個步驟的詳細解釋:


---


## 1. **確保 Homebrew 的 bin 目錄在 PATH 變數中**

```zsh

if [ -x "/opt/homebrew/bin/brew" ] && [[ ":$PATH:" != *":/opt/homebrew/bin:"* ]]; then

    export PATH="/opt/homebrew/bin:$PATH"

fi

```

### **目的**

- Homebrew 是 macOS 上的套件管理工具,安裝的程式通常位於 `/opt/homebrew/bin`(適用於 Apple Silicon Mac)。

- `-x "/opt/homebrew/bin/brew"` 檢查 Homebrew 是否已安裝(檢查 `brew` 指令是否可執行)。

- `[[ ":$PATH:" != *":/opt/homebrew/bin:"* ]]` 檢查 `PATH` 環境變數中是否已包含 Homebrew 的 bin 目錄,避免重複加入。

- `export PATH="/opt/homebrew/bin:$PATH"` 將 Homebrew 加入 `PATH`,確保可以執行 `brew` 指令。


---


## 2. **安裝 VS Code 擴充功能**

```zsh

extensions=(

    batisteo.vscode-django

    charliermarsh.ruff

    esbenp.prettier-vscode

    formulahendry.code-runner

    foxundermoon.shell-format

    mechatroner.rainbow-csv

    monosans.djlint

    ms-python.python

    ms-toolsai.jupyter

    ms-vscode.theme-predawnkit

    mtxr.sqltools

    mtxr.sqltools-driver-sqlite

    ritwickdey.LiveServer

    tamasfe.even-better-toml

    teabyii.ayu

    tomoki1207.pdf

)

```

### **目的**

- 定義一組要安裝的 VS Code 擴充功能。

- 這些擴充功能包括 Python、Django、SQL、Prettier、美化 shell、LiveServer 以及其他開發工具。


```zsh

installed_extensions=$(code --list-extensions)

```

- 取得目前已安裝的 VS Code 擴充功能清單。


```zsh

for extension in "${extensions[@]}"; do

    if echo "$installed_extensions" | grep -qi "^$extension$"; then

        echo "$extension is already installed. Skipping..."

    else

        echo "Installing $extension..."

        code --install-extension "$extension"

    fi

done

```

### **目的**

- 迴圈檢查是否已安裝該擴充功能:

  - `grep -qi "^$extension$"`:檢查 `installed_extensions` 是否已經包含該擴充功能。

  - 如果已安裝,則跳過。

  - 如果未安裝,則使用 `code --install-extension` 來安裝。


```zsh

echo "VS Code extensions have been installed."

```

- 顯示所有擴充功能已安裝的訊息。


---


## 3. **設定 VS Code 的使用者設定與鍵盤綁定**

```zsh

VSCODE_USER_SETTINGS_DIR="${HOME}/Library/Application Support/Code/User"

```

### **目的**

- 定義 VS Code 設定檔的目錄,VS Code 會在這個目錄儲存 `settings.json` 和 `keybindings.json`。


```zsh

if [ -d "$VSCODE_USER_SETTINGS_DIR" ]; then

```

- 確保這個目錄存在,避免錯誤。


```zsh

    ln -sf "${HOME}/dotfiles/settings/VSCode-Settings.json" "${VSCODE_USER_SETTINGS_DIR}/settings.json"

    ln -sf "${HOME}/dotfiles/settings/VSCode-Keybindings.json" "${VSCODE_USER_SETTINGS_DIR}/keybindings.json"

```

### **目的**

- 使用 `ln -sf` 建立軟連結:

  - `-s`(symbolic link):建立符號連結,讓 `VSCode-Settings.json` 和 `VSCode-Keybindings.json` 指向目標檔案。

  - `-f`(force):如果檔案已存在,則強制覆寫。

- `settings.json`:用來設定 VS Code 的各種行為,如字體大小、主題、格式化工具等。

- `keybindings.json`:用來設定自訂快捷鍵。


```zsh

echo "VS Code settings and keybindings have been updated."

```

- 顯示設定更新的訊息。


```zsh

else

    echo "VS Code user settings directory does not exist. Please ensure VS Code is installed."

fi

```

- 如果設定目錄不存在,提示使用者檢查 VS Code 是否已安裝。


---


## 4. **開啟 VS Code 並提醒登入擴充功能**

```zsh

code .

```

### **目的**

- 開啟當前目錄的 VS Code,讓使用者登入擴充功能(如 Copilot、Grammarly)。


```zsh

echo "Login to extensions (Copilot, Grammarly, etc) within VS Code."

```

- 提醒使用者登入需要驗證的擴充功能。


```zsh

echo "Press enter to continue..."

read

```

- 等待使用者按下 Enter,以確保他們有時間登入擴充功能後再繼續執行其他操作。


---


## **總結**

這個腳本主要完成以下任務:

1. **確保 Homebrew 的 bin 目錄在 `PATH` 中**,確保可執行 `brew` 指令。

2. **檢查並安裝 VS Code 擴充功能**,避免重複安裝。

3. **設定 VS Code 的 `settings.json` 和 `keybindings.json`**,確保使用者的自訂設定生效。

4. **開啟 VS Code 並提醒登入擴充功能**,確保 Copilot、Grammarly 等需要驗證的擴充功能可用。


這樣的自動化設定適合需要快速部署 VS Code 環境的開發者,讓新機器可以立即擁有一致的開發環境。

沒有留言:

張貼留言

精選文章

手機使用VPN進入NAS、DaikinAPP時,仍能使用其他APP如銀行,連上WIFI 或行動網路

為了避免手機使用VPN進入NAS、DaikinAPP時,仍能使用其他APP如銀行,連上WIFI 或行動網路,要修改Router Policy設定?需要把家中屬於VPN的網段設備與其他區隔?要如何設定? 為了達成您的需求: ✅ 手機連上 VPN(例如連回家中 TP-Link ER...