Visual Studio Code (VS Code) es un editor de código fuente gratuito, ligero y multiplataforma desarrollado por Microsoft. Diseñado para ser ágil pero potente, permite escribir, depurar y gestionar código en una amplia variedad de lenguajes como JavaScript, Python, C++, Java, HTML, entre muchos otros.

Instalación portable

Aunque Visual Studio Code se puede instalar a nivel de sistema (Program Files) o a nivel de usuario (AppData), yo prefiero instalarlo en modo portable para que la configuración y las extensiones se guarden junto al programa.

La instalación se realiza de la siguiente manera:

  • Descargar el fichero ZIP
  • Descomprimirlo en un directorio local (p.ej. D:\SOFT\VSCode).
  • Crear un subdirectorio D:\SOFT\VSCode\data

La existencia de este directorio data indica a Visual Studio Code que debe guardar ahí la configuración y las extensiones que se instalen.

Nota: El único inconveniente de este método tenemos que encargarnos nosotros mismos de las actualizaciones, descargando la nueva versión y descomprimiéndola en el mismo directorio.

Elemento Instalación usuario Instalación portable
Settings %APPDATA%\Code .\data\user-data
Extensions %USERPROFILE%\.vscode\extensions .\data\extensions

Componentes adicionales

Si se utilizará Visual Studio para desarrollo, es recomendable instalar también los siguientes componentes adicionales:

winget install --id Microsoft.WSL --source msstore
winget install --id Microsoft.WindowsTerminal --source msstore
winget install --id Git.Git --source winget
winget install --id Microsoft.PowerShell --source winget

Wizard inicial

Cuando se ejecuta VSCode por primera vez, aparece un wizard para realizar la configuración inicial.

Yo suelo realizar un mínima configuración y marcar todos los pasos como realizados:

  • Use AI features with Copilot for free
    • Setup up Copilot
    • Sign-in with a GitHub account
    • Select user to authorize Visual Studio Code: username
    • Always allow vscode.dev to open links of this type
  • Choose your theme → Dark High Contrast
  • Rich support for all your languages:
  • Tune your settings
  • Unlock productivity with the Command Palette
  • Watch video tutorials
  • Code with extensions
  • Install Git
  • Customize your shortcuts

Extensiones

Visual Studio Code tiene un marketplace para descargar e instalar extensiones que amplian las capacidades del editor.

Mara mi uso particular, suelo instalar las siguientes extensiones:

Configuración

La configuración de VSCode se divide en user settings (que aplican de forma global a cualquier instancia de VSCode que se ejecute) y workspace settings (únicamente aplican cuando se abre un determinado proyecto o workspace).

Las preferencias de usuario se modifican usando la opción Preferences: Open User Settings desde la paleta de comandos y se guardan en el fichero .\data\user-data\User\setttings.json.

Las preferencias de un workspace se modifican usando la opción Preferences: Open Workspace Settings desde la paleta de comandos y se guardan en un directorio .vscode dentro del proyecto, lo cual es útil para compartir la configuración a través de Git.

Nota: Hay configuraciones de usuario que no están disponibles en un workspace (por ejemplo las que tienen relación con las actualizaciones o la seguridad).

La configuración se puede sincronizar entre diferentes instancias de VSCode, ya sea en el mismo equipo o en equipos diferentes.

En mi caso únicamente sincronizo las configuraciones marcadas en negrita:

  • Settings
  • Keyboard Shortcuts
  • Snippets
  • Tasks
  • MCP Servers
  • UI State
  • Extensions
  • Profiles
  • Prompts and Instructions

PowerShell

La configuración inicial de PowerShell, Get started with PowerShell, consta de las siguientes secciones que suelo marcar rápidamente como completadas:

  • Choose a version of PowerShell
  • Create a PowerShell file
  • Switch sessions
  • Try ISE mode
  • Open the PowerShell Extension Terminal
  • Explore more resources

Telemetria

Para evitar el envío de información a Microsoft sobre el uso, errores, etc. de VSCode, se puede desactivar la telemetría:

"telemetry.telemetryLevel": "off"

WSL

La configuración inicial de WSL, `Get Started with WSL, consta de las siguientes secciones que suelo marcar rápidamente como completadas:

  • Get Started with WSL
  • Open a WSL Windows

Arquitectura VSCode con WSL

La arquitectura de VS Code con WSL es tipo cliente-servidor:

  • El cliente se ejecuta en Windows (interfaz, temas, snippets)
  • El servidor se ejecuta en WSL (extensiones que analizan código, linting, depuración, etc.)

Por eso, extensiones como markdownlint, que analizan archivos, o Copilot Chat, que interactúan con el código, necesitan estar instaladas en WSL para funcionar correctamente en ese entorno.

Nota: la configuración de este entorno se guarda en el fichero ~/.vscode-server/data/Machine/settings.json del servidor remoto.

settings.json

{
    // Configuración del entorno global

    "workbench.colorTheme": "Default High Contrast", // Tema oscuro de alto contraste
    "workbench.startupEditor": "none",
    "window.zoomLevel": 1,
    "telemetry.telemetryLevel": "off", // Deshabilitar la telemetría
    "extensions.autoUpdate": false, // Deshabilitar la actualización automática de extensiones

    // Configuración del editor

    "editor.minimap.enabled": false, // Deshabilitar el minimapa
    "editor.tabSize": 2, // Tamaño de tabulación de 2 espacios
    "editor.insertSpaces": true, // Insertar espacios en lugar de tabulaciones
    "editor.inlineSuggest.enabled": true, // Habilitar sugerencias en línea
    "files.autoSave": "off", // Deshabilitar el guardado automático de archivos

    // Configuración según el tipo de archivo o lenguaje

    "files.associations": {
        "docker-compose.yml": "yaml"
    },

    "[yaml]": {
        "editor.tabSize": 2,
        "editor.insertSpaces": true
    },

    "[bat]": {
        "files.encoding": "windows1252"
    },

    "powershell.codeFormatting.preset": "OTBS", // Formato de código OTBS (Kernigan & Ritchie)

    // Configuraciones para la edición remota (WSL, SSH, Docker)

    "remote.SSH.remotePlatform": {
        "docker-root": "linux",
        "pi4nas-pi": "linux",
        "unraid-root": "linux"
    }
}

Historial de cambios

  • 2025-07-12: Documento inicial