Arquivos de configuração do VSCode
Configuração completa do VSCode e VSCodium com lista de extensões e backup de settings para migrar facilmente entre instalações.
Este snippet contém meus arquivos pessoais de configuração do VSCode para facilitar a migração para o VSCodium ou para instalações novas do VSCode. Inclui uma lista bem completa de extensões e configurações detalhadas do editor.
Estas são configurações pessoais. Revise e ajuste antes de aplicar no seu ambiente. Algumas opções como caminhos de arquivos, chaves de API e preferências podem precisar de personalização.
Lista de extensões
Salve este arquivo como extensions.txt para manter um backup de todas as extensões instaladas:
ahmadawais.shades-of-purple
continue.continue
davidanson.vscode-markdownlint
donjayamanne.githistory
dotjoshjohnson.xml
eamodio.gitlens
esbenp.prettier-vscode
garmin.monkey-c
github.vscode-pull-request-github
hbenl.vscode-test-explorer
icrawl.discord-vscode
lokalise.i18n-ally
ms-python.autopep8
ms-python.debugpy
ms-python.python
ms-python.vscode-pylance
ms-python.vscode-python-envs
ms-vscode.test-adapter-converter
quick-lint.quick-lint-js
redhat.vscode-xml
ritwickdey.liveserver
saoudrizwan.claude-dev
sirmspencer.vscode-autohide
usernamehw.errorlens
vscode-icons-team.vscode-icons
wakatime.vscode-wakatime
Configuração de settings
Salve este arquivo como settings.json na pasta de configurações de usuário do VSCode ou VSCodium:
{
"workbench.sideBar.location": "right",
"files.autoSave": "onWindowChange",
"editor.fontFamily": "'Fira Code'",
"editor.fontWeight": "300",
"editor.fontLigatures": true,
"editor.smoothScrolling": true,
"editor.cursorSmoothCaretAnimation": "explicit",
"editor.cursorBlinking": "expand",
"editor.formatOnSave": true,
"workbench.cloudChanges.autoResume": "off",
"update.enableWindowsBackgroundUpdates": false,
"telemetry.telemetryLevel": "off",
"window.restoreWindows": "none",
"window.commandCenter": true,
"git.autofetch": true,
"security.workspace.trust.untrustedFiles": "newWindow",
"workbench.colorTheme": "Shades of Purple (Super Dark)",
"editor.inlineSuggest.enabled": true,
"git.enableSmartCommit": true,
"git.confirmSync": false,
"liveServer.settings.fullReload": true,
"liveServer.settings.useLocalIp": true,
"[javascript]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
},
"[markdown]": {
"editor.defaultFormatter": "DavidAnson.vscode-markdownlint"
},
"github.copilot.enable": {
"*": true,
"plaintext": true,
"markdown": false,
"scminput": false,
"typescriptreact": true
},
"git.openRepositoryInParentFolders": "never",
"typescript.updateImportsOnFileMove.enabled": "always",
"explorer.confirmDragAndDrop": false,
"explorer.confirmDelete": false,
"editor.unicodeHighlight.nonBasicASCII": false,
"diffEditor.maxComputationTime": 0,
"[xml]": {
"editor.defaultFormatter": "DotJoshJohnson.xml"
},
"[python]": {
"editor.defaultFormatter": "ms-python.autopep8"
},
"[typescriptreact]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
},
"update.mode": "none",
"[typescript]": {},
"editor.autoClosingComments": "always",
"editor.bracketPairColorization.independentColorPoolPerBracketType": true,
"workbench.experimental.cloudChanges.autoStore": "onShutdown",
"workbench.list.smoothScrolling": true,
"workbench.preferredLightColorTheme": "Shades of Purple",
"workbench.cloudChanges.continueOn": "off",
"workbench.iconTheme": "vscode-icons",
"prettier.endOfLine": "auto",
"prettier.useTabs": true,
"editor.formatOnPaste": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"workbench.editor.restoreViewState": false,
"files.associations": {
"*.tpl": "markdown",
"*.mdx": "markdown"
},
"diffEditor.ignoreTrimWhitespace": false,
"gitlens.ai.experimental.provider": "anthropic",
"gitlens.ai.experimental.anthropic.model": "claude-2.1",
"vsicons.dontShowNewVersionMessage": true,
"gitCommitSuggestions.openAIKey": "sk-whoKnows",
"editor.unicodeHighlight.invisibleCharacters": false,
"editor.stickyScroll.enabled": false,
"css.lint.unknownAtRules": "ignore",
"extensions.ignoreRecommendations": true,
"extensions.autoCheckUpdates": false,
"extensions.autoUpdate": false,
"git.replaceTagsWhenPull": true,
"discord.suppressNotifications": true,
"discord.removeRemoteRepository": true,
"discord.lowerDetailsEditing": " {dir_name}",
"discord.lowerDetailsDebugging": "Debugging: {file_name}",
"gitlens.advanced.messages": {
"suppressLineUncommittedWarning": true
},
"workbench.editorAssociations": {
"*.db-shm": "default",
"*.dll": "default"
},
"editor.unicodeHighlight.ambiguousCharacters": false,
"editor.largeFileOptimizations": false,
"editor.minimap.size": "fit",
"[json]": {
"editor.defaultFormatter": "vscode.json-language-features"
},
"security.allowedUNCHosts": ["100.83.216.64"],
"workbench.startupEditor": "none",
"monkeyC.developerKeyPath": "c:\\Users\\isy\\Documents\\GitHub\\yurounded\\developer_key",
"window.confirmSaveUntitledWorkspace": false,
"window.customTitleBarVisibility": "windowed",
"[html]": {
"editor.defaultFormatter": "vscode.html-language-features"
},
"workbench.secondarySideBar.defaultVisibility": "hidden",
"chat.disableAIFeatures": true
}
Onde ficam as configurações
Windows
- Settings:
%APPDATA%\Code\User\settings.json - VSCodium:
%APPDATA%\VSCodium\User\settings.json
Linux
- Settings:
~/.config/Code/User/settings.json - VSCodium:
~/.config/VSCodium/User/settings.json
macOS
- Settings:
~/Library/Application Support/Code/User/settings.json - VSCodium:
~/Library/Application Support/VSCodium/User/settings.json
Sincronização automática: VSCode para VSCodium
Em vez de copiar arquivos e instalar extensões na mão, você pode automatizar tudo com estes scripts. Eles copiam as configurações (settings, keybindings, snippets, profiles) do VSCode para o VSCodium e instalam todas as extensões automaticamente.
Script PowerShell
Funciona no Windows e no Linux com PowerShell 7.
Salve como sync-vscode-to-vscodium.ps1:
param(
[string]$VSCodiumCli = ""
)
# script to copy vscode configs to vscodium
# and sync extensions (vscode -> vscodium)
function Get-VSCodeUserDir {
if ($IsWindows) {
return (Join-Path $env:APPDATA "Code\User")
} elseif ($IsLinux -or $IsMacOS) {
return "$HOME/.config/Code/User"
} else {
throw "operating system not supported"
}
}
function Get-VSCodiumUserDir {
if ($IsWindows) {
return (Join-Path $env:APPDATA "VSCodium\User")
} elseif ($IsLinux -or $IsMacOS) {
return "$HOME/.config/VSCodium/User"
} else {
throw "operating system not supported"
}
}
function Find-VSCodiumCli {
param([string]$Preferred)
if ($Preferred) {
$cmd = Get-Command $Preferred -ErrorAction SilentlyContinue
if ($cmd) { return $cmd.Source }
if (Test-Path $Preferred) { return $Preferred }
}
foreach ($name in "codium", "vscodium") {
$cmd = Get-Command $name -ErrorAction SilentlyContinue
if ($cmd) { return $cmd.Source }
}
if ($IsWindows) {
$candidates = @(
"$env:LOCALAPPDATA\Programs\VSCodium\VSCodium.exe",
"C:\Program Files\VSCodium\VSCodium.exe"
)
} else {
$candidates = @(
"/usr/bin/codium",
"/usr/local/bin/codium",
"/snap/bin/codium"
)
}
foreach ($path in $candidates) {
if (Test-Path $path) { return $path }
}
throw "could not find vscodium executable. pass the path in -VSCodiumCli"
}
Write-Host "=== sync vscode -> vscodium ==="
$vsCodeUser = Get-VSCodeUserDir
$vscodiumUser = Get-VSCodiumUserDir
if (-not (Test-Path $vsCodeUser)) {
throw "vscode configuration folder not found: $vsCodeUser"
}
New-Item -ItemType Directory -Path $vscodiumUser -Force | Out-Null
Write-Host "vscode folder :" $vsCodeUser
Write-Host "vscodium folder:" $vscodiumUser
$settings = Join-Path $vsCodeUser "settings.json"
if (Test-Path $settings) {
Copy-Item $settings $vscodiumUser -Force
Write-Host "copied settings.json"
} else {
Write-Host "warning: settings.json not found in vscode"
}
$keybindings = Join-Path $vsCodeUser "keybindings.json"
if (Test-Path $keybindings) {
Copy-Item $keybindings $vscodiumUser -Force
Write-Host "copied keybindings.json"
} else {
Write-Host "warning: keybindings.json not found in vscode"
}
$snippets = Join-Path $vsCodeUser "snippets"
if (Test-Path $snippets) {
Copy-Item $snippets $vscodiumUser -Recurse -Force
Write-Host "copied snippets directory"
}
$profiles = Join-Path $vsCodeUser "profiles"
if (Test-Path $profiles) {
Copy-Item $profiles $vscodiumUser -Recurse -Force
Write-Host "copied profiles directory"
}
Write-Host ""
Write-Host "exporting vscode extensions..."
$extensions = @()
try {
$extensions = code --list-extensions
} catch {
Write-Host "error running 'code --list-extensions'. check if the 'code' command works in terminal."
}
if (-not $extensions -or $extensions.Count -eq 0) {
Write-Host "no extensions found or 'code' command did not work."
} else {
$backupFile = Join-Path $HOME "vscode-extensions-$(Get-Date -Format 'yyyyMMdd-HHmmss').txt"
$extensions | Set-Content -Encoding UTF8 $backupFile
Write-Host "extensions list saved to:" $backupFile
$vscodiumCliPath = Find-VSCodiumCli -Preferred $VSCodiumCli
Write-Host ""
Write-Host "using vscodium cli:" $vscodiumCliPath
Write-Host ""
Write-Host "installing extensions in vscodium..."
foreach ($ext in $extensions) {
if ([string]::IsNullOrWhiteSpace($ext)) { continue }
Write-Host " installing $ext"
try {
& $vscodiumCliPath --install-extension $ext | Out-Null
} catch {
Write-Host " failed to install $ext"
}
}
Write-Host ""
Write-Host "sync completed."
}
Uso no Windows
Rode com PowerShell 7:
.\sync-vscode-to-vscodium.ps1
Se não achar o VSCodium automaticamente, passe o caminho:
.\sync-vscode-to-vscodium.ps1 -VSCodiumCli "C:\Program Files\VSCodium\VSCodium.exe"
Uso no Linux com PowerShell 7
Se tiver pwsh instalado:
pwsh ./sync-vscode-to-vscodium.ps1
Ou informe um comando customizado:
pwsh ./sync-vscode-to-vscodium.ps1 -VSCodiumCli vscodium
Script Bash (somente Linux)
Salve como sync-vscode-to-vscodium.sh:
#!/usr/bin/env bash
set -e
# simple script to sync vscode -> vscodium on linux
VSCODE_USER="$HOME/.config/Code/User"
VSCODIUM_USER="$HOME/.config/VSCodium/User"
VSCODIUM_CLI="${VSCODIUM_CLI:-codium}"
echo "vscode folder : $VSCODE_USER"
echo "vscodium folder : $VSCODIUM_USER"
echo "vscodium cli : $VSCODIUM_CLI"
echo
if [ ! -d "$VSCODE_USER" ]; then
echo "error: vscode folder not found: $VSCODE_USER"
exit 1
fi
mkdir -p "$VSCODIUM_USER"
if [ -f "$VSCODE_USER/settings.json" ]; then
cp "$VSCODE_USER/settings.json" "$VSCODIUM_USER/"
echo "copied settings.json"
fi
if [ -f "$VSCODE_USER/keybindings.json" ]; then
cp "$VSCODE_USER/keybindings.json" "$VSCODIUM_USER/"
echo "copied keybindings.json"
fi
if [ -d "$VSCODE_USER/snippet" ]; then
cp -r "$VSCODE_USER/snippet" "$VSCODIUM_USER/"
echo "copied snippets directory"
fi
if [ -d "$VSCODE_USER/profiles" ]; then
cp -r "$VSCODE_USER/profiles" "$VSCODIUM_USER/"
echo "copied profiles directory"
fi
echo
echo "exporting vscode extensions..."
if ! command -v code >/dev/null 2>&1; then
echo "error: 'code' command not found in path."
exit 1
fi
EXT_FILE="$HOME/vscode-extensions-$(date +%Y%m%d-%H%M%S).txt"
code --list-extensions > "$EXT_FILE"
echo "extensions list saved to: $EXT_FILE"
echo
if ! command -v "$VSCODIUM_CLI" >/dev/null 2>&1; then
echo "error: '$VSCODIUM_CLI' command not found. adjust VSCODIUM_CLI variable."
exit 1
fi
echo "installing extensions in vscodium..."
while IFS= read -r ext; do
[ -z "$ext" ] && continue
echo " installing $ext"
"$VSCODIUM_CLI" --install-extension "$ext" >/dev/null 2>&1 || echo " failed to install $ext"
done < "$EXT_FILE"
echo
echo "sync completed."
Uso no Linux
Primeiro, deixe executável:
chmod +x sync-vscode-to-vscodium.sh
./sync-vscode-to-vscodium.sh
Se o comando do VSCodium for vscodium em vez de codium:
VSCODIUM_CLI=vscodium ./sync-vscode-to-vscodium.sh
Instalação manual de extensões
Se preferir instalar manualmente usando um extensions.txt:
Bash (Linux/macOS)
cat extensions.txt | xargs -L 1 code --install-extension
PowerShell (Windows)
Get-Content extensions.txt | ForEach-Object { code --install-extension $_ }
Para VSCodium
Troque code por codium:
cat extensions.txt | xargs -L 1 codium --install-extension
Principais destaques
Melhorias do editor
- Fonte: Fira Code com ligaduras ativadas
- Animações suaves: cursor e rolagem
- Auto-save: ao trocar de janela
- Formatar ao salvar: ativado
Integração com Git
- Auto-fetch ativado
- Smart commit ativado
- GitLens com recursos de IA experimentais
- Integração com pull requests
Tema e ícones
- Tema: Shades of Purple (Super Dark)
- Ícones: vscode-icons
Formatadores por linguagem
- JavaScript/TypeScript: formatador nativo
- Python: autopep8
- Markdown: markdownlint
- XML: DotJoshJohnson.xml
- JSON: formatador nativo
- HTML: formatador nativo
Privacidade e performance
- Telemetria desativada
- Auto-updates desativados
- Cloud sync desativado
- Recomendações de extensões ignoradas
O arquivo
settings.jsoncontém uma chave de API (gitCommitSuggestions.openAIKey). Remova ou substitua por uma chave sua, ou melhor ainda, use variáveis de ambiente para dados sensíveis.
Antes de aplicar em uma instalação nova, revise cada configuração para garantir que bate com seu fluxo de trabalho. Algumas opções, como caminhos de arquivo, podem precisar de ajuste para o seu ambiente.