Hsüan's Blog

2020-07-10

如何從 VSCode 搬遷到 VSCodium

結論

  • 若沒有特殊考量,建議還是使用 VSCode
  • 此文是用 MacOS 操作的,若是其他系統,請參考VSCodium 文檔

為什麼要從 VSCode 轉移到 VSCodium

VSCodium 官網上其實已經講很清楚。

VSCode 其實主要就兩個問題

  1. 非自由軟體
  2. 額外的追蹤統計

搬遷前須知

Extensions 商店

因為 Extensions 在 VSCode 是從 M$ Marketplace 下載的,而 VSCodium 預設則是從 open-vsx

所以若套件作者,沒發佈作品在 open-vsx,你是找不到的。

想改回微軟商店的話,可以在 /Applications/VSCodium.app/Contents/Resources/app/product.json 將預設路徑改成原本的 :smile:

{
  "extensionsGallery": {
    "serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery",
    "cacheUrl": "https://vscode.blob.core.windows.net/gallery/index",
    "itemUrl": "https://marketplace.visualstudio.com/items"
  }
}

又或是只使用 open-vsx 上面的套件,畢竟會額外發佈到上面的,應該是很大眾化才對!

也可能是作者太閒?!

Extensions 相容性

有些套件因為有用到特殊的 api 或功能,只能在 VSCode 底下運行。

例如,Remote Development Extensions

沒錯!微軟開發的套件,可能不相容!

有個解法是在 product.json 將要使用的套件加到 extensionAllowedProposedApi 裡(詳見)

或許可以運行

正文開始

安裝

# 因為兩個有衝突,所以要先移除
brew cask remove visual-studio-code

brew cask install vscodium

複製套件

rm -r ~/.vscode-oss/extensions

cp -R ~/.vscode/extensions ~/.vscode-oss/

或是略過此步驟,全部手動安裝(要查看原本 VSCode 有裝哪些,可至 ~/.vscode/extensions

複製設定檔

rm -fr ~/Library/Application\ Support/VSCodium/User/snippets
cp -rH ~/Library/Application\ Support/Code/User/snippets ~/Library/Application\ Support/VSCodium/User

cp ~/Library/Application\ Support/Code/User/keybindings.json ~/Library/Application\ Support/VSCodium/User/
cp ~/Library/Application\ Support/Code/User/settings.json ~/Library/Application\ Support/VSCodium/User/

若想連開啟的檔案跟 workspace 都搬遷過去

# 不保證會順利運行,建議別進行這部分
rm -fr ~/Library/Application\ Support/VSCodium/User/workspaceStorage
cp -rH ~/Library/Application\ Support/Code/User/workspaceStorage ~/Library/Application\ Support/VSCodium/User
rm -fr ~/Library/Application\ Support/VSCodium/User/globalStorage
cp -rH ~/Library/Application\ Support/Code/User/globalStorage ~/Library/Application\ Support/VSCodium/User

開啟

若想要改掉上述須知 Extensions 的各種問題,記得開啟前要先做完

最後打開 /Application/VSCodium.app 即可

© 2019 ~ 2024 Hsüan, Powered by Gatsby, Theme Material UI