<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Vs-Code on KnightLi Blog</title>
        <link>https://knightli.com/es/tags/vs-code/</link>
        <description>Recent content in Vs-Code on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>es</language>
        <lastBuildDate>Fri, 08 May 2026 13:18:57 +0800</lastBuildDate><atom:link href="https://knightli.com/es/tags/vs-code/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Cómo cambiar el idioma de la interfaz de VS Code: chino, inglés y otros idiomas</title>
        <link>https://knightli.com/es/2026/05/08/vscode-switch-display-language/</link>
        <pubDate>Fri, 08 May 2026 13:18:57 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/08/vscode-switch-display-language/</guid>
        <description>&lt;p&gt;VS Code admite muchos idiomas de interfaz. Lo habitual es instalar primero el paquete de idioma correspondiente y luego elegir el idioma de visualización desde la paleta de comandos. Si necesitas fijar VS Code a un idioma concreto, también puedes modificar manualmente el valor &lt;code&gt;locale&lt;/code&gt; en &lt;code&gt;argv.json&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Este método no solo sirve para chino simplificado; también funciona con inglés, chino tradicional, japonés, coreano, francés, alemán, español y otros idiomas.&lt;/p&gt;
&lt;h2 id=&#34;instalar-el-paquete-de-idioma-correspondiente&#34;&gt;Instalar el paquete de idioma correspondiente
&lt;/h2&gt;&lt;p&gt;Si quieres cambiar a una interfaz que no sea inglés, normalmente debes instalar primero un paquete de idioma.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abre el panel de extensiones de VS Code en la barra lateral izquierda, o usa el atajo &lt;code&gt;Ctrl+Shift+X&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;En el cuadro de búsqueda, escribe el idioma objetivo, por ejemplo &lt;code&gt;Chinese&lt;/code&gt;, &lt;code&gt;Japanese&lt;/code&gt;, &lt;code&gt;Korean&lt;/code&gt; o &lt;code&gt;French&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Selecciona el paquete de idioma correspondiente y haz clic en &lt;code&gt;Install&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Cuando termine la instalación, reinicia VS Code si se te solicita.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Para chino simplificado, el paquete habitual es &lt;code&gt;Chinese (Simplified)&lt;/code&gt;. Para chino tradicional, usa &lt;code&gt;Chinese (Traditional)&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;cambiar-el-idioma-desde-la-paleta-de-comandos&#34;&gt;Cambiar el idioma desde la paleta de comandos
&lt;/h2&gt;&lt;p&gt;Este es el método recomendado para la mayoría de los usuarios.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abre la paleta de comandos: &lt;code&gt;Ctrl+Shift+P&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Escribe &lt;code&gt;Configure Display Language&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Selecciona el comando &lt;code&gt;Configure Display Language&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Elige en la lista el idioma que quieres usar.&lt;/li&gt;
&lt;li&gt;Reinicia VS Code si se te solicita.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Después del reinicio, los menús, las páginas de configuración y los mensajes habituales usarán el idioma seleccionado. Si el idioma objetivo no aparece en la lista, instala antes su paquete desde el panel de extensiones.&lt;/p&gt;
&lt;h2 id=&#34;especificar-el-idioma-manualmente-en-argvjson&#34;&gt;Especificar el idioma manualmente en argv.json
&lt;/h2&gt;&lt;p&gt;Si el cambio desde la paleta de comandos no funciona, o si quieres fijar explícitamente el idioma de visualización, puedes editar directamente el archivo de argumentos de ejecución de VS Code.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abre la paleta de comandos: &lt;code&gt;Ctrl+Shift+P&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Escribe y selecciona &lt;code&gt;Preferences: Configure Runtime Arguments&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Busca o agrega la opción &lt;code&gt;locale&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Cambia su valor por el código del idioma objetivo.&lt;/li&gt;
&lt;li&gt;Guarda el archivo y reinicia VS Code.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Por ejemplo, para cambiar a inglés:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;locale&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;en&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para cambiar a chino simplificado:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;locale&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;zh-cn&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para cambiar a japonés:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;locale&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;ja&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;argv.json&lt;/code&gt; es un archivo JSON, así que presta atención a las comas y las comillas. Si la configuración no es válida, VS Code puede no leer correctamente el idioma configurado.&lt;/p&gt;
&lt;h2 id=&#34;códigos-de-idioma-de-interfaz-comunes&#34;&gt;Códigos de idioma de interfaz comunes
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Idioma de visualización&lt;/th&gt;
          &lt;th&gt;locale&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;English (US)&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;en&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Chino simplificado&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;zh-cn&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Chino tradicional&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;zh-tw&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;French&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;fr&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;German&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;de&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Italian&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;it&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Spanish&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;es&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Japanese&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;ja&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Korean&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;ko&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Russian&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;ru&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Portuguese (Brazil)&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;pt-br&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Turkish&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;tr&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Bulgarian&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;bg&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Hungarian&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;hu&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;qué-hacer-si-el-idioma-no-cambia&#34;&gt;Qué hacer si el idioma no cambia
&lt;/h2&gt;&lt;p&gt;Revisa estos puntos en orden:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Confirma que el paquete del idioma objetivo está instalado.&lt;/li&gt;
&lt;li&gt;Confirma que &lt;code&gt;locale&lt;/code&gt; usa el código correcto. Por ejemplo, chino simplificado es &lt;code&gt;zh-cn&lt;/code&gt;, no &lt;code&gt;zh-CN&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Cierra VS Code por completo y vuelve a abrirlo después de cambiar el idioma.&lt;/li&gt;
&lt;li&gt;Si editaste &lt;code&gt;argv.json&lt;/code&gt; manualmente, comprueba que la sintaxis JSON sea válida.&lt;/li&gt;
&lt;li&gt;Si la configuración está desordenada, elimina la entrada &lt;code&gt;locale&lt;/code&gt; y vuelve a elegir el idioma mediante &lt;code&gt;Configure Display Language&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;En la mayoría de los casos, &lt;code&gt;Configure Display Language&lt;/code&gt; es la opción más sencilla. Edita &lt;code&gt;argv.json&lt;/code&gt; solo cuando necesites forzar un idioma concreto o cuando el cambio desde la paleta de comandos no surta efecto.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.csdn.net/mighty13/article/details/114420578&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;VScode: cambiar el idioma de la interfaz de VS Code a chino simplificado y alternar el idioma de visualización&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Cómo elegir un entorno de desarrollo embebido en 2026: Keil, STM32CubeIDE, VS Code y colaboración AI</title>
        <link>https://knightli.com/es/2026/04/22/embedded-development-environment-keil-vscode-ai-2026/</link>
        <pubDate>Wed, 22 Apr 2026 23:05:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/22/embedded-development-environment-keil-vscode-ai-2026/</guid>
        <description>&lt;p&gt;Si todavía trabajas con microcontroladores o sistemas embebidos, pronto aparece una pregunta práctica: en 2026, cuando la programación asistida por AI se ha vuelto común, ¿qué entorno de desarrollo tiene sentido?&lt;/p&gt;
