{"id":5,"date":"2008-06-13T21:30:52","date_gmt":"2008-06-13T19:30:52","guid":{"rendered":"http:\/\/www.blackhats.es\/wordpress\/?p=5"},"modified":"2022-08-20T18:26:36","modified_gmt":"2022-08-20T16:26:36","slug":"modeline-y-operaciones-con-ficheros","status":"publish","type":"post","link":"https:\/\/www.blackhats.es\/wordpress\/?p=5","title":{"rendered":"Modeline y operaciones con ficheros"},"content":{"rendered":"<p>En este art\u00edculo explicar\u00e9 el significado b\u00e1sico del modeline y las operaciones m\u00e1s b\u00e1sicas con ficheros.<\/p>\n<p>En el modeline podemos ver el estado del buffer (CH) que puede adquirir distintos valores:<\/p>\n<ul>\n<li><strong>* *<\/strong> Indica que el buffer ha sido modificado<\/li>\n<li><strong> &#8211; &#8211;<\/strong> Indica que el buffer no ha sido modificado<\/li>\n<li><strong>% *<\/strong> El buffer es de s\u00f3lo lectura y ha sido modificado<\/li>\n<li><strong>% %<\/strong> En buffer es de s\u00f3lo lectura y no ha sido modificado<\/li>\n<\/ul>\n<p>Para explicar el caso <strong>%*<\/strong>, podemos utilizar un ejemplo muy sencillo, abriendo cualquier fichero con <strong>C-x C-f<\/strong>, lo modificados (entonces tendremos <strong>**<\/strong>) y si luego pulsamos <strong>M-x toggle-read-only<\/strong>, el buffer ahora pasar\u00e1 a ser de s\u00f3lo lectura pero ha sido modificado antes de guardarse por lo tanto tenemos <strong>%*<\/strong>. Que no podamos modificar el buffer (introducir nuevos cambios), no quiere decir que no podamos guardar los cambios, si guardamos el fichero con <strong>C-x C-s<\/strong> entonces pasaremos a tener <strong>%%<\/strong>.<\/p>\n<p>La otra parte que nos interesa comentar es la posici\u00f3n mostrada en el modeline. Que puede ser:<\/p>\n<ul>\n<li><strong>Top<\/strong> si se encuentra mostrando el principio del buffer<\/li>\n<li><strong>Bot<\/strong> si se encuentra mostrando el final del buffer<\/li>\n<li><strong>nn%<\/strong> si se encuentra mostrando un porcentaje concreto del buffer<\/li>\n<li><strong>All<\/strong> si esta mostrando todo el buffer<\/li>\n<\/ul>\n<p>Cambiando de tercio, pero relacionado con lo anterior; las operaciones b\u00e1sicas con ficheros que podemos realizar son las de abrir un fichero pulsando <strong>C-x C-f<\/strong>, abrir un fichero como s\u00f3lo lectura <strong>C-x C-r<\/strong>, guardar el fichero mostrado en el buffer actual con <strong>C-x C-s<\/strong>, o guardar todos los ficheros pulsando <strong>C-x s<\/strong>, as\u00ed pues tambi\u00e9n podemos insertar un fichero en la posici\u00f3n actual del cursor del buffer actual usando <strong>C-x C-i<\/strong>.<\/p>\n<p>En estos primeros pasos, tendemos a cometer errores, podemos deshacer cambios usando <strong>C-x u<\/strong>. O si hemos modificado los permisos de un fichero que era de s\u00f3lo lectura pero lo habiamos abierto antes, podemos actualizar el buffer asociado al fichero sin necesidad de cerrar y volver a abrir el fichero manteniendo as\u00ed la posici\u00f3n actual del cursor usando <strong>M-x revert-buffer<\/strong>. Por \u00faltimo si todos los cambios que hemos realizado, los hemos guardado previamente siempre podemos usar <strong>C-x C-f fichero~  Cx-w fichero <\/strong>. Ya que por defecto emacs guarda una copia del fichero original con su mismo nombre y terminado en <strong>~<\/strong>.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.blackhats.es\/emacs\/modeline.png\" alt=\"modeline\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>En este art\u00edculo explicar\u00e9 el significado b\u00e1sico del modeline y las operaciones m\u00e1s b\u00e1sicas con ficheros. En el modeline podemos ver el estado del buffer (CH) que puede adquirir distintos valores: * * Indica que el buffer ha sido modificado &#8211; &#8211; Indica que el buffer no ha sido modificado % * El buffer es [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[10],"class_list":["post-5","post","type-post","status-publish","format-standard","hentry","category-intro","tag-emacs-modeline"],"_links":{"self":[{"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/5"}],"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=5"}],"version-history":[{"count":1,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/5\/revisions"}],"predecessor-version":[{"id":819,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/5\/revisions\/819"}],"wp:attachment":[{"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}