原文連結:https://blog.csdn.net/weixin_53510183/article/details/126906182
文章目錄
-
- `VSCode`便攜版(不推薦)
- 缺點
- `VSCode`安裝版(推薦)
- 終端使用`code .` 命令開啟專案
- 問題
- 解決辦法
- 終極解決辦法!(強烈推薦)
- `VSCode`便攜版(不推薦)
vscode
的擴充套件和使用者資料都是預設在C盤下的
extensions
:C:\Users\.vscode\extensions
user-data
:C:\Users\AppData\Roaming\Code
一般來說,使用者資料夾大小會比擴充套件目錄的大小會大,就我而言,我的擴充套件有1-1.5GB
的大小,而使用者資料夾卻佔了我5GB
容量,這對C
盤容量嚴重不足的使用者是非常難受的
所以,修改這兩個資料夾的目錄位置以及刻不容緩
VSCode
便攜版(不推薦)
官方有一個zip
版本的VSCode
當我們解壓完畢後:
- 在當前
VSCode
目錄下新建一個data
資料夾 - 點選
Code.exe
啟動,啟動完畢後關閉 - 進入當前的
data
目錄,可以發現有擴充套件目錄,以及使用者資料夾 -
然後我們只需要將C:\Users\.vscode\extensions目錄下的所有擴充套件資料夾全選複製到extensions目錄中,以及將C:\Users\AppData\Roaming\Code資料夾內的所有檔案全選複製到user-data目錄內,再次開啟Code.exe程式,就可以發現根以前的VSCode一模一樣的配置以及擴充套件
缺點
但是我當時遇到的問題是當檔案右鍵,或者資料夾右鍵時,不能透過VSCode
開啟檔案,此時需要開啟登錄檔,修改透過VSCode
開啟的程式位置。
同時也發現了一個弊端,就是需要管理員許可權的資料夾打不開,也寫不進去,可以透過將Code.exe
程式右鍵->屬性->相容性->以管理員身份執行此程式->應用
。但經過這操作後,我發現的問題是VSCode
視窗的工作空間不能將檔案拖進去。上網一搜發現,只需要將Code.exe
的以管理員身份執行此程式取消勾選,那這不就跟我預期的衝突了嘛😳😳
VSCode
安裝版(推薦)
安裝版網址
選擇 System Installer 再根據自己的系統選擇,下面的.zip
就是上面說的便攜版
要修改兩個資料夾的位置,就需要使用官方的高階 CLI 選項了
有兩個選項我們可以用得上:--extensions-dir <dir>
和--user-data-dir <dir>
,但這些命令對於便攜版是不能生效的
可以將這兩個選項新增到VSCode
的快捷方式後面
-
右鍵VSCode快捷方式->快捷方式->目標->
在後面新增空格再加上--extensions-dir "D:\.vscode\extensions" --user-data-dir "D:\.vscode\user-data"
自行替換目錄位置 -
我的設定⬇️
"D:\.Software\Microsoft VS Code\Code.exe" --extensions-dir "D:\.vscode\extensions" --extensions-dir "D:\.vscode\extensions" --user-data-dir "D:\.vscode\user-data"
但是就這樣修改不能保證檔案右鍵透過Code開啟會使用指定的 擴充套件資料夾以及使用者資料夾
接下來需要修改登錄檔的主要VSCode
開啟方式修改
- 對選中檔案右鍵點選彈出的選單
- 對選擇目錄右鍵點選彈出的選單
- 在目錄空白處右鍵點選彈出的選單
- 對磁碟分割槽右鍵點選彈出的選單
相對應的登錄檔位置為
計算機\HKEY_CLASSES_ROOT\*\shell\VSCode\command
計算機\HKEY_CLASSES_ROOT\Directory\shell\VSCode\command
計算機\HKEY_CLASSES_ROOT\Directory\Background\shell\VSCode\command
計算機\HKEY_CLASSES_ROOT\Drive\shell\VSCode\command
登錄檔開啟:
Win+r->輸入:Regedit->回車
找到這些登錄檔項,在Code.exe
後新增同快捷方式一樣的引數內容:
--extensions-dir "D:\.vscode\extensions" --user-data-dir "D:\.vscode\user-data"
例如:
"D:\.Software\Microsoft VS Code\Code.exe" --extensions-dir "D:\.vscode\extensions" --user-data-dir "D:\.vscode\user-data" "%1"
將四個登錄檔位置的數值資料一一新增即可,當然主要的是這四個位置,還有一些其他的檔案開啟可以執行新增
終端使用code .
命令開啟專案
當使用code .
命令時,又發現了一個小問題,透過此命令開啟的VSCode
還是不能找到擴充套件和使用者資料夾
解決辦法如下⬇️
安裝版的VSCode
會預設幫我們新增環境變數
檢查一下code.cmd
檔案
@echo off
setlocal
set VSCODE_DEV=
set ELECTRON_RUN_AS_NODE=1
"%~dp0..\Code.exe" "%~dp0..\resources\app\out\cli.js" --ms-enable-electron-run-as-node %*
endlocal
-
可以發現第五行有一個
..\Code.exe
,表示執行上一個目錄的Code.exe
程式 - 再往後面看,可以發現
--ms-enable-electron-run-as-node
有點像高階CLI
選項,我們可以將上面提到的--extensions-dir
和--user-data-dir
繼續新增在後面。下面是我新增後的程式碼,自行更換路徑即可 -
@echo off setlocal set VSCODE_DEV= set ELECTRON_RUN_AS_NODE=1 "%~dp0..\Code.exe" "%~dp0..\resources\app\out\cli.js" --ms-enable-electron-run-as-node --extensions-dir "D:\.vscode\extensions" --user-data-dir "D:\.vscode\user-data" %* endlocal
最後再使用code .
命令就可以找到擴充套件和使用者資訊資料夾了
問題
更新之後,VSCode會重置登錄檔
解決辦法
使用登錄檔 .reg
檔案一鍵修改
注意!
-
地址值有些符號需要使用
\
轉譯,可透過將複製下來的未轉譯字串路徑使用IDEA
自動轉譯 -
路徑修改為自己的本地路徑
-
由於內容出現
透過 Code 開啟
中文,需要將檔案另存為UTF-16 LE
登錄檔預設編碼,否則會出現亂碼 String str = "路徑"
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\VSCode]
@="透過 Code 開啟"
"Icon"="D:\\.Software\\Microsoft VS Code\\Code.exe"
[HKEY_CLASSES_ROOT\*\shell\VSCode\command]
@="\"D:\\.Software\\Microsoft VS Code\\Code.exe\" --extensions-dir \"D:\\.vscode\\extensions\" --user-data-dir \"D:\\.vscode\\user-data\" \"%1\""
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\shell\VSCode]
@="透過 Code 開啟"
"Icon"="D:\\.Software\\Microsoft VS Code\\Code.exe"
[HKEY_CLASSES_ROOT\Directory\shell\VSCode\command]
@="\"D:\\.Software\\Microsoft VS Code\\Code.exe\" --extensions-dir \"D:\\.vscode\\extensions\" --user-data-dir \"D:\\.vscode\\user-data\" \"%V\""
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Background\shell\VSCode]
@="透過 Code 開啟"
"Icon"="D:\\.Software\\Microsoft VS Code\\Code.exe"
[HKEY_CLASSES_ROOT\Directory\Background\shell\VSCode\command]
@="\"D:\\.Software\\Microsoft VS Code\\Code.exe\" --extensions-dir \"D:\\.vscode\\extensions\" --user-data-dir \"D:\\.vscode\\user-data\" \"%V\""
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Drive\shell\VSCode]
@="透過 Code 開啟"
"Icon"="D:\\.Software\\Microsoft VS Code\\Code.exe"
[HKEY_CLASSES_ROOT\Drive\shell\VSCode\command]
@="\"D:\\.Software\\Microsoft VS Code\\Code.exe\" --extensions-dir \"D:\\.vscode\\extensions\" --user-data-dir \"D:\\.vscode\\user-data\" \"%V\""
[HKEY_CLASSES_ROOT\vscode\shell\open\command]
@="\"D:\\.Software\\Microsoft VS Code\\Code.exe\" --extensions-dir \"D:\\.vscode\\extensions\" --user-data-dir \"D:\\.vscode\\user-data\" \"--open-url\" \"--\" \"%1\""
[HKEY_CLASSES_ROOT\VSCodeSourceFile\shell\open\command]
@="\"D:\\.Software\\Microsoft VS Code\\Code.exe\" --extensions-dir \"D:\\.vscode\\extensions\" --user-data-dir \"D:\\.vscode\\user-data\" \"%1\""
2023/04/16 ↓
當然也可以寫一個bat
指令碼自動執行
-
建立一個
code.cmd
將上面的新增命令列引數的內容寫入 -
重命令 登錄檔批處理檔案為
update.reg
-
建立
update.bat
檔案
@echo off
rem 登錄檔的路徑
set "regFilePath=D:\.vscode\update.reg"
rem 重寫的code.cmd 檔案路徑,後面會替換vscode bin 目錄下的code.cmd
set "cmdFilePath=D:\.vscode\code.cmd"
rem VScode的安裝路徑
set "destinationFolderPath=D:\.Software\Microsoft VS Code\bin"
rem ----↓ 以下不用動
set "destinationFilePath=%destinationFolderPath%\code.cmd"
rem 執行登錄檔檔案
regedit /s "%regFilePath%"
rem 複製並替換檔案,需要管理員許可權
copy /y "%cmdFilePath%" "%destinationFolderPath%"
if exist "%destinationFilePath%" (
takeown /f "%destinationFilePath%"
icacls "%destinationFilePath%" /grant administrators:F
)
move /y "%destinationFolderPath%\code.cmd" "%destinationFilePath%"
-
管理員執行
update.bat
終極解決辦法!(強烈推薦)
經過一頓操作,終於又想到一個非常簡單的辦法
為VScode C盤預設的 .vscode
和 Code
建立軟連線
如果根據上一步操作,建議直接解除安裝VSCode,重灌一遍,因為接下來的操作,完全不用那麼麻煩
- 將
C
盤使用者檔案Code
直接剪下到新路徑 - 確保目標路徑資料夾不存在 ,輸入下面的第一條命令。
- 由於
"%USERPROFILE%\.vscode"
路徑下有一個預設的extensions
,所以不能使用"D:\.vscode\extensions"
路徑,否者會不生效 - 還有需要注意的是,這個命令是cmd命令,需要使用cmd命令視窗執行
- 路徑自行替換
mklink /D "%APPDATA%\Code" "D:\.vscode\user-data"
mklink /D "%USERPROFILE%\.vscode" "D:\.vscode\"
- 如果需要刪除軟連線
rd /s "%APPDATA%\Code"