&lt;p&gt;En la superficie parece una comparación entre varios IDEs. Pero en realidad pregunta otra cosa: ¿quieres una herramienta que simplemente haga correr el proyecto, o un workflow que equilibre compatibilidad de ecosistema, experiencia de programación y colaboración AI?&lt;/p&gt;
&lt;p&gt;Desde ese ángulo, la respuesta normalmente no es elegir uno entre &lt;code&gt;Keil&lt;/code&gt;, &lt;code&gt;STM32CubeIDE&lt;/code&gt;, &lt;code&gt;VS Code&lt;/code&gt; y &lt;code&gt;CLion&lt;/code&gt;, sino recombinar lo que cada uno hace mejor.&lt;/p&gt;
&lt;h2 id=&#34;primero-mira-las-opciones-principales-y-qué-resuelve-cada-una&#34;&gt;Primero mira las opciones principales y qué resuelve cada una
&lt;/h2&gt;&lt;p&gt;En desarrollo embebido, los nombres familiares siguen siendo casi los mismos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Keil&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;STM32CubeIDE&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;VS Code&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CLion&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si vas aún más atrás, la gente mencionará &lt;code&gt;IAR&lt;/code&gt;. Pero para esta discusión importa menos quién tiene el linaje más antiguo y más quién encaja realmente con la realidad actual del desarrollo.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/22/embedded-development-environment-keil-vscode-ai-2026/embedded-ide-comparison.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Comparison chart of embedded development environments&#34;
	
	
&gt;&lt;/p&gt;
&lt;h2 id=&#34;keil-ecosistema-fuerte-entrada-fiable-pero-edición-claramente-anticuada&#34;&gt;Keil: ecosistema fuerte, entrada fiable, pero edición claramente anticuada
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Keil&lt;/code&gt; sigue siendo difícil de evitar, y la razón es simple: está en todas partes.&lt;/p&gt;
&lt;p&gt;Ya sea en proyectos legacy de empresas, tutoriales online, ejemplos compartidos o codebases antiguas, una enorme cantidad de trabajo embebido sigue organizada alrededor de &lt;code&gt;Keil&lt;/code&gt;. Su flujo de build, descarga y debug sigue siendo maduro, y si tu objetivo principal es hacer correr código en una placa, sigue siendo un camino corto.&lt;/p&gt;
&lt;p&gt;Sus problemas son igual de obvios:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;interfaz anticuada&lt;/li&gt;
&lt;li&gt;experiencia de edición promedio&lt;/li&gt;
&lt;li&gt;no es un hogar natural para programación asistida por AI&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así que &lt;code&gt;Keil&lt;/code&gt; se siente más como punto de entrada de proyecto y base de depuración que como editor ideal para una experiencia de programación en 2026.&lt;/p&gt;
&lt;h2 id=&#34;stm32cubeide-amigable-para-stm32-pero-más-herramienta-de-aprendizaje-e-inicio-rápido&#34;&gt;STM32CubeIDE: amigable para STM32, pero más herramienta de aprendizaje e inicio rápido
&lt;/h2&gt;&lt;p&gt;Si vives principalmente en el ecosistema &lt;code&gt;STM32&lt;/code&gt;, &lt;code&gt;STM32CubeIDE&lt;/code&gt; suele ser el primer entorno que tocas.&lt;/p&gt;
&lt;p&gt;Sus fortalezas son claras:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;onboarding amigable para principiantes&lt;/li&gt;
&lt;li&gt;configuración de periféricos y generación de proyectos cómoda&lt;/li&gt;
&lt;li&gt;cadena de debug bastante completa&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para estudiantes, principiantes e inicio temprano de proyectos, la experiencia es directa y suficiente.&lt;/p&gt;
&lt;p&gt;Pero al entrar en proyectos largos, colaboración pesada y workflows personalizados, sus limitaciones se hacen más visibles. En trabajo comercial o entornos de equipo más complejos, puede no ser el entorno primario más cómodo.&lt;/p&gt;
&lt;p&gt;Encaja mejor como herramienta all-in-one centrada en STM32 para comenzar rápido que como editor primario a largo plazo.&lt;/p&gt;
&lt;h2 id=&#34;vs-code-no-es-realmente-un-ide-pero-gana-fuerza-en-la-era-ai&#34;&gt;VS Code: no es realmente un IDE, pero gana fuerza en la era AI
&lt;/h2&gt;&lt;p&gt;Estrictamente, &lt;code&gt;VS Code&lt;/code&gt; no es un IDE tradicional. Más exactamente, es un editor extensible.&lt;/p&gt;
&lt;p&gt;Eso le da una naturaleza dual.&lt;/p&gt;
&lt;p&gt;Sus debilidades:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;necesita plugins y configuración&lt;/li&gt;
&lt;li&gt;no es suficientemente amable para principiantes&lt;/li&gt;
&lt;li&gt;no reemplaza de entrada todo el flujo de un IDE embebido&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pero sus fortalezas vienen del mismo lugar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;gran extensibilidad&lt;/li&gt;
&lt;li&gt;experiencia de programación mucho más moderna&lt;/li&gt;
&lt;li&gt;mejor resaltado, navegación, búsqueda y refactorización&lt;/li&gt;
&lt;li&gt;más impulso alrededor de herramientas AI y flujos de agentes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En esta etapa, muchos desarrolladores ya no quieren solo algo para escribir código. Quieren saber si la colaboración AI encaja naturalmente en el mismo entorno. Desde esa perspectiva, la ventaja de &lt;code&gt;VS Code&lt;/code&gt; es difícil de ignorar.&lt;/p&gt;
&lt;h2 id=&#34;clion-buena-experiencia-pero-no-suficientemente-central-en-práctica-embebida&#34;&gt;CLion: buena experiencia, pero no suficientemente central en práctica embebida
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CLion&lt;/code&gt; aparece a menudo porque su experiencia C/C++ lleva tiempo considerándose sólida.&lt;/p&gt;
&lt;p&gt;Pero para muchos desarrolladores embebidos, la pregunta no es si es bueno. La pregunta es si vale la pena cambiar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;relativamente menos gente lo usa en workflows embebidos&lt;/li&gt;
&lt;li&gt;no se conecta tan directamente con ecosistemas de proyectos embebidos existentes como &lt;code&gt;Keil&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;quizá no ofrece una ventaja de colaboración AI más práctica que &lt;code&gt;VS Code&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así que se siente más como una opción teóricamente buena que como el centro más natural de un workflow embebido mainstream hoy.&lt;/p&gt;
&lt;h2 id=&#34;una-respuesta-más-práctica-keil-para-builddebug-vs-code-para-programar&#34;&gt;Una respuesta más práctica: Keil para build/debug, VS Code para programar
&lt;/h2&gt;&lt;p&gt;Si separas estas herramientas por rol, aparece una conclusión mucho más pragmática:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;usar &lt;code&gt;Keil&lt;/code&gt; para preservar compatibilidad de proyectos existentes, build, flashing y debugging&lt;/li&gt;
&lt;li&gt;usar &lt;code&gt;VS Code&lt;/code&gt; para programación diaria, búsqueda, navegación y colaboración AI&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El valor de esta combinación es que no intenta forzar una herramienta a hacerlo todo. Devuelve cada herramienta al rol donde es mejor.&lt;/p&gt;
&lt;p&gt;Para muchos proyectos embebidos, el ecosistema &lt;code&gt;Keil&lt;/code&gt; simplemente no es opcional. Si eso es cierto, en lugar de forzar todo de vuelta a &lt;code&gt;Keil&lt;/code&gt;, tiene más sentido tratarlo como backend de build y debug, y entregar la experiencia real de edición a &lt;code&gt;VS Code&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/22/embedded-development-environment-keil-vscode-ai-2026/keil-vscode-ai-workflow.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Workflow diagram for combining Keil and VS Code&#34;
	
	
&gt;&lt;/p&gt;
&lt;h2 id=&#34;por-qué-esta-combinación-tiene-más-sentido-en-la-era-ai&#34;&gt;Por qué esta combinación tiene más sentido en la era AI
&lt;/h2&gt;&lt;p&gt;Hoy, la línea divisoria entre entornos ya no es solo si el editor se siente fluido. Es si la AI puede conectarse naturalmente al workflow.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;VS Code&lt;/code&gt; tiene varias fortalezas prácticas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;soporte más activo para plugins y agentes AI&lt;/li&gt;
&lt;li&gt;experiencia de exploración de código más adecuada para que AI lea y modifique proyectos&lt;/li&gt;
&lt;li&gt;integración más fácil con ecosistemas modernos de plugins&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eso significa que algunas de las partes más incómodas del desarrollo embebido pueden empezar a descargarse en AI:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;encontrar funciones y call chains en un proyecto existente&lt;/li&gt;
&lt;li&gt;generar rápidamente código de inicialización&lt;/li&gt;
&lt;li&gt;añadir un print UART simple&lt;/li&gt;
&lt;li&gt;explicar la estructura de proyectos antiguos&lt;/li&gt;
&lt;li&gt;hacer ediciones pequeñas y localizadas en archivos existentes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas tareas nunca fueron imposibles. Solo eran incómodas. El significado de &lt;code&gt;VS Code&lt;/code&gt; no es solo que se vea mejor, sino que puede convertirse más naturalmente en el banco de trabajo para colaboración AI.&lt;/p&gt;
&lt;h2 id=&#34;el-parche-clave-conectar-vs-code-con-proyectos-keil-mediante-plugins&#34;&gt;El parche clave: conectar VS Code con proyectos Keil mediante plugins
&lt;/h2&gt;&lt;p&gt;Que este workflow funcione en la práctica depende de algo: ¿puedes conectar realmente &lt;code&gt;VS Code&lt;/code&gt; con un proyecto &lt;code&gt;Keil&lt;/code&gt;?&lt;/p&gt;
&lt;p&gt;Una clase muy práctica de plugins hace exactamente eso, permitiendo que &lt;code&gt;VS Code&lt;/code&gt; lea la estructura de proyecto &lt;code&gt;Keil&lt;/code&gt; y llame a programas backend de &lt;code&gt;Keil&lt;/code&gt; desde el editor para tareas como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;abrir un proyecto&lt;/li&gt;
&lt;li&gt;compilar&lt;/li&gt;
&lt;li&gt;descargar&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así no tienes que saltar constantemente entre dos interfaces solo para escribir código. Solo vuelves a &lt;code&gt;Keil&lt;/code&gt; para trabajo de depuración pesado, como stepping, breakpoints e inspección de registros.&lt;/p&gt;
&lt;p&gt;El valor real de estos plugins no es ahorrar unas ventanas. Es hacer continuo el workflow.&lt;/p&gt;
&lt;h2 id=&#34;no-olvides-la-configuración-básica-de-plugins-cc&#34;&gt;No olvides la configuración básica de plugins C/C++
&lt;/h2&gt;&lt;p&gt;Si quieres usar &lt;code&gt;VS Code&lt;/code&gt; como editor embebido principal, hay un punto básico que suele ignorarse: debes configurar correctamente el plugin C/C++ central y el indexado del proyecto.&lt;/p&gt;
&lt;p&gt;Si no, aparecerán problemas que dañan mucho la experiencia:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;jump-to-definition no funciona&lt;/li&gt;
&lt;li&gt;aparecen subrayados rojos falsos&lt;/li&gt;
&lt;li&gt;la calidad de completion es pobre&lt;/li&gt;
&lt;li&gt;las relaciones de headers se vuelven confusas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mucha gente asume que eso significa que &lt;code&gt;VS Code&lt;/code&gt; no sirve para embebido. En la práctica, a menudo solo ocurre que el indexado y la configuración de plugins no están conectados correctamente.&lt;/p&gt;
&lt;p&gt;Una vez configurada esa capa, &lt;code&gt;VS Code&lt;/code&gt; sí puede entregar sus fortalezas al leer proyectos grandes, buscar símbolos y usar AI para cambios de código dirigidos.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-encaja-este-workflow&#34;&gt;Para quién encaja este workflow
&lt;/h2&gt;&lt;p&gt;Creo que esta combinación funciona especialmente bien para estos grupos.&lt;/p&gt;
&lt;h3 id=&#34;1-personas-con-muchos-proyectos-basados-en-keil&#34;&gt;1. Personas con muchos proyectos basados en Keil
&lt;/h3&gt;&lt;p&gt;Si tus proyectos de empresa, materiales de curso o código histórico giran alrededor de &lt;code&gt;Keil&lt;/code&gt;, no hay razón para tirar ese ecosistema solo por parecer moderno. Conserva &lt;code&gt;Keil&lt;/code&gt; y añade &lt;code&gt;VS Code&lt;/code&gt; como frontend. Suele ser la transición de menor coste.&lt;/p&gt;
&lt;h3 id=&#34;2-personas-que-quieren-ayuda-ai-con-código-embebido&#34;&gt;2. Personas que quieren ayuda AI con código embebido
&lt;/h3&gt;&lt;p&gt;Si ya te gusta usar AI para explicar funciones, generar boilerplate o hacer cambios locales de lógica, &lt;code&gt;VS Code&lt;/code&gt; asumirá ese rol de forma más natural que los IDEs embebidos tradicionales.&lt;/p&gt;
&lt;h3 id=&#34;3-personas-que-quieren-equilibrar-materiales-de-aprendizaje-y-proyectos-reales&#34;&gt;3. Personas que quieren equilibrar materiales de aprendizaje y proyectos reales
&lt;/h3&gt;&lt;p&gt;Muchos tutoriales siguen construidos alrededor de &lt;code&gt;Keil&lt;/code&gt;, pero tu propio workflow no necesita quedarse atrapado en esa época. Trata &lt;code&gt;Keil&lt;/code&gt; como capa de compatibilidad y &lt;code&gt;VS Code&lt;/code&gt; como capa de productividad, y el equilibrio mejora mucho.&lt;/p&gt;
&lt;h2 id=&#34;cierre&#34;&gt;Cierre
&lt;/h2&gt;&lt;p&gt;En 2026, la pregunta clave sobre entornos embebidos ya no es solo qué IDE tiene más funciones. Es qué combinación encaja mejor con cómo trabaja la gente hoy.&lt;/p&gt;
&lt;p&gt;Si solo quieres empezar rápido, &lt;code&gt;STM32CubeIDE&lt;/code&gt; sigue teniendo su lugar. Si necesitas heredar mucha realidad de ingeniería existente, &lt;code&gt;Keil&lt;/code&gt; sigue siendo inevitable. Pero si también quieres una experiencia moderna de edición y colaboración AI, la respuesta más práctica suele ser:&lt;/p&gt;
&lt;p&gt;deja que &lt;code&gt;Keil&lt;/code&gt; maneje build y debugging, y que &lt;code&gt;VS Code&lt;/code&gt; maneje escribir código.&lt;/p&gt;
&lt;p&gt;Quizá no sea la única respuesta, pero probablemente es una de las menos incómodas disponibles hoy.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Usar Claude en VS Code: de configurar API a generar páginas</title>
        <link>https://knightli.com/es/2026/04/16/vscode-claude-api-coding-workflow/</link>
        <pubDate>Thu, 16 Apr 2026 17:47:17 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/16/vscode-claude-api-coding-workflow/</guid>
        <description>&lt;p&gt;Cuando empiezas a llevar modelos grandes al desarrollo diario, el mayor cambio no suele ser si pueden escribir código. Es si pueden empujar de una vez un conjunto de tareas pequeñas y dispersas.&lt;/p&gt;
