{"id":245,"date":"2022-09-03T23:23:54","date_gmt":"2022-09-03T22:23:54","guid":{"rendered":"https:\/\/specnext.dev\/es\/?p=245"},"modified":"2022-09-03T23:23:54","modified_gmt":"2022-09-03T22:23:54","slug":"compilar-y-ejecutar-con-f5-en-visual-studio-code","status":"publish","type":"post","link":"https:\/\/specnext.dev\/es\/2022\/09\/03\/compilar-y-ejecutar-con-f5-en-visual-studio-code\/","title":{"rendered":"Compilar y ejecutar con F5 en Visual Studio Code"},"content":{"rendered":"<p>En este art\u00edculo veremos algunos truquillos para personalizar Visual Studio Code con el fin de que programar para Next sea un poco m\u00e1s sencilla, aunque tambi\u00e9n se puede aplicar a los proyectos para ZX Spectrum \u201ccl\u00e1sico\u201d.<\/p>\n<h1>Antes de empezar<\/h1>\n<p>En este art\u00edculo asumo que ya tienes instalado Visual Studio Code y NextBuild, si no es as\u00ed te recomiendo que te mires antes el art\u00edculo \u201cPreparando el ambiente para programar para Next con Boriel ZX Basic y NextBuild\u201d (<a href=\"https:\/\/specnext.dev\/es\/2022\/07\/28\/preparando-el-ambiente-para-programar-para-next-con-boriel-zx-basic-y-nextbuild\/\">https:\/\/specnext.dev\/es\/2022\/07\/28\/preparando-el-ambiente-para-programar-para-next-con-boriel-zx-basic-y-nextbuild\/<\/a>).<\/p>\n<h1>Compilar y ejecutar con F5<\/h1>\n<p>Para compilar y ejecutar nuestros programas debemos usar la opci\u00f3n \u201cTerminal -&gt; Ejecutar tarea\u201d y seleccionar \u201cRun in CSpect\u201d, ya que si pulsamos F5 es probable que nos encontremos con el siguiente error:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-246 size-full\" src=\"https:\/\/specnext.dev\/es\/wp-content\/uploads\/sites\/2\/2022\/09\/10-ErrorNextBuild.png\" alt=\"\" width=\"570\" height=\"147\" srcset=\"https:\/\/specnext.dev\/es\/wp-content\/uploads\/sites\/2\/2022\/09\/10-ErrorNextBuild.png 570w, https:\/\/specnext.dev\/es\/wp-content\/uploads\/sites\/2\/2022\/09\/10-ErrorNextBuild-300x77.png 300w\" sizes=\"auto, (max-width: 570px) 100vw, 570px\" \/>La soluci\u00f3n no es demasiado sencilla, pero tampoco es complicada siguiendo estos pasos:<\/p>\n<ol>\n<li>Con nuestro programa .bas abierto en VSCode&#8230; Os recomiendo hacer la prueba con un ejemplo de la carpeta \u201cSources\u201d de NextBuild, ya que esta tiene configurada la tarea de compilaci\u00f3n.<\/li>\n<li>Pulsamos F1 y tecleamos \u201cteclado json\u201d<\/li>\n<li>Seleccionamos \u201cPreferencias: Abrir m\u00e9todos abreviados de teclado (JSON)\u201d<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-250 size-full\" src=\"https:\/\/specnext.dev\/es\/wp-content\/uploads\/sites\/2\/2022\/09\/10-Prfeferencias-de-teclado.png\" alt=\"\" width=\"607\" height=\"130\" srcset=\"https:\/\/specnext.dev\/es\/wp-content\/uploads\/sites\/2\/2022\/09\/10-Prfeferencias-de-teclado.png 607w, https:\/\/specnext.dev\/es\/wp-content\/uploads\/sites\/2\/2022\/09\/10-Prfeferencias-de-teclado-300x64.png 300w\" sizes=\"auto, (max-width: 607px) 100vw, 607px\" \/><\/li>\n<li>Se abrir\u00e1 el fichero \u201ckeybindings.json\u201d, que contiene las definiciones de teclado personalizadas. En una instalaci\u00f3n vac\u00eda deber\u00eda aparecer en \u201cblanco\u201d, tal como se muestra en la imagen:<\/li>\n<\/ol>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-247 size-full\" src=\"https:\/\/specnext.dev\/es\/wp-content\/uploads\/sites\/2\/2022\/09\/10-Keybindings1.png\" alt=\"\" width=\"946\" height=\"159\" srcset=\"https:\/\/specnext.dev\/es\/wp-content\/uploads\/sites\/2\/2022\/09\/10-Keybindings1.png 946w, https:\/\/specnext.dev\/es\/wp-content\/uploads\/sites\/2\/2022\/09\/10-Keybindings1-300x50.png 300w, https:\/\/specnext.dev\/es\/wp-content\/uploads\/sites\/2\/2022\/09\/10-Keybindings1-768x129.png 768w\" sizes=\"auto, (max-width: 946px) 100vw, 946px\" \/><\/p>\n<h1>Archivo sin definiciones<\/h1>\n<p>Si el archivo est\u00e1 en \u201cblanco\u201d como en la imagen anterior, debemos dejarlo como en el siguiente listado:<\/p>\n<p><code>\/\/ Coloque sus atajos de teclado en este archivo para sobreescribir los valores predeterminados<\/code><br \/>\n<code>[<\/code><br \/>\n<code>{<\/code><br \/>\n<code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"key\": \"f5\",<\/code><br \/>\n<code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"command\": \"-workbench.action.debug.start\",<\/code><br \/>\n<code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"when\": \"debuggersAvailable &amp;&amp; !inDebugMode\"<\/code><br \/>\n<code>\u00a0\u00a0\u00a0 },<\/code><br \/>\n<code>\u00a0\u00a0\u00a0 {<\/code><br \/>\n<code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"key\": \"f5\",<\/code><br \/>\n<code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"command\": \"-workbench.action.debug.continue\",<\/code><br \/>\n<code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"when\": \"inDebugMode\"<\/code><br \/>\n<code>\u00a0\u00a0\u00a0 },<\/code><br \/>\n<code>\u00a0\u00a0\u00a0 {<\/code><br \/>\n<code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"key\": \"f5\",<\/code><br \/>\n<code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"command\": \"workbench.action.tasks.build\"<\/code><br \/>\n<code>\u00a0\u00a0\u00a0 }<\/code><br \/>\n<code>]<\/code><\/p>\n<ol start=\"5\">\n<li>Guardamos el fichero<\/li>\n<li>Reiniciamos Visual Studio Code<\/li>\n<li>Abrimos un archivo .bas de la carpeta Sources de NextBuild<\/li>\n<li>Pulsamos F5 para que se compile y ejecute en el emulador<\/li>\n<\/ol>\n<h1>Archivo con definiciones<\/h1>\n<p>En el caso de que el archivo no est\u00e9 vac\u00edo, por ejemplo:<\/p>\n<p><code>\/\/ Place your key bindings in this file to override the defaultsauto[]<\/code><br \/>\n<code>[<\/code><br \/>\n<code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 {<\/code><br \/>\n<code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"key\": \"ctrl+shift+b\",<\/code><br \/>\n<code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"command\": \"-workbench.action.tasks.build\"<\/code><br \/>\n<code>\u00a0\u00a0\u00a0 },<\/code><br \/>\n<code>\u00a0\u00a0\u00a0 {<\/code><br \/>\n<code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"key\": \"f6\",<\/code><br \/>\n<code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"command\": \"-workbench.action.debug.pause\",<\/code><br \/>\n<code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"when\": \"debugState == 'running'\"<\/code><br \/>\n<code>\u00a0\u00a0\u00a0 },<\/code><br \/>\n<code>\u00a0\u00a0\u00a0 {<\/code><br \/>\n<code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"key\": \"f6\",<\/code><br \/>\n<code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"command\": \"-workbench.action.focusNextPart\"<\/code><br \/>\n<code>\u00a0\u00a0\u00a0 },<\/code><br \/>\n<code>\u00a0\u00a0\u00a0 {<\/code><br \/>\n<code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"key\": \"f6\",<\/code><br \/>\n<code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"command\": \"bookmarks.toggle\",<\/code><br \/>\n<code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"when\": \"editorTextFocus\"<\/code><br \/>\n<code>\u00a0\u00a0\u00a0 }<\/code><br \/>\n<code>]<\/code><\/p>\n<p>&nbsp;<\/p>\n<p>En este caso, a\u00f1adiremos las definiciones justo despu\u00e9s del primer corchete \u201c[\u201c y terminaremos con una coma \u201c,\u201d:<\/p>\n<p><span style=\"color: #0000ff\"><code>\/\/ Place your key bindings in this file to override the defaultsauto[]<\/code><\/span><br \/>\n<span style=\"color: #0000ff\"><code>[<\/code><\/span><br \/>\n<code>\u00a0\u00a0\u00a0 {<\/code><br \/>\n<code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"key\": \"f5\",<\/code><br \/>\n<code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"command\": \"-workbench.action.debug.start\",<\/code><br \/>\n<code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"when\": \"debuggersAvailable &amp;&amp; !inDebugMode\"<\/code><br \/>\n<code>\u00a0\u00a0\u00a0 },<\/code><br \/>\n<code>\u00a0\u00a0\u00a0 {<\/code><br \/>\n<code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"key\": \"f5\",<\/code><br \/>\n<code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"command\": \"-workbench.action.debug.continue\",<\/code><br \/>\n<code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"when\": \"inDebugMode\"<\/code><br \/>\n<code>\u00a0\u00a0\u00a0 },<\/code><br \/>\n<code>\u00a0\u00a0\u00a0 {<\/code><br \/>\n<code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"key\": \"f5\",<\/code><br \/>\n<code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"command\": \"workbench.action.tasks.build\"<\/code><br \/>\n<code>\u00a0\u00a0\u00a0 },<\/code><br \/>\n<code>\u00a0\u00a0\u00a0 <span style=\"color: #0000ff\">{<\/span><\/code><br \/>\n<span style=\"color: #0000ff\"><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff\"> \"key\": \"ctrl+shift+b\",<\/span><\/code><\/span><br \/>\n<span style=\"color: #0000ff\"><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff\"> \"command\": \"-workbench.action.tasks.build\"<\/span><\/code><\/span><br \/>\n<span style=\"color: #0000ff\"><code>\u00a0\u00a0\u00a0<span style=\"color: #0000ff\"> },<\/span><\/code><\/span><br \/>\n<span style=\"color: #0000ff\"><code>\u00a0\u00a0\u00a0<span style=\"color: #0000ff\"> {<\/span><\/code><\/span><br \/>\n<span style=\"color: #0000ff\"><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: #0000ff\">\"key\": \"f6\",<\/span><\/code><\/span><br \/>\n<span style=\"color: #0000ff\"><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: #0000ff\">\"command\": \"-workbench.action.debug.pause\",<\/span><\/code><\/span><br \/>\n<span style=\"color: #0000ff\"><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff\"> \"when\": \"debugState == 'running'\"<\/span><\/code><\/span><br \/>\n<span style=\"color: #0000ff\"><code>\u00a0\u00a0\u00a0 <span style=\"color: #0000ff\">},<\/span><\/code><\/span><br \/>\n<span style=\"color: #0000ff\"><code>\u00a0\u00a0\u00a0 <span style=\"color: #0000ff\">{<\/span><\/code><\/span><br \/>\n<span style=\"color: #0000ff\"><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff\"> \"key\": \"f6\",<\/span><\/code><\/span><br \/>\n<span style=\"color: #0000ff\"><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff\"> \"command\": \"-workbench.action.focusNextPart\"<\/span><\/code><\/span><br \/>\n<span style=\"color: #0000ff\"><code>\u00a0\u00a0\u00a0<span style=\"color: #0000ff\"> },<\/span><\/code><\/span><br \/>\n<span style=\"color: #0000ff\"><code>\u00a0\u00a0\u00a0<span style=\"color: #0000ff\"> {<\/span><\/code><\/span><br \/>\n<span style=\"color: #0000ff\"><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff\"> \"key\": \"f6\",<\/span><\/code><\/span><br \/>\n<span style=\"color: #0000ff\"><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff\"> \"command\": \"bookmarks.toggle\",<\/span><\/code><\/span><br \/>\n<span style=\"color: #0000ff\"><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff\"> \"when\": \"editorTextFocus\"<\/span><\/code><\/span><br \/>\n<span style=\"color: #0000ff\"><code>\u00a0\u00a0\u00a0<span style=\"color: #0000ff\"> }<\/span><\/code><\/span><br \/>\n<span style=\"color: #0000ff\"><code>]<\/code><\/span><\/p>\n<ol>\n<li>Guardamos el fichero<\/li>\n<li>Reiniciamos Visual Studio Code<\/li>\n<li>Abrimos un archivo .bas de la carpeta Sources de NextBuild<\/li>\n<li>Pulsamos F5 para que se compile y ejecute en el emulador<\/li>\n<\/ol>\n<h1>\u00bfQu\u00e9 puede salir mal?<\/h1>\n<p>Pues la verdad es que muchas cosas pueden salir mal. As\u00ed que si tienes dudas lo mejor es que pidas ayuda:<\/p>\n<ul>\n<li>Canal de Telegram: Boriel ZX Basic<\/li>\n<li>Twitter de Duefectu: @Duefectu <a href=\"https:\/\/twitter.com\/Duefectu\">https:\/\/twitter.com\/Duefectu<\/a><\/li>\n<li>Foro de Boriel: <a href=\"https:\/\/www.boriel.com\/forum\/index.php\">https:\/\/www.boriel.com\/forum\/index.php<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En este art\u00edculo veremos algunos truquillos para personalizar Visual Studio Code con el fin de que programar para Next sea un poco m\u00e1s sencilla, aunque tambi\u00e9n se puede aplicar a los proyectos para ZX Spectrum \u201ccl\u00e1sico\u201d. Antes de empezar En este art\u00edculo asumo que ya tienes instalado Visual Studio Code y NextBuild, si no es [&hellip;]<\/p>\n","protected":false},"author":16,"featured_media":246,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[13,14],"tags":[7,10,15,9,19],"class_list":["post-245","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-boriel-zx-basic","category-herramientas","tag-boriel-zx-basic","tag-compiladores","tag-herramientas","tag-nextbuild","tag-visual-studio-code"],"jetpack_featured_media_url":"https:\/\/specnext.dev\/es\/wp-content\/uploads\/sites\/2\/2022\/09\/10-ErrorNextBuild.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/specnext.dev\/es\/wp-json\/wp\/v2\/posts\/245","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/specnext.dev\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/specnext.dev\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/specnext.dev\/es\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/specnext.dev\/es\/wp-json\/wp\/v2\/comments?post=245"}],"version-history":[{"count":3,"href":"https:\/\/specnext.dev\/es\/wp-json\/wp\/v2\/posts\/245\/revisions"}],"predecessor-version":[{"id":251,"href":"https:\/\/specnext.dev\/es\/wp-json\/wp\/v2\/posts\/245\/revisions\/251"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/specnext.dev\/es\/wp-json\/wp\/v2\/media\/246"}],"wp:attachment":[{"href":"https:\/\/specnext.dev\/es\/wp-json\/wp\/v2\/media?parent=245"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/specnext.dev\/es\/wp-json\/wp\/v2\/categories?post=245"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/specnext.dev\/es\/wp-json\/wp\/v2\/tags?post=245"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}