{"id":508,"date":"2011-12-07T12:43:00","date_gmt":"2011-12-07T17:43:00","guid":{"rendered":"http:\/\/www.latindevelopers.com\/ivancp\/?p=508"},"modified":"2011-12-07T17:04:27","modified_gmt":"2011-12-07T22:04:27","slug":"eliminar-numeros-de-linea-con-vim","status":"publish","type":"post","link":"https:\/\/www.latindevelopers.com\/ivancp\/2011\/12\/eliminar-numeros-de-linea-con-vim\/","title":{"rendered":"Eliminar numeros de linea con Vim"},"content":{"rendered":"<p><a href=\"http:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/vim-logo.jpeg\"><img data-attachment-id=\"313\" data-permalink=\"https:\/\/www.latindevelopers.com\/ivancp\/2011\/10\/mi-archivo-vimrc\/vim-logo\/\" data-orig-file=\"https:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/vim-logo.jpeg\" data-orig-size=\"116,116\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"Vim Logo\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/vim-logo.jpeg\" data-large-file=\"https:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/vim-logo.jpeg\" loading=\"lazy\" class=\"alignright size-full wp-image-313\" title=\"Vim Logo\" src=\"http:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/vim-logo.jpeg\" alt=\"\" width=\"116\" height=\"116\" \/><\/a>\u00bfQui\u00e9n no ha buscado c\u00f3digo fuente en la red? Algunos sitios comparten segmentos de codigo fuente <strong>incluyendo el numero de l\u00ednea<\/strong>, s\u00e9 que lo hacen intencionalmente por que disfruntan sabiendo que debemos darnos el trabajo de eliminar las numeraciones de linea para poder compilar el codigo brindado, ademas de fijarnos en otros detalles.<\/p>\n<p>Aqui una muestra cl\u00e1sica de un copy paste desde una pagina web hacia Vim (u otro editor):<\/p>\n<p><a href=\"http:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/vim-code-from-web.png\"><img data-attachment-id=\"509\" data-permalink=\"https:\/\/www.latindevelopers.com\/ivancp\/2011\/12\/eliminar-numeros-de-linea-con-vim\/vim-code-from-web\/\" data-orig-file=\"https:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/vim-code-from-web.png\" data-orig-size=\"810,544\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"Codigo fuente con numeros de linea\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/vim-code-from-web-300x201.png\" data-large-file=\"https:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/vim-code-from-web.png\" loading=\"lazy\" class=\"alignnone size-Big-Preview wp-image-509\" title=\"Codigo fuente con numeros de linea\" src=\"http:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/vim-code-from-web-446x300.png\" alt=\"Codigo fuente con numeros de linea\" width=\"446\" height=\"300\" srcset=\"https:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/vim-code-from-web-446x300.png 446w, https:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/vim-code-from-web-300x201.png 300w, https:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/vim-code-from-web.png 810w\" sizes=\"(max-width: 446px) 100vw, 446px\" \/><\/a><\/p>\n<p>Para un segmento de codigo de unas cuantas lineas no hay ningun problema, pero si se tratan de cientos de lineas, nos tomar\u00eda varios minutos&#8230; me da pereza de solo pensarlo.<\/p>\n<p><span style=\"color: #0000ff;\"><strong>Solucion r\u00e1pida<\/strong><\/span>: <a href=\"http:\/\/www.vim.org\" target=\"_blank\">Vim<\/a> nos ofrece una manera facil de reemplazar texto usando <a href=\"http:\/\/vimregex.com\/\" target=\"_blank\">expresiones regulares<\/a>. Para este caso es muy f\u00e1cil armar una expresi\u00f3n que reconozca:<\/p>\n<ol>\n<li>Espacios en blanco al inicio <strong>^\\s*<\/strong><\/li>\n<li>Al menos un digito (numero de l\u00ednea) <strong>[0-9]\\+<\/strong><\/li>\n<li>Unos espacios mas, 0 \u00f3 3 espacios. <strong>\\s\\{0,3}<\/strong><\/li>\n<\/ol>\n<p>La expresi\u00f3n regular quedar\u00eda as\u00ed: <strong>^\\s*[0-9]\\+\\s\\{0,3}<\/strong>, luego aplicamos la busqueda y reemplazo en todo el documento con el siguiente comando:\u00a0 <strong><br \/>\n:%s\/^\\s*[0-9]\\+\\s\\{0,3}\/\/g <\/strong><br \/>\nel resultado es el siguiente:<\/p>\n<p><a href=\"http:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/vim-after-grep.png\"><img data-attachment-id=\"510\" data-permalink=\"https:\/\/www.latindevelopers.com\/ivancp\/2011\/12\/eliminar-numeros-de-linea-con-vim\/vim-after-grep\/\" data-orig-file=\"https:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/vim-after-grep.png\" data-orig-size=\"737,490\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"VIM: Despues de aplicar el reemplazo grep\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/vim-after-grep-300x199.png\" data-large-file=\"https:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/vim-after-grep.png\" loading=\"lazy\" class=\"alignnone size-Big-Preview wp-image-510\" title=\"VIM: Despues de aplicar el reemplazo grep\" src=\"http:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/vim-after-grep-450x300.png\" alt=\"VIM: Despues de aplicar el reemplazo grep\" width=\"450\" height=\"300\" srcset=\"https:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/vim-after-grep-450x300.png 450w, https:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/vim-after-grep-300x199.png 300w, https:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/vim-after-grep-451x300.png 451w, https:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/vim-after-grep.png 737w\" sizes=\"(max-width: 450px) 100vw, 450px\" \/><\/a><\/p>\n<p>Las expresiones regulares son mucho mas poderosas, este es s\u00f3lo un caso trivial que nos hace ganar un poco mas de tiempo.<\/p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing\"><h3 class=\"sd-title\">Compartelo:<\/h3><div class=\"sd-content\"><ul><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-508\" class=\"share-facebook sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2011\/12\/eliminar-numeros-de-linea-con-vim\/?share=facebook\" target=\"_blank\" title=\"Haz clic para compartir en Facebook\"><span>Facebook<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-508\" class=\"share-twitter sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2011\/12\/eliminar-numeros-de-linea-con-vim\/?share=twitter\" target=\"_blank\" title=\"Haz clic para compartir en Twitter\"><span>Twitter<\/span><\/a><\/li><li><a href=\"#\" class=\"sharing-anchor sd-button share-more\"><span>M\u00e1s<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><div class=\"sharing-hidden\"><div class=\"inner\" style=\"display: none;\"><ul><li class=\"share-email\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-email sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2011\/12\/eliminar-numeros-de-linea-con-vim\/?share=email\" target=\"_blank\" title=\"Haz clic para enviar por correo electr\u00f3nico a un amigo\"><span>Correo electr\u00f3nico<\/span><\/a><\/li><li class=\"share-print\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-print sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2011\/12\/eliminar-numeros-de-linea-con-vim\/\" target=\"_blank\" title=\"Haz clic para imprimir\"><span>Imprimir<\/span><\/a><\/li><li class=\"share-end\"><\/li><li class=\"share-linkedin\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-linkedin-508\" class=\"share-linkedin sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2011\/12\/eliminar-numeros-de-linea-con-vim\/?share=linkedin\" target=\"_blank\" title=\"Haz clic para compartir en LinkedIn\"><span>LinkedIn<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>\u00bfQui\u00e9n no ha buscado c\u00f3digo fuente en la red? Algunos sitios comparten segmentos de codigo fuente incluyendo el numero de l\u00ednea, s\u00e9 que lo hacen intencionalmente por que disfruntan sabiendo que debemos darnos el trabajo de eliminar las numeraciones de &hellip; <a href=\"https:\/\/www.latindevelopers.com\/ivancp\/2011\/12\/eliminar-numeros-de-linea-con-vim\/\">Sigue leyendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing\"><h3 class=\"sd-title\">Compartelo:<\/h3><div class=\"sd-content\"><ul><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-508\" class=\"share-facebook sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2011\/12\/eliminar-numeros-de-linea-con-vim\/?share=facebook\" target=\"_blank\" title=\"Haz clic para compartir en Facebook\"><span>Facebook<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-508\" class=\"share-twitter sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2011\/12\/eliminar-numeros-de-linea-con-vim\/?share=twitter\" target=\"_blank\" title=\"Haz clic para compartir en Twitter\"><span>Twitter<\/span><\/a><\/li><li><a href=\"#\" class=\"sharing-anchor sd-button share-more\"><span>M\u00e1s<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><div class=\"sharing-hidden\"><div class=\"inner\" style=\"display: none;\"><ul><li class=\"share-email\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-email sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2011\/12\/eliminar-numeros-de-linea-con-vim\/?share=email\" target=\"_blank\" title=\"Haz clic para enviar por correo electr\u00f3nico a un amigo\"><span>Correo electr\u00f3nico<\/span><\/a><\/li><li class=\"share-print\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-print sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2011\/12\/eliminar-numeros-de-linea-con-vim\/\" target=\"_blank\" title=\"Haz clic para imprimir\"><span>Imprimir<\/span><\/a><\/li><li class=\"share-end\"><\/li><li class=\"share-linkedin\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-linkedin-508\" class=\"share-linkedin sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2011\/12\/eliminar-numeros-de-linea-con-vim\/?share=linkedin\" target=\"_blank\" title=\"Haz clic para compartir en LinkedIn\"><span>LinkedIn<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div><\/div><\/div>","protected":false},"author":1,"featured_media":509,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":""},"categories":[4],"tags":[17,36,40],"jetpack_featured_media_url":"https:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/vim-code-from-web.png","jetpack_shortlink":"https:\/\/wp.me\/p1tEO5-8c","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/posts\/508"}],"collection":[{"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/comments?post=508"}],"version-history":[{"count":5,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/posts\/508\/revisions"}],"predecessor-version":[{"id":515,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/posts\/508\/revisions\/515"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/media\/509"}],"wp:attachment":[{"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/media?parent=508"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/categories?post=508"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/tags?post=508"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}