&lt;p&gt;El valor real de estas herramientas no es completar unas líneas. Es poder chatear, editar archivos, previsualizar resultados y seguir iterando sin salir del editor. Para páginas simples, prototipos rápidos, ajustes de estilo y pequeñas funciones, ese workflow suele sentirse mucho más fluido que cambiar manualmente de una herramienta a otra.&lt;/p&gt;
&lt;p&gt;Este artículo resume un enfoque práctico: después de conectar un modelo tipo Claude a &lt;code&gt;VS Code&lt;/code&gt;, cómo usarlo realmente para generación de páginas e iteración de pequeñas funciones.&lt;/p&gt;
&lt;h2 id=&#34;1-conecta-primero-la-toolchain&#34;&gt;1. Conecta primero la toolchain
&lt;/h2&gt;&lt;p&gt;El flujo central de un plugin de AI coding suele ser simple:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Instalar en &lt;code&gt;VS Code&lt;/code&gt; un plugin que soporte edición conversacional de código&lt;/li&gt;
&lt;li&gt;Rellenar el &lt;code&gt;Base URL&lt;/code&gt; del servicio de modelo&lt;/li&gt;
&lt;li&gt;Añadir tu &lt;code&gt;API Key&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Elegir el nombre de modelo&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Una vez hecho, la parte AI del editor es realmente usable. Después, las diferencias de experiencia dependen más de calidad del modelo, interacción del plugin y estabilidad del output generado.&lt;/p&gt;
&lt;p&gt;Si nunca configuraste un plugin así, piensa en esto:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;el plugin convierte tu petición en lenguaje natural en acciones del editor&lt;/li&gt;
&lt;li&gt;la &lt;code&gt;API&lt;/code&gt; envía la solicitud a un servicio de modelo&lt;/li&gt;
&lt;li&gt;el modelo interpreta tu intención y devuelve código, ediciones o resultados estructurados&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El trabajo real de emparejar piezas está en tres cosas: plugin, endpoint y nombre de modelo.&lt;/p&gt;
&lt;h2 id=&#34;2-empieza-con-tareas-pequeñas&#34;&gt;2. Empieza con tareas pequeñas
&lt;/h2&gt;&lt;p&gt;Mucha gente quiere que la herramienta construya un proyecto completo al primer intento. Puede funcionar, pero para principiantes lo más rápido es empezar con algo mucho menor.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Generar una página frontend simple&lt;/li&gt;
&lt;li&gt;Añadir una sección de aviso a una página existente&lt;/li&gt;
&lt;li&gt;Crear un formulario de registro&lt;/li&gt;
&lt;li&gt;Hacer que la UI se vea más pulida y formal&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas tareas ayudan porque:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;el prompt es más claro&lt;/li&gt;
&lt;li&gt;puedes previsualizar el resultado de inmediato&lt;/li&gt;
&lt;li&gt;ves cómo conversación y ediciones de archivo trabajan juntas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cuando la petición es suficientemente específica, el plugin puede conversar en una barra lateral mientras edita archivos. Luego inspeccionas el resultado, previsualizas la página y decides si pedir otro cambio.&lt;/p&gt;
&lt;h2 id=&#34;3-la-ganancia-real-es-la-iteración-no-la-generación-de-una-pasada&#34;&gt;3. La ganancia real es la iteración, no la generación de una pasada
&lt;/h2&gt;&lt;p&gt;Un malentendido común es centrarse demasiado en si el primer resultado impresiona.&lt;/p&gt;
&lt;p&gt;En la práctica importa más si la segunda y tercera ronda siguen moviéndose en la dirección correcta.&lt;/p&gt;
&lt;p&gt;Un patrón común:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Pedir un esqueleto funcional de página&lt;/li&gt;
&lt;li&gt;Añadir una o dos funciones claras&lt;/li&gt;
&lt;li&gt;Revisar si código y UI se vuelven más completos&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si la herramienta se siente fluida, empieza a parecerse a trabajar con un junior muy rápido:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;describes la tarea&lt;/li&gt;
&lt;li&gt;produce una primera pasada&lt;/li&gt;
&lt;li&gt;señalas lo que falta&lt;/li&gt;
&lt;li&gt;sigue refinando&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ese workflow iterativo y conversacional se acerca mucho más al desarrollo real y es donde estas herramientas crean mayor diferencia de productividad.&lt;/p&gt;
&lt;h2 id=&#34;4-saber-qué-dar-a-ai-y-qué-corregir-tú&#34;&gt;4. Saber qué dar a AI y qué corregir tú
&lt;/h2&gt;&lt;p&gt;Esta distinción importa mucho.&lt;/p&gt;
&lt;p&gt;Layout de página, borradores de componentes, scaffolding de formularios, pulido de estilo, copy placeholder y boilerplate repetitivo suelen ser buenos candidatos para AI.&lt;/p&gt;
&lt;p&gt;Pero si solo necesitas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;cambiar una etiqueta de botón&lt;/li&gt;
&lt;li&gt;ajustar una frase de footer&lt;/li&gt;
&lt;li&gt;tocar un detalle mínimo de estilo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;a menudo es más rápido editarlo tú. El cambio es demasiado pequeño para justificar otra interacción completa con el modelo.&lt;/p&gt;
&lt;p&gt;El enfoque eficiente no es darle todo a AI. Es saber cuándo dejarle manejar un bloque grande y cuándo terminar los últimos detalles a mano.&lt;/p&gt;
&lt;h2 id=&#34;5-la-configuración-api-es-una-barrera-pero-no-lo-más-difícil&#34;&gt;5. La configuración API es una barrera, pero no lo más difícil
&lt;/h2&gt;&lt;p&gt;Mucha gente no se atasca en programar. Se atasca en configurar.&lt;/p&gt;
&lt;p&gt;Checks habituales:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿El endpoint es correcto?&lt;/li&gt;
&lt;li&gt;¿La key es válida?&lt;/li&gt;
&lt;li&gt;¿El nombre de modelo coincide con el servicio?&lt;/li&gt;
&lt;li&gt;¿El plugin espera un formato concreto de &lt;code&gt;Base URL&lt;/code&gt;?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si uno falla, el plugin puede abrir normalmente pero las solicitudes fallan por debajo.&lt;/p&gt;
&lt;p&gt;Orden práctico de troubleshooting:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Revisar endpoint&lt;/li&gt;
&lt;li&gt;Revisar key&lt;/li&gt;
&lt;li&gt;Revisar nombre de modelo y requisitos de formato URL&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Esos tres puntos resuelven la mayoría de problemas de setup.&lt;/p&gt;
&lt;h2 id=&#34;6-cómo-juzgar-si-el-output-vale-la-pena&#34;&gt;6. Cómo juzgar si el output vale la pena
&lt;/h2&gt;&lt;p&gt;Un estándar práctico no es si el output parece espectacular, sino si aguanta pruebas básicas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿La página generada corre de inmediato?&lt;/li&gt;
&lt;li&gt;¿La estructura es razonablemente clara?&lt;/li&gt;
&lt;li&gt;¿Sigue el rumbo tras peticiones de seguimiento?&lt;/li&gt;
&lt;li&gt;¿Mantiene consistencia al crecer el alcance de edición?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si una o dos rondas bastan para mover una página desde blanco hasta algo refinable, la herramienta ya es útil.&lt;/p&gt;
&lt;p&gt;Si cada resultado requiere rework grande, no está ahorrando tiempo. Solo convierte escribir código en revisar código.&lt;/p&gt;
&lt;h2 id=&#34;cierre&#34;&gt;Cierre
&lt;/h2&gt;&lt;p&gt;Lo más interesante de usar modelos tipo Claude en &lt;code&gt;VS Code&lt;/code&gt; no es la fantasía de no escribir código nunca más. Es que muchas tareas dispersas, repetitivas y que rompen contexto pueden avanzar en una pasada.&lt;/p&gt;
&lt;p&gt;Un workflow realista:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;deja que AI construya el primer esqueleto de página y función&lt;/li&gt;
&lt;li&gt;usa dos o tres rondas conversacionales para refinar&lt;/li&gt;
&lt;li&gt;haz tú los pequeños cambios finales claros&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así, AI se vuelve un acelerador, no un reemplazo que deba tomar todo el desarrollo.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Cree imágenes de Docker en VS Code en Windows: desde la configuración hasta la compilación</title>
        <link>https://knightli.com/es/2026/04/16/vscode-docker-image-build-windows/</link>
        <pubDate>Thu, 16 Apr 2026 10:20:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/16/vscode-docker-image-build-windows/</guid>
        <description>&lt;p&gt;Si desea crear imágenes de Docker directamente desde VS Code en Windows, el flujo de trabajo es sencillo. Solo necesitas tres partes: preparar el entorno, crear un Dockerfile y luego ejecutar la compilación.&lt;/p&gt;
