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:
- Container Tools
- GitHub Copilot
- GitHub Copilot Chat
- HTML CSS Suport
- Markdown PDF
- markdownlint
- PowerShell
- Rainbow CSV
- REG
- Remote-SSH: Editing Configuration Files
- Remote Development
- Remote Explorer
- shell-format
- XML Tools
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