WindowsとLinuxでそれぞれVSCodeを使っていたのですが,個別に設定を整えるのが面倒なので"dotfilesをGitHubで管理"のように設定ファイルをGitホスティングサービス経由で他の環境,OSでもすぐに同じ設定を適用できるようにしてみました
目的
git clone
して, コマンドを1つ叩くと同一の設定が適用される
準備
privateでもいいので適当にリポジトリを作ります.
参考に自分のはこんな感じです
ディレクトリ構成
以下のようになっています
vscode-setting
├─ linux.sh
├─ windows.bat
├─ extension-list
└─ User/
├─ keybindings.json
├─ settings.json
└─ snippets/
このうちUser/以下はVSCodeによって生成される設定ファイルで,これを指定の場所にシンボリックリンクを貼り付けるためにlinux.sh
とwindows.bat
があります.
extension-list
はインストールしたい拡張機能をまとめたファイルです
extension-list
拡張機能のIDを1行毎に書いていきます.
拡張機能の名前ではダメなようです.
↓画像の赤枠部分が拡張機能のIDになります
とりあえず自分の場合はこんな感じで
(VSCode初心者なので便利な拡張機能があれば教えてくださると助かります)
naumovs.color-highlight
oderwat.indent-rainbow
shardulm94.trailing-spaces
Tobiah.language-pde
ms-vscode.csharp
Unity.unity-debug
windows.bat
@echo off
rem User以下の設定ファイルのリンクを生成
mklink /D C:\Users\%USERNAME%\AppData\Roaming\Code\User %CD%\User
rem 拡張機能のインストール
for /f %%a in (extension-list) do (
code --install-extension %%a
)
mklink
コマンドでシンボリックリンクを作成し,ユーザディレクトリ内の設定ファイルが置かれるディレクトリにリンクを繋げます
また,先に作成したextension-listから1行ずつ読み込んで, vscodeの--install-extension
オプションに流し込みます.
linux.sh
Linux版もWindowsとやることは変わりません
設定ファイルの保存先が違う程度です
Macは使ってないのでわかりませんが,基本はLinux版と同様のコマンドで,パスを変えるぐらいでできるのではないでしょうか(違っていたらすみません)
#!/bin/sh
# User以下の設定ファイルのリンクを生成
ln -s "`pwd`/User" ${HOME}/.config/Code/
# 拡張機能のインストール
filename="./extension-list"
cat ${filename} | while read line
do
code --install-extension ${line}
done
完成
これで,新しい環境でVSCodeを入れ直すことになっても,すぐにセッティングが終わります.