{"id":32,"date":"2008-10-19T21:31:06","date_gmt":"2008-10-19T19:31:06","guid":{"rendered":"http:\/\/www.blackhats.es\/wordpress\/?p=32"},"modified":"2022-08-20T18:26:24","modified_gmt":"2022-08-20T16:26:24","slug":"tabulaciones-y-espacios-en-emacs","status":"publish","type":"post","link":"https:\/\/www.blackhats.es\/wordpress\/?p=32","title":{"rendered":"Identaci&oacute;n: Tabulaciones y espacios en emacs"},"content":{"rendered":"<p>Explicaremos en la primera parte de este art\u00edculo el comportamiento de las tabulaciones en emacs, problemas t\u00edpicos as\u00ed como sus soluciones hasta conseguir un control total del entorno.<\/p>\n<p>En emacs Antes que nada decir que por defecto en emacs una tabulaci\u00f3n (a partir de ahora lo llamaremos <strong>TAB<\/strong>) son tomados como <strong>8<\/strong> <strong>espacios<\/strong>, la forma de representarlo. Por defecto emacs trabaja en modo <strong>fundamental<\/strong>, el cual es un modo generalizado para la mayor\u00eda de tareas. Sin embargo, para trabajar en texto plano de forma espec\u00edfica podemos emplear <strong>text-mode<\/strong>.<\/p>\n<p>En <strong>text-mode<\/strong> cuando escribimos texto, si presionamos <strong>intro <\/strong>para ir a la siguiente l\u00ednea y pulsamos acto seguido tabulador, la tabulaci\u00f3n no ser\u00e1 tomada como <strong>8 espacios<\/strong> sino que se posicionar\u00e1 justo por debajo del primer car\u00e1cter de la segunda palabra de la l\u00ednea anterior, y as\u00ed tantas veces como <strong>TAB <\/strong>pulsemos, o dicho de otra manera el <strong>TAB <\/strong>se alinear\u00e1 con la l\u00ednea anterior.<\/p>\n<p>Es posible editar las posiciones para cada tabulaci\u00f3n mediante <strong>M-x edit-tab-stops<\/strong>, esto nos abrir\u00e1:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"vertical-align: middle;\" src=\"http:\/\/www.blackhats.es\/emacs\/emacstabs.png\" alt=\"emacstabs\" width=\"663\" height=\"67\" \/><\/p>\n<p>B\u00e1sicamente de estas 3 l\u00edneas, la primera significa en que posici\u00f3n parar\u00eda cada vez que pulsasemos una tabulaci\u00f3n. La segunda l\u00ednea indica el n\u00famero de decenas de car\u00e1cteres, mientras que la tercera indica el n\u00famero de car\u00e1cteres. Podemos cambiar el comportamiento de las tabulaciones desde aqu\u00ed.<\/p>\n<p>Para a\u00f1adir una nueva tabulaci\u00f3n nos desplazariamos con <strong>C-f<\/strong> o <strong>C-b<\/strong> hasta la columna deseada, y luego presionamos <strong>:<\/strong>. Para eliminar una tabulaci\u00f3n nos desplazariamos de la misma forma con <strong>C-f<\/strong> o <strong>C-b<\/strong> hasta la columna deseada donde se encuentre una tabulaci\u00f3n y presionamos <strong>DEL<\/strong>.<\/p>\n<p>Fij\u00e9monos que el buffer se encuentra en modo <strong>Ovwrt<\/strong> (sobreescritura) cuando realizamos esta acci\u00f3n de modificar las tabulaciones, y dichos cambios s\u00f3lo ser\u00e1n aplicados sobre el buffer actual. Una vez hayamos terminado de modificarlos podemos guardar dichos cambios y salir presionando <strong>C-c C-c<\/strong>. Sin embargo si queremos ignorar los cambios podemos simplemete eliminar el buffer mediante <strong>C-x k<\/strong>.<\/p>\n<p>Debemos tener en cuenta que hasta ahora hemos trabajado con tabulaciones no rigidas que se llaman, es decir, que dependia de las l\u00edneas contiguas para realizar la tabulaci\u00f3n y rara vez se cumplian los <strong>8 car\u00e1cteres<\/strong>. Sin embargo existe una forma de trabajar con tabulaciones r\u00edgidas para ello debemos utilizar <strong>C-q TAB<\/strong> en lugar de <strong>TAB<\/strong>, que se traduce como el car\u00e1cter <strong>^I<\/strong>. Para cambiar el ancho del <strong>TAB <\/strong>r\u00edgido podemos editar nuestro <strong>.emacs<\/strong> y poner por ejemplo:<\/p>\n<p style=\"padding-left: 30px;\"><em>(setq-default tab-width 4)<\/em><\/p>\n<p>Si queremos que emacs inserte espacios en lugar de <strong>TAB <\/strong>podemos a\u00f1adir en nuestro <strong>.emacs<\/strong>:<\/p>\n<p style=\"padding-left: 30px;\"><em>(setq-default indent-tabs-mode nil)<\/em><\/p>\n<p>Para eliminar <strong>TABs <\/strong>creados anteriormente a esta regla, pero que a\u00fan persisten ah\u00ed podemos utilizar <strong>M-x untabify<\/strong>, y convertir\u00e1 todos los <strong>TABs <\/strong>del documento actual en blancos. Si queremos realizar el paso inverso de convertir blancos en <strong>TABs <\/strong>podemos emplear <strong>M-x tabify<\/strong>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Explicaremos en la primera parte de este art\u00edculo el comportamiento de las tabulaciones en emacs, problemas t\u00edpicos as\u00ed como sus soluciones hasta conseguir un control total del entorno. En emacs Antes que nada decir que por defecto en emacs una tabulaci\u00f3n (a partir de ahora lo llamaremos TAB) son tomados como 8 espacios, la forma [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[41],"class_list":["post-32","post","type-post","status-publish","format-standard","hentry","category-basic","tag-emacs-tabulaciones-espacios-blancos"],"_links":{"self":[{"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/32"}],"collection":[{"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=32"}],"version-history":[{"count":1,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/32\/revisions"}],"predecessor-version":[{"id":799,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/32\/revisions\/799"}],"wp:attachment":[{"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=32"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=32"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=32"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}