&lt;h2 id=&#34;01-requisitos-previos&#34;&gt;01 Requisitos previos
&lt;/h2&gt;&lt;p&gt;Asegúrese de que estos dos elementos estén listos:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Instale y ejecute Docker Desktop.&lt;/li&gt;
&lt;li&gt;Instale la extensión oficial de Microsoft &lt;code&gt;Docker&lt;/code&gt; en VS Code.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;En Windows, usar el backend &lt;code&gt;WSL 2&lt;/code&gt; en Docker Desktop (&lt;code&gt;Configuración &amp;gt; Recursos &amp;gt; Integración WSL&lt;/code&gt;) suele ser más estable y rápido.&lt;/p&gt;
&lt;h2 id=&#34;02-preparar-un-archivo-docker&#34;&gt;02 Preparar un archivo Docker
&lt;/h2&gt;&lt;p&gt;Si tu proyecto aún no tiene uno, VS Code puede generarlo:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abra la carpeta de su proyecto en VS Code.&lt;/li&gt;
&lt;li&gt;Presione &lt;code&gt;F1&lt;/code&gt; o &lt;code&gt;Ctrl+Shift+P&lt;/code&gt; para abrir la paleta de comandos.&lt;/li&gt;
&lt;li&gt;Ejecute &lt;code&gt;Docker: Agregar archivos Docker al espacio de trabajo&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Elija su plataforma (Node.js, Python, .NET, etc.) y siga las indicaciones.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Normalmente obtendrá al menos:&lt;/p&gt;
&lt;p&gt;-&lt;code&gt;Dockerfile&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;.dockerignore&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto le proporciona una base de trabajo que podrá perfeccionar más adelante.&lt;/p&gt;
&lt;h2 id=&#34;03-tres-maneras-de-construir-la-imagen&#34;&gt;03 Tres Maneras de Construir la Imagen
&lt;/h2&gt;&lt;h3 id=&#34;método-a-haga-clic-con-el-botón-derecho-en-dockerfile&#34;&gt;Método A: haga clic con el botón derecho en Dockerfile
&lt;/h3&gt;&lt;p&gt;En el Explorador de archivos, haga clic derecho en &amp;ldquo;Dockerfile&amp;rdquo;, seleccione &amp;ldquo;Crear imagen&amp;hellip;&amp;rdquo; e ingrese una etiqueta de imagen.&lt;/p&gt;
&lt;h3 id=&#34;método-b-paleta-de-comandos&#34;&gt;Método B: Paleta de comandos
&lt;/h3&gt;&lt;p&gt;Presione &lt;code&gt;F1&lt;/code&gt;, ejecute &lt;code&gt;Docker: Build Image&lt;/code&gt;, luego seleccione el contexto y la etiqueta.&lt;/p&gt;
&lt;h3 id=&#34;método-c-terminal-integrado&#34;&gt;Método C: Terminal integrado
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker build -t your-image-name .
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Este comando crea una imagen a partir del contexto del directorio actual con la etiqueta &lt;code&gt;tu-nombre-de-imagen&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;04-comprobaciones-rápidas-para-problemas-comunes&#34;&gt;04 Comprobaciones rápidas para problemas comunes
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Docker Desktop no se está ejecutando: verifique que esté iniciado.&lt;/li&gt;
&lt;li&gt;La compilación es muy lenta: verifique si el backend de WSL 2 está habilitado.&lt;/li&gt;
&lt;li&gt;La compilación no puede encontrar archivos: asegúrese de que su terminal esté en la raíz del proyecto y que los archivos estén dentro del contexto de compilación.&lt;/li&gt;
&lt;li&gt;Los recursos de Docker no se muestran en VS Code: reinicie VS Code y verifique Docker CLI (&lt;code&gt;versión de Docker&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;La creación de imágenes de Docker en VS Code en Windows es principalmente un problema de configuración. Una vez que Docker Desktop y la extensión VS Code Docker estén implementados, puede generar archivos Docker rápidamente y crear imágenes desde la interfaz de usuario o el terminal.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Usar Agent Skills para sustituir la función de Copilot en VS Code que genera mensajes de commit</title>
        <link>https://knightli.com/es/2026/04/06/replace-vscode-generate-commit-message-after-copilot-quota/</link>
        <pubDate>Mon, 06 Apr 2026 13:09:49 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/06/replace-vscode-generate-commit-message-after-copilot-quota/</guid>
        <description>&lt;p&gt;La función &amp;ldquo;generar mensaje de commit&amp;rdquo; de GitHub Copilot en VS Code es muy práctica. Cuando se agota la cuota, el ciclo de reinicio puede ser muy largo.
Este artículo es un intento de sustituir esa función usando Agent Skills locales.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/06/replace-vscode-generate-commit-message-after-copilot-quota/1.png&#34;
	width=&#34;645&#34;
	height=&#34;194&#34;
	srcset=&#34;https://knightli.com/2026/04/06/replace-vscode-generate-commit-message-after-copilot-quota/1_hu_6b81e604b29d8606.png 480w, https://knightli.com/2026/04/06/replace-vscode-generate-commit-message-after-copilot-quota/1_hu_5f11e2ea13cbceb8.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Generar mensaje de commit&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;332&#34;
		data-flex-basis=&#34;797px&#34;
	
&gt;&lt;/p&gt;
&lt;h2 id=&#34;problema-y-objetivo&#34;&gt;Problema y objetivo
&lt;/h2&gt;&lt;p&gt;El objetivo de este artículo es ofrecer una alternativa que se pueda aplicar directamente: usar el skill agent &lt;code&gt;git-commit-push-zh&lt;/code&gt; para completar commits y push estandarizados.&lt;/p&gt;
&lt;h2 id=&#34;alternativa-git-commit-push-zh&#34;&gt;Alternativa: &lt;code&gt;git-commit-push-zh&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;Este skill convierte los &amp;ldquo;cambios actuales&amp;rdquo; en un flujo fijo:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Revisar el estado de los cambios.&lt;/li&gt;
&lt;li&gt;Confirmar la rama actual.&lt;/li&gt;
&lt;li&gt;Añadir los cambios al área de staging.&lt;/li&gt;
&lt;li&gt;Generar un mensaje de commit en chino.&lt;/li&gt;
&lt;li&gt;Ejecutar commit.&lt;/li&gt;
&lt;li&gt;Hacer push a la rama remota.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Los comandos correspondientes son:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git status --short
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git branch --show-current
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git add -A
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git commit -m &lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;lt;中文提交信息&amp;gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git push origin &amp;lt;当前分支&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;convención-recomendada-para-mensajes-de-commit&#34;&gt;Convención recomendada para mensajes de commit
&lt;/h2&gt;&lt;p&gt;Se recomienda usar un formato unificado:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;类型&amp;gt;(&amp;lt;范围&amp;gt;): &amp;lt;中文摘要&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ejemplos de tipo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;feat&lt;/code&gt;: nueva funcionalidad&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fix&lt;/code&gt;: corrección de problema&lt;/li&gt;
&lt;li&gt;&lt;code&gt;docs&lt;/code&gt;: actualización de documentación&lt;/li&gt;
&lt;li&gt;&lt;code&gt;refactor&lt;/code&gt;: refactorización de código&lt;/li&gt;
&lt;li&gt;&lt;code&gt;chore&lt;/code&gt;: cambios de mantenimiento&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ejemplos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;feat(site): 新增全站 head 广告脚本注入&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fix(i18n): 修正 relref 相关文章链接路径&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;chore(content): 合并 AI 工作流分类到 AI工具&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;fallos-habituales&#34;&gt;Fallos habituales
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;nothing to commit&lt;/code&gt;: no hay cambios para commit; basta con detener el push.&lt;/li&gt;
&lt;li&gt;Fallo en &lt;code&gt;push&lt;/code&gt;: revisa primero permisos, estado de la rama remota y conflictos.&lt;/li&gt;
&lt;li&gt;Excepción de SSH/permisos: confirma credenciales y permisos antes de reintentar.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;apéndice-skillmd-original&#34;&gt;Apéndice: &lt;code&gt;SKILL.md&lt;/code&gt; original
&lt;/h2&gt;&lt;p&gt;El siguiente contenido es la documentación original de &lt;code&gt;git-commit-push-zh&lt;/code&gt;, conservada tal cual para facilitar su reutilización y mantenimiento posteriores.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;name: git-commit-push-zh
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;description: 在当前 Git 仓库中将“当前更改”完成一次标准提交流程：检查状态、暂存变更、生成中文提交信息、执行 commit 并 push 到当前分支对应远端。用户提出“提交代码”“提交当前更改”“生成中文提交信息并推送”“git commit push 中文说明”等请求时使用。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gh&#34;&gt;# 中文提交并推送
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;使用此技能将当前仓库改动一次性提交并推送到远端。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 工作流程
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; 查看变更状态：&lt;span class=&#34;sb&#34;&gt;`git status --short`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; 确认当前分支：&lt;span class=&#34;sb&#34;&gt;`git branch --show-current`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; 暂存当前变更：&lt;span class=&#34;sb&#34;&gt;`git add -A`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;4.&lt;/span&gt; 生成中文提交信息（简洁、可检索）。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;5.&lt;/span&gt; 执行提交：&lt;span class=&#34;sb&#34;&gt;`git commit -m &amp;#34;&amp;lt;中文提交信息&amp;gt;&amp;#34;`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;6.&lt;/span&gt; 执行推送：&lt;span class=&#34;sb&#34;&gt;`git push origin &amp;lt;当前分支&amp;gt;`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 提交信息规范（中文）
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; 建议格式：&lt;span class=&#34;sb&#34;&gt;`&amp;lt;类型&amp;gt;(&amp;lt;范围&amp;gt;): &amp;lt;中文摘要&amp;gt;`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; 类型示例：&lt;span class=&#34;sb&#34;&gt;`feat`&lt;/span&gt;、&lt;span class=&#34;sb&#34;&gt;`fix`&lt;/span&gt;、&lt;span class=&#34;sb&#34;&gt;`chore`&lt;/span&gt;、&lt;span class=&#34;sb&#34;&gt;`docs`&lt;/span&gt;、&lt;span class=&#34;sb&#34;&gt;`refactor`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; 摘要要求：准确描述本次改动，不写空话。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;4.&lt;/span&gt; 若仅少量变更，也保持可读性与可检索性。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;示例：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`feat(site): 新增全站 head 广告脚本注入`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`fix(i18n): 修正 relref 相关文章链接路径`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`chore(content): 合并 AI 工作流分类到 AI工具`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 错误处理
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; 若无可提交变更（nothing to commit），明确告知并停止 push。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; 若 push 失败，先回报关键错误（权限、远端不存在、冲突等）。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; 常见 SSH/权限问题可在用户确认后重试高权限环境。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 输出约定
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; 汇报提交哈希、分支名、提交信息。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; 汇报 push 结果（成功或失败原因）。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; 仅在确有失败时提供下一步最小操作建议。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
        </item>
        <item>
        <title>Cómo solucionar problemas de uso elevado de CPU de VS Code causado por extensiones</title>
        <link>https://knightli.com/es/2026/04/01/vscode-extension-cpu-troubleshooting/</link>
        <pubDate>Wed, 01 Apr 2026 00:00:00 +0000</pubDate>
        
        <guid>https://knightli.com/es/2026/04/01/vscode-extension-cpu-troubleshooting/</guid>
        <description>&lt;p&gt;Cuando VS Code de repente se siente lento, el ventilador gira y el uso de la CPU se mantiene alto, la causa más común generalmente no es el editor en sí, sino conflictos de extensiones o un comportamiento anormal de las extensiones.&lt;/p&gt;
&lt;p&gt;Esta guía le brinda un flujo de trabajo directo y práctico para identificar el problema rápidamente.&lt;/p&gt;
&lt;h2 id=&#34;comience-con-el-método-más-rápido-iniciar-la-extensión-en-bisección&#34;&gt;Comience con el método más rápido: iniciar la extensión en bisección
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Start Extension Bisect&lt;/code&gt; utiliza un enfoque de búsqueda binaria:
En cada ronda, VS Code desactiva temporalmente la mitad de tus extensiones y se reinicia. Según si el problema persiste, reduce rápidamente la lista de sospechosos.&lt;/p&gt;
&lt;p&gt;Pasos:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Presione &lt;code&gt;Ctrl+Shift+P&lt;/code&gt; (macOS: &lt;code&gt;Cmd+Shift+P&lt;/code&gt;) para abrir la paleta de comandos.&lt;/li&gt;
&lt;li&gt;Ejecute &lt;code&gt;Iniciar extensión bisect&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Después de cada reinicio, verifique si todavía hay un uso elevado de la CPU y un retraso, luego elija &amp;ldquo;Bien ahora&amp;rdquo; o &amp;ldquo;Esto es malo&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Después de varias rondas, VS Code mostrará las extensiones probablemente problemáticas.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;qué-hacer-después-de-encontrar-al-sospechoso&#34;&gt;Qué hacer después de encontrar al sospechoso
&lt;/h2&gt;&lt;p&gt;Una vez que identifique la extensión, manéjela en este orden:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Actualice la extensión a la última versión.&lt;/li&gt;
&lt;li&gt;Si el problema persiste, desactívelo durante 1 o 2 días y observe.&lt;/li&gt;
&lt;li&gt;Si existen alternativas, cambie a una extensión más ligera.&lt;/li&gt;
&lt;li&gt;Si debe conservarlo, revise la configuración avanzada y desactive las funciones innecesarias de análisis, indexación o visualización de archivos en tiempo real.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;dos-amplificadores-comunes-que-quizás-pases-por-alto&#34;&gt;Dos &amp;ldquo;amplificadores&amp;rdquo; comunes que quizás pases por alto
&lt;/h2&gt;&lt;p&gt;Incluso si una extensión es la causa principal, estas configuraciones pueden amplificar la carga de la CPU:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;El alcance de la búsqueda es demasiado amplio&lt;br&gt;
Si los resultados de la compilación, las carpetas de dependencia y los registros se incluyen en la búsqueda global, las extensiones y los indexadores pueden permanecer bajo una carga pesada y continua.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;La visualización de archivos incluye carpetas o enlaces simbólicos enormes&lt;br&gt;
Los enlaces simbólicos, los directorios de caché y las carpetas generadas pueden desencadenar una gran cantidad de eventos de archivos y forzar que las extensiones se reprocesen repetidamente.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Puede recortar el alcance en &lt;code&gt;settings.json&lt;/code&gt;, por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;search.exclude&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;**/node_modules&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;**/dist&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;**/build&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;files.watcherExclude&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;**/.git/objects/**&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;**/node_modules/**&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;**/dist/**&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;consejo-post-mortem&#34;&gt;Consejo post mortem
&lt;/h2&gt;&lt;p&gt;Después de aislar el problema, registre tres cosas: nombre de la extensión, escenario desencadenante y solución final.&lt;br&gt;
Esa nota le ahorrará tiempo cuando migre su entorno o reconstruya su máquina más adelante.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Para un uso elevado de CPU de VS Code, la ruta más eficaz es utilizar primero &amp;ldquo;Iniciar extensión Bisect&amp;rdquo; y luego ajustar el alcance de búsqueda y observación de archivos.&lt;br&gt;
Localice primero, optimice en segundo lugar. Es más rápido y confiable que deshabilitar aleatoriamente muchas extensiones.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Cómo utilizar Codex en VS Code (desde la configuración hasta un flujo de trabajo eficiente en el mundo real)</title>
        <link>https://knightli.com/es/2026/03/20/how-to-use-codex-in-vs-code/</link>
        <pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate>
        
        <guid>https://knightli.com/es/2026/03/20/how-to-use-codex-in-vs-code/</guid>
        <description>&lt;p&gt;Codex puede ayudarlo a escribir código, corregir errores, comprender proyectos y ejecutar comandos directamente desde la barra lateral de VS Code.&lt;/p&gt;
&lt;h2 id=&#34;1-preparación&#34;&gt;1. Preparación
&lt;/h2&gt;&lt;p&gt;Antes de comenzar, asegúrese de:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;VS Code se actualiza a una versión estable reciente.&lt;/li&gt;
&lt;li&gt;Puedes acceder a los servicios de OpenAI con normalidad.&lt;/li&gt;
&lt;li&gt;Su proyecto se abre localmente (preferiblemente en un repositorio Git).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;2-instale-la-extensión&#34;&gt;2. Instale la extensión
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;Abra el panel Extensiones de VS Code.&lt;/li&gt;
&lt;li&gt;Busque e instale: &lt;code&gt;Codex - Codex - Agente de codificación de OpenAI&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Complete el flujo de inicio de sesión/autorización.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;3-abra-la-barra-lateral-del-códice&#34;&gt;3. Abra la barra lateral del Códice
&lt;/h2&gt;&lt;p&gt;Puedes abrirlo de cualquier forma:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Haga clic en &amp;ldquo;Abrir barra lateral del Codex&amp;rdquo; en el área superior derecha del editor.&lt;/li&gt;
&lt;li&gt;Utilice la paleta de comandos (&lt;code&gt;Ctrl + Shift + P&lt;/code&gt;), busque &lt;code&gt;Codex&lt;/code&gt; y ábralo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Después de abrir, Codex lee el contexto del espacio de trabajo actual y está listo para conversar.&lt;/p&gt;
&lt;h2 id=&#34;4-patrones-de-uso-comunes&#34;&gt;4. Patrones de uso comunes
&lt;/h2&gt;&lt;h3 id=&#34;41-pídale-que-explique-el-código&#34;&gt;4.1 Pídale que explique el código
&lt;/h3&gt;&lt;p&gt;Mensaje de ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Please explain the core logic of this file,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;and point out the 3 areas most likely to fail.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Excelente para comprender rápidamente el código heredado.&lt;/p&gt;
&lt;h3 id=&#34;42-pídale-que-implemente-funciones&#34;&gt;4.2 Pídale que implemente funciones
&lt;/h3&gt;&lt;p&gt;Mensaje de ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Add a /healthz endpoint to the existing API.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;It should return app version and database connectivity status,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;and include basic tests.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si establece claramente las restricciones y los criterios de aceptación, la calidad del resultado suele ser mucho más estable.&lt;/p&gt;
&lt;h3 id=&#34;43-pídale-que-solucione-problemas&#34;&gt;4.3 Pídale que solucione problemas
&lt;/h3&gt;&lt;p&gt;Mensaje de ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;This endpoint intermittently returns 500 under concurrency.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;First identify the root cause, then propose a minimal-change fix,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;and finally list regression test points.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&amp;ldquo;Diagnosticar primero, luego corregir&amp;rdquo; ayuda a reducir la refactorización excesiva accidental.&lt;/p&gt;
&lt;h2 id=&#34;5-plantilla-de-aviso-de-alta-calidad&#34;&gt;5. Plantilla de aviso de alta calidad
&lt;/h2&gt;&lt;p&gt;Puedes reutilizar esta plantilla directamente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Background: This is a &amp;lt;tech stack&amp;gt; project. Current goal: &amp;lt;goal&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Constraints: Do not modify &amp;lt;module/interface&amp;gt;; keep compatibility with &amp;lt;version/platform&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Output:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;1) File list to change
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2) Key code explanation
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;3) Validation steps
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;4) Risks and rollback plan
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto es especialmente útil para proyectos grandes y colaboración en equipo.&lt;/p&gt;
&lt;h2 id=&#34;6-preguntas-frecuentes&#34;&gt;6. Preguntas frecuentes
&lt;/h2&gt;&lt;h3 id=&#34;61-acerca-de-la-cuota-gratuita&#34;&gt;6.1 Acerca de la cuota gratuita
&lt;/h3&gt;&lt;p&gt;Escriba &lt;code&gt;\&lt;/code&gt; en el cuadro de entrada, luego elija el estado para ver información relacionada con la cuota/tiempo de reinicio.&lt;/p&gt;
&lt;h3 id=&#34;62-los-cambios-no-son-los-esperados&#34;&gt;6.2 Los cambios no son los esperados
&lt;/h3&gt;&lt;p&gt;Una vez generados los cambios, abra el panel de revisión para inspeccionar los detalles.
Si no está satisfecho, utilice deshacer/revertir.
Puede dividir requisitos grandes en pasos más pequeños y ejecutarlos de forma incremental.
Utilice Git y mantenga pequeñas confirmaciones para una reversión más sencilla.&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
