{"id":237,"date":"2014-03-24T22:49:29","date_gmt":"2014-03-24T20:49:29","guid":{"rendered":"http:\/\/www.blackhats.es\/wordpress\/?p=237"},"modified":"2022-08-20T18:25:36","modified_gmt":"2022-08-20T16:25:36","slug":"emacs-whitespace-mode","status":"publish","type":"post","link":"https:\/\/www.blackhats.es\/wordpress\/?p=237","title":{"rendered":"Emacs whitespace-mode"},"content":{"rendered":"<p>Whitespace-mode renderiza caracteres para que sean visibles, tales como espacios, tabulaciones o nuevas lineas.<\/p>\n<p>Esto es de gran importancia especialmente cuando se emplean lenguajes como Python.<\/p>\n<p>Para comenzar a usarlo tan solo debemos teclear:<\/p>\n<p><strong>\u00a0M-x whitespace-mode<\/strong><\/p>\n<p>Este comando hara toggle de este modo para el fichero actual. Si queremos activar\/desactivar el modo a nivel global para la sesion actual de emacs deberemos lanzar:<\/p>\n<p><strong>\u00a0M-x global-whitespace-mode<\/strong><\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.blackhats.es\/wordpress\/?attachment_id=595\" rel=\"attachment wp-att-595\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-595\" alt=\"whitespace1\" src=\"https:\/\/www.blackhats.es\/wordpress\/wp-content\/uploads\/2014\/03\/whitespace1.png\" width=\"675\" height=\"612\" srcset=\"https:\/\/www.blackhats.es\/wordpress\/wp-content\/uploads\/2014\/03\/whitespace1.png 675w, https:\/\/www.blackhats.es\/wordpress\/wp-content\/uploads\/2014\/03\/whitespace1-300x272.png 300w\" sizes=\"(max-width: 675px) 100vw, 675px\" \/><\/a><\/p>\n<p style=\"text-align: center;\">Ejemplo de captura con whitespace-mode por defecto<\/p>\n<ul>\n<li>los tabs se muestran como \u00ab&gt;&gt;\u00bb<\/li>\n<li>los espacios como \u00ab.\u00bb<\/li>\n<li>fin de linea como \u00ab$\u00bb<\/li>\n<li>las lineas en rojo son trailing spaces<\/li>\n<li>mientras que las lineas amarillas son \u00abTABs\u00bb en lugar de espacios al principio de la linea.<\/li>\n<\/ul>\n<p>Tambien existen otros modos utiles como:<\/p>\n<p><strong>\u00a0M-x whitespace-newline-mode<\/strong><br \/>\n<strong>\u00a0M-x global-whitespace-newline-mode<\/strong><\/p>\n<p>Ahora bien, si no queremos acabar con los ojos destrozados, podemos modificar los simbolos y colores por defecto de este modo:<\/p>\n<p>Para reducir los colores podemos emplear:<\/p>\n<p style=\"padding-left: 30px;\"><em>(setq whitespace-style (quote (spaces tabs newline space-mark tab-mark newline-mark)))<\/em><\/p>\n<p>Si queremos mostrar el simbolo pilcrow en lugar del simbolo del dolar para nueva linea hariamos lo siguiente:<\/p>\n<p style=\"padding-left: 30px;\"><em>(setq whitespace-display-mappings<\/em><br \/>\n<em>;; all numbers are Unicode codepoint in decimal. try (insert-char 182 ) to see it<\/em><br \/>\n<em>\u00a0&#8216;(<\/em><br \/>\n<em>\u00a0 (space-mark 32 [183] [46]) ; 32 SPACE, 183 MIDDLE DOT \u300c\u00b7\u300d, 46 FULL STOP \u300c.\u300d<\/em><br \/>\n<em>\u00a0\u00a0 (newline-mark 10 [182 10]) ; 10 LINE FEED<\/em><br \/>\n<em>\u00a0\u00a0\u00a0 (tab-mark 9 [9655 9] [92 9]) ; 9 TAB, 9655 WHITE RIGHT-POINTING TRIANGLE \u300c\u25b7\u300d<\/em><br \/>\n<em>\u00a0 ))<\/em><\/p>\n<p>Simbolo \u00a0 Unicode Code Point (Decimal)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Unicode Name<br \/>\n\u00b7\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0 \u00a0\u00a0 183\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 MIDDLE DOT<br \/>\n\u00b6\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 182\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 PILCROW SIGN<br \/>\n\u21b5\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8629\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 DOWNWARDS ARROW WITH CORNER LEFTWARDS<br \/>\n&#x21a9;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8617\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 LEFTWARDS ARROW WITH HOOK<br \/>\n\u23ce\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 9166\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 RETURN SYMBOL<br \/>\n\u25b7\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 9655\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 WHITE RIGHT POINTING TRIANGLE<br \/>\n&#x25b6;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 9654\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 BLACK RIGHT-POINTING TRIANGLE<br \/>\n\u2192\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8594\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 RIGHTWARDS ARROW<br \/>\n\u21a6\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8614\u00a0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 RIGHTWARDS ARROW FROM BAR<br \/>\n\u21e5\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8677\u00a0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 RIGHTWARDS ARROW TO BAR<br \/>\n\u21e8\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8680\u00a0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 RIGHTWARDS WHITE ARROW<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.blackhats.es\/wordpress\/?attachment_id=596\" rel=\"attachment wp-att-596\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-596\" alt=\"whitespace2\" src=\"https:\/\/www.blackhats.es\/wordpress\/wp-content\/uploads\/2014\/03\/whitespace2.png\" width=\"646\" height=\"611\" srcset=\"https:\/\/www.blackhats.es\/wordpress\/wp-content\/uploads\/2014\/03\/whitespace2.png 646w, https:\/\/www.blackhats.es\/wordpress\/wp-content\/uploads\/2014\/03\/whitespace2-300x283.png 300w\" sizes=\"(max-width: 646px) 100vw, 646px\" \/><\/a><\/p>\n<p style=\"text-align: center;\">Whitespace-mode tunneado para que quede mucho mas chulo que por defecto<\/p>\n<p>Para eliminar los espacios en blanco al final de la linea tan solo debemos invocar a la funcion:<\/p>\n<p><strong>M-x delete-trailing-whitespace<\/strong><\/p>\n<p>Aunque tambien podemos anadir las siguientes lineas en nuestro .emacs, para asegurarnos de manera automatica, que cada vez cuando guardamos, no dejamos trailing spaces:<\/p>\n<p><em>(add-hook &#8216;before-save-hook &#8216;delete-trailing-whitespace)<\/em><\/p>\n<p>Referencias:<br \/>\nhttp:\/\/ergoemacs.org\/emacs\/whitespace-mode.html<br \/>\nhttp:\/\/www.emacswiki.org\/emacs\/WhiteSpace<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Whitespace-mode renderiza caracteres para que sean visibles, tales como espacios, tabulaciones o nuevas lineas. Esto es de gran importancia especialmente cuando se emplean lenguajes como Python. Para comenzar a usarlo tan solo debemos teclear: \u00a0M-x whitespace-mode Este comando hara toggle de este modo para el fichero actual. Si queremos activar\/desactivar el modo a nivel global [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[256],"tags":[222,328,325,326,327],"class_list":["post-237","post","type-post","status-publish","format-standard","hentry","category-medium","tag-emacs-modes","tag-emacs-trailing-spaces","tag-whitespace-emacs","tag-whitespace-emacs-mode","tag-whitespace-mode"],"_links":{"self":[{"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/237"}],"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=237"}],"version-history":[{"count":6,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/237\/revisions"}],"predecessor-version":[{"id":743,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/237\/revisions\/743"}],"wp:attachment":[{"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=237"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=237"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=237"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}