Ir al contenido principal
Fragmento

Archivos de Configuración de VSCode

05 dic 2025
8 min de lectura
Yuri Cunha

Configuración completa de VSCode/VSCodium con lista de extensiones y copia de seguridad de ajustes para facilitar la migración entre instalaciones.

Este fragmento contiene mis archivos de configuración personal de VSCode para facilitar la migración a VSCodium o instalaciones nuevas de VSCode. Incluye una lista completa de extensiones y configuraciones detalladas del editor.

Lista de extensiones

Guarda este archivo como extensions.txt para llevar un registro de todas las extensiones 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

Configuración de ajustes

Guarda este archivo como settings.json en el directorio de configuración de usuario de VSCode/VSCodium:

{
  "workbench.sideBar.location": "right",
  "files.autoSave": "onWindowChange",
  "editor.fontFamily": "'Fira Code'",
  "editor.fontWeight": "300", // Light
  "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
}

Ubicaciones de configuración

Windows

  • Configuración: %APPDATA%\Code\User\settings.json
  • VSCodium: %APPDATA%\VSCodium\User\settings.json

Linux

  • Configuración: ~/.config/Code/User/settings.json
  • VSCodium: ~/.config/VSCodium/User/settings.json

macOS

  • Configuración: ~/Library/Application Support/Code/User/settings.json
  • VSCodium: ~/Library/Application Support/VSCodium/User/settings.json

Sincronización automatizada: VSCode → VSCodium

En lugar de copiar archivos e instalar extensiones manualmente, puedes automatizar todo el proceso con estos scripts. Copian todas las configuraciones (ajustes, atajos de teclado, fragmentos de código, perfiles) de VSCode a VSCodium e instalan automáticamente todas tus extensiones.

Script de PowerShell (Multiplataforma)

Este script funciona tanto en Windows como en Linux con PowerShell 7.

Guarda 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) {
        # if user provided a path, try it first
        $cmd = Get-Command $Preferred -ErrorAction SilentlyContinue
        if ($cmd) { return $cmd.Source }
        if (Test-Path $Preferred) { return $Preferred }
    }

    # try common names in path
    foreach ($name in "codium", "vscodium") {
        $cmd = Get-Command $name -ErrorAction SilentlyContinue
        if ($cmd) { return $cmd.Source }
    }

    # try default paths by system
    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

# copy settings.json
$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"
}

# copy keybindings.json
$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"
}

# copy snippets
$snippets = Join-Path $vsCodeUser "snippets"
if (Test-Path $snippets) {
    Copy-Item $snippets $vscodiumUser -Recurse -Force
    Write-Host "copied snippets directory"
}

# copy profiles (if exists)
$profiles = Join-Path $vsCodeUser "profiles"
if (Test-Path $profiles) {
    Copy-Item $profiles $vscodiumUser -Recurse -Force
    Write-Host "copied profiles directory"
}

# export vscode extensions list
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

    # find vscodium cli
    $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 en Windows

Ejecuta el script con PowerShell 7:

.\sync-vscode-to-vscodium.ps1

Si el script no puede encontrar VSCodium automáticamente, especifica la ruta:

.\sync-vscode-to-vscodium.ps1 -VSCodiumCli "C:\Program Files\VSCodium\VSCodium.exe"

Uso en Linux con PowerShell 7

Si tienes instalado pwsh:

pwsh ./sync-vscode-to-vscodium.ps1

O especifica un comando personalizado para VSCodium:

pwsh ./sync-vscode-to-vscodium.ps1 -VSCodiumCli vscodium

Script de Bash (Solo Linux)

Guarda 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"

# allow overriding command via environment variable
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"

# copy settings
if [ -f "$VSCODE_USER/settings.json" ]; then
  cp "$VSCODE_USER/settings.json" "$VSCODIUM_USER/"
  echo "copied settings.json"
fi

# copy keybindings
if [ -f "$VSCODE_USER/keybindings.json" ]; then
  cp "$VSCODE_USER/keybindings.json" "$VSCODIUM_USER/"
  echo "copied keybindings.json"
fi

# copy snippets
if [ -d "$VSCODE_USER/snippet" ]; then
  cp -r "$VSCODE_USER/snippet" "$VSCODIUM_USER/"
  echo "copied snippets directory"
fi

# copy profiles
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 en Linux

Primero, haz que el script sea ejecutable:

chmod +x sync-vscode-to-vscodium.sh
./sync-vscode-to-vscodium.sh

Si tu comando de VSCodium es vscodium en lugar de codium:

VSCODIUM_CLI=vscodium ./sync-vscode-to-vscodium.sh

Instalación manual de extensiones

Si prefieres instalar extensiones manualmente desde un archivo 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

Reemplaza code con codium en los comandos anteriores:

cat extensions.txt | xargs -L 1 codium --install-extension

Características principales

Mejoras del editor

  • Fuente: Fira Code con ligaduras habilitadas
  • Animaciones fluidas: Cursor y desplazamiento
  • Guardado automático: Al cambiar de ventana
  • Formateo al guardar: Habilitado

Integración con Git

  • Auto-fetch habilitado
  • Commits inteligentes habilitados
  • GitLens con funciones experimentales de IA
  • Integración de pull requests

Tema e iconos

  • Tema: Shades of Purple (Super Dark)
  • Iconos: vscode-icons

Formateadores específicos por lenguaje

  • JavaScript/TypeScript: Formateador integrado
  • Python: autopep8
  • Markdown: markdownlint
  • XML: DotJoshJohnson.xml
  • JSON: Formateador integrado
  • HTML: Formateador integrado

Privacidad y rendimiento

  • Telemetría deshabilitada
  • Actualizaciones automáticas deshabilitadas
  • Sincronización en la nube deshabilitada
  • Recomendaciones de extensiones ignoradas