|
|
|
@ -38,7 +38,7 @@
|
|
|
|
|
GNU/Emacs 29.1
|
|
|
|
|
</a>
|
|
|
|
|
<div class="version">
|
|
|
|
|
Traducción Revisón: 1.54
|
|
|
|
|
Traducción Revisón: 1.56
|
|
|
|
|
</div>
|
|
|
|
|
<div role="search">
|
|
|
|
|
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
|
|
|
|
@ -227,17 +227,17 @@
|
|
|
|
|
</div></blockquote>
|
|
|
|
|
<p><em>Visitar</em> un archivo significa leer su contenido en un buffer de Emacs para poder editarlo. Emacs crea un nuevo buffer para cada archivo que visita.</p>
|
|
|
|
|
<p>Para visitar un archivo, teclee <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">f</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-f</span></code>, <code class="docutils literal notranslate"><span class="pre">find-file</span></code>, buscar-archivo) y use el minibuffer para introducir el nombre del archivo requerido. Mientras esté en el minibúfer, puede abortar el comando tecleando <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">g</kbd> (<code class="docutils literal notranslate"><span class="pre">C-g</span></code>). Consulte <a class="reference internal" href="#id2"><span class="std std-ref">19.1 Nombres de Archivos</span></a> , para más detalles sobre la introducción de nombres de archivos en los minibúferes.</p>
|
|
|
|
|
<p>Si el archivo especificado existe pero el sistema no le permite leerlo, se muestra un mensaje de error en el área de eco (en sistemas GNU y Unix podría ser capaz de visitar tal archivo usando los métodos <code class="docutils literal notranslate"><span class="pre">su</span></code> o <code class="docutils literal notranslate"><span class="pre">sudo</span></code>; vea <a class="reference internal" href="#id12"><span class="std std-ref">19.5 Reversión Automática: Mantener los Búferes Actualizados Automáticamente</span></a>). De otro modo, puede saber que <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-f</span></code> se ha completado con éxito por la aparición de nuevo texto en la pantalla, y por el nombre del buffer mostrado en la línea de modo (vea <a class="reference internal" href="../01_OrgPant.html#id6"><span class="std std-ref">1.3 La línea de Modo</span></a>). Emacs normalmente construye el nombre del buffer a partir del nombre del archivo, omitiendo el nombre del directorio. Por ejemplo, un archivo llamado <code class="docutils literal notranslate"><span class="pre">/usr/rms/emacs.tex</span></code> es visitado en un búfer llamado <code class="docutils literal notranslate"><span class="pre">emacs.tex</span></code>. Si ya existe un búfer con ese nombre, Emacs construye un nombre único; el método normal es añadir un sufijo basado en el nombre del directorio (e.g., <code class="docutils literal notranslate"><span class="pre"><rms></span></code>, <code class="docutils literal notranslate"><span class="pre"><tmp></span></code>, y así sucesivamente), pero puede elegir otros métodos. Consulte <a class="reference internal" href="20_UsarVariosBuferes.html#id4"><span class="std std-ref">20.7.1 Hacer que los Nombres de los Búferes sean Únicos</span></a>.</p>
|
|
|
|
|
<p>Si el archivo especificado existe pero el sistema no le permite leerlo, se muestra un mensaje de error en el área de eco (en sistemas GNU y Unix podría ser capaz de visitar tal archivo usando los métodos <code class="docutils literal notranslate"><span class="pre">su</span></code> o <code class="docutils literal notranslate"><span class="pre">sudo</span></code>; vea <a class="reference internal" href="#id12"><span class="std std-ref">19.5 Reversión Automática: Mantener los Búferes Actualizados Automáticamente</span></a>). De otro modo, puede saber que <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-f</span></code> se ha completado con éxito por la aparición de nuevo texto en la pantalla, y por el nombre del buffer mostrado en la línea de modo (vea <a class="reference internal" href="../01_OrgPant.html#id6"><span class="std std-ref">1.3 La línea de Modo</span></a>). Emacs normalmente construye el nombre del buffer a partir del nombre del archivo, omitiendo el nombre del directorio. Por ejemplo, un archivo llamado <code class="docutils literal notranslate"><span class="pre">/usr/rms/emacs.tex</span></code> es visitado en un búfer llamado <code class="docutils literal notranslate"><span class="pre">emacs.tex</span></code>. Si ya existe un búfer con ese nombre, Emacs construye un nombre único; el método normal es añadir un sufijo basado en el nombre del directorio (e.g., <code class="docutils literal notranslate"><span class="pre"><rms></span></code>, <code class="docutils literal notranslate"><span class="pre"><tmp></span></code>, y así sucesivamente), pero puede elegir otros métodos. Consulte <a class="reference internal" href="20_UsarVariosBuferes.html#id5"><span class="std std-ref">20.7.1 Hacer que los Nombres de los Búferes sean Únicos</span></a>.</p>
|
|
|
|
|
<p>Para crear un nuevo archivo, simplemente visítelo usando el mismo comando, <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">f</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-f</span></code>). Emacs muestra <code class="docutils literal notranslate"><span class="pre">(New</span> <span class="pre">file)</span></code> (Archivo nuevo) en el área de eco, pero en otros aspectos se comporta como si hubiera visitado un archivo vacío existente.</p>
|
|
|
|
|
<p>Después de visitar un archivo, los cambios que haga con los comandos de edición se hacen en el búfer de Emacs. No tienen efecto en el archivo visitado, hasta que guarde el búfer (vea <a class="reference internal" href="#id4"><span class="std std-ref">19.3 Guardar Archivos</span></a>). Si un búfer contiene cambios que no han sido guardados, decimos que el búfer está <em>modificado</em>. Esto implica que algunos cambios se perderán si no se guarda el búfer. La línea de modo muestra dos asteriscos cerca del margen izquierdo para indicar que el búfer está modificado.</p>
|
|
|
|
|
<p>Si visita un archivo que ya está en Emacs, <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-f</span></code> cambia al búfer existente en lugar de hacer otra copia. Antes de hacerlo, comprueba si el archivo ha cambiado desde la última vez que lo visitó o lo guardó. Si el fichero ha cambiado, Emacs ofrece releerlo.</p>
|
|
|
|
|
<p>Si se intenta visitar un archivo mayor que el umbral de advertencia de archivo grande (por defecto es 10000000, que son unos 10 megabytes), Emacs pide confirmación primero. Puede responder <code class="docutils literal notranslate"><span class="pre">y</span></code> para proceder a visitar el archivo o <code class="docutils literal notranslate"><span class="pre">l</span></code> para visitarlo literalmente (ver más abajo). Visitar archivos grandes literalmente acelera la navegación y edición de tales archivos, porque varias características potencialmente complejas están desactivadas. Tenga en cuenta, sin embargo, que Emacs no puede visitar ficheros que sean más grandes que el tamaño máximo del búfer, que está limitado por la cantidad de memoria que el Editor puede asignar y por los enteros que puede representar (vea <a class="reference internal" href="20_UsarVariosBuferes.html#id1"><span class="std std-ref">20 Uso de Varios Búferes</span></a>). Si lo intenta, Emacs muestra un mensaje de error diciendo que se ha excedido el tamaño máximo del búfer.</p>
|
|
|
|
|
<p>Si intenta visitar un archivo cuyo modo principal (ver <a class="reference internal" href="24_ModosMayores-Y-Menores.html#id2"><span class="std std-ref">24.1 Modos Mayores (o Principales)</span></a>) usa la biblioteca de análisis sintáctico tree-sitter, Emacs mostrará una advertencia si el tamaño del archivo en bytes es mayor que el valor de la variable <code class="docutils literal notranslate"><span class="pre">treesit-max-buffer-size</span></code>. El valor por defecto es 40 megabytes para Emacs de 64 bits y 15 megabytes para Emacs de 32 bits. Esto evita el peligro de que el Editor se quede sin memoria impidiendo la activación de modos principales basados en tree-sitter en búferes tan grandes, porque un típico analizador tree-sitter necesita unas 10 veces más memoria que el texto que analiza.</p>
|
|
|
|
|
<p>Si el nombre de archivo que especifica contiene caracteres comodín del tipo shell, Emacs visita todos los archivos que coincidan con él. (En los sistemas de ficheros que no distinguen entre mayúsculas y minúsculas, Emacs busca los comodines sin tener en cuenta las mayúsculas y minúsculas). Los comodines incluyen las secuencias <code class="docutils literal notranslate"><span class="pre">?</span></code>, <code class="docutils literal notranslate"><span class="pre">*</span></code> y <code class="docutils literal notranslate"><span class="pre">[...]</span></code>. Para introducir el comodín <code class="docutils literal notranslate"><span class="pre">?</span></code> en un nombre de archivo en el minibúfer, debe teclear <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">q</kbd> <kbd class="kbd docutils literal notranslate">?</kbd> (<code class="docutils literal notranslate"><span class="pre">C-q</span> <span class="pre">?</span></code>) Consulte <a class="reference internal" href="#id18"><span class="std std-ref">19.16 Nombres de Archivos Entrecomillados</span></a>, para obtener información sobre cómo visitar un archivo cuyo nombre contiene realmente caracteres comodín. Puede desactivar la función de comodines personalizando <code class="docutils literal notranslate"><span class="pre">find-file-wildcards</span></code>.</p>
|
|
|
|
|
<p>Si el nombre de archivo que especifica contiene caracteres comodín del tipo shell, Emacs visita todos los archivos que coincidan con él. (En los sistemas de ficheros que no distinguen entre mayúsculas y minúsculas, Emacs busca los comodines sin tener en cuenta las mayúsculas y minúsculas). Los comodines incluyen las secuencias <code class="docutils literal notranslate"><span class="pre">?</span></code>, <code class="docutils literal notranslate"><span class="pre">*</span></code> y <code class="docutils literal notranslate"><span class="pre">[...]</span></code>. Para introducir el comodín <code class="docutils literal notranslate"><span class="pre">?</span></code> en un nombre de archivo en el minibúfer, debe teclear <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">q</kbd> <kbd class="kbd docutils literal notranslate">?</kbd> (<code class="docutils literal notranslate"><span class="pre">C-q</span> <span class="pre">?</span></code>) Consulte <a class="reference internal" href="#id21"><span class="std std-ref">19.16 Nombres de Archivos Entrecomillados</span></a>, para obtener información sobre cómo visitar un archivo cuyo nombre contiene realmente caracteres comodín. Puede desactivar la función de comodines personalizando <code class="docutils literal notranslate"><span class="pre">find-file-wildcards</span></code>.</p>
|
|
|
|
|
<p>Si está pidiendo visitar un archivo que ya ha sido visitado en un búfer, pero el archivo ha cambiado externamente, Emacs normalmente le pregunta si quiere releer el archivo desde el disco. Pero si configura <code class="docutils literal notranslate"><span class="pre">query-about-changed-file</span></code> a <code class="docutils literal notranslate"><span class="pre">nil</span></code>, Emacs no le preguntará, sino que simplemente mostrará el contenido del búfer antes de los cambios, y mostrará un mensaje en el echo-area diciéndole cómo revertir el búfer desde el archivo.</p>
|
|
|
|
|
<p>Si visita el archivo equivocado sin querer al escribir su nombre de manera incorrecta, escriba <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">v</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-v</span></code>, <code class="docutils literal notranslate"><span class="pre">find-alternate-file</span></code>) para visitar el archivo que realmente quería. <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-v</span></code> es similar a <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-f</span></code>, pero elimina el búfer actual (después de ofrecer primero guardarlo si se modifica). Cuando <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-v</span></code> lee el nombre del archivo a visitar, inserta todo el nombre del archivo por defecto en el búfer, con el punto justo después de la parte del directorio; esto es conveniente si cometió un pequeño error al teclear el nombre.</p>
|
|
|
|
|
<p>Si visita un archivo que en realidad es un directorio, Emacs invoca Dired, el navegador de directorios de Emacs. Ver <a class="reference internal" href="31_DiredEditDirect.html#id1"><span class="std std-ref">31 Dired, el Editor de Directorios</span></a>. Puede desactivar este comportamiento estableciendo la variable <code class="docutils literal notranslate"><span class="pre">find-file-run-dired</span></code> a <code class="docutils literal notranslate"><span class="pre">nil</span></code>; en ese caso, es un error intentar visitar un directorio.</p>
|
|
|
|
|
<p>Los archivos que en realidad <em>son colecciones de otros archivos</em>, o archivos de archivos, se visitan en modos especiales que invocan un entorno similar a Dired para permitir operaciones sobre los miembros de dichos archivo. Ver <a class="reference internal" href="#id16"><span class="std std-ref">19.14 Archivos de Archivos</span></a>, para más información sobre estas características.</p>
|
|
|
|
|
<p>Los archivos que en realidad <em>son colecciones de otros archivos</em>, o archivos de archivos, se visitan en modos especiales que invocan un entorno similar a Dired para permitir operaciones sobre los miembros de dichos archivo. Ver <a class="reference internal" href="#id19"><span class="std std-ref">19.14 Archivos de Archivos</span></a>, para más información sobre estas características.</p>
|
|
|
|
|
<p>Si visita un archivo que el sistema operativo no le permite modificar, o que está marcado como de sólo lectura, Emacs hace que el búfer también sea de sólo lectura, para que no haga cambios que después le cueste guardar. Puede hacer que el búfer sea escribible (que deje de ser de sólo lectura) con <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-q</span></code> (<code class="docutils literal notranslate"><span class="pre">read-only-mode</span></code> , modo de sólo lectura). Vea <a class="reference internal" href="20_UsarVariosBuferes.html#id3"><span class="std std-ref">20.3 Operaciones Varias del Búfer</span></a>.</p>
|
|
|
|
|
<p>Si desea visitar un archivo como sólo-lectura para protegerse de introducir cambios accidentalmente, visítelo con el comando <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-r</span></code> (<code class="docutils literal notranslate"><span class="pre">find-file-read-only</span></code>, buscar-archivo-sólo-lectura) en lugar de <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-f</span></code>.</p>
|
|
|
|
|
<p><code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">4</span> <span class="pre">f</span></code> (<code class="docutils literal notranslate"><span class="pre">find-file-other-window</span></code>, buscar-archivo-otra-ventana) es como <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-f</span></code> excepto en que el búfer que contiene el archivo especificado se selecciona en otra ventana. La ventana que estaba seleccionada antes de <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">4</span> <span class="pre">f</span></code> sigue mostrando el mismo búfer que ya estaba mostrando. Si se usa este comando cuando sólo se está mostrando una ventana, esa ventana se divide en dos, con una ventana mostrando el mismo búfer que antes, y la otra mostrando el nuevo archivo solicitado. Véase <a class="reference internal" href="21_VariasVentanas.html#id1"><span class="std std-ref">21 Varias Ventanas</span></a>.</p>
|
|
|
|
@ -246,7 +246,7 @@
|
|
|
|
|
<p>En segundo lugar, Emacs soporta arrastrar y soltar: soltar un archivo en una ventana ordinaria dentro de él, esto visita el archivo usando esa ventana. Como excepción, soltar un archivo en una ventana que muestre un búfer Dired mueve o copia el fichero en el directorio mostrado. Para más detalles, vea <a class="reference internal" href="22_MarcosPantallasGraf.html#id13"><span class="std std-ref">22.14 Arrastrar y Soltar</span></a>, y 31.20 .</p>
|
|
|
|
|
<p>En terminales en modo texto y en pantallas gráficas cuando Emacs se construyó sin un conjunto de herramientas GUI, puede visitar archivos a través del menú <code class="docutils literal notranslate"><span class="pre">File</span></code> (Archivo) de la barra de menú, que tiene los ítems <code class="docutils literal notranslate"><span class="pre">Visit</span> <span class="pre">New</span> <span class="pre">File</span></code> (Visitar Nuevo Archivo) y <code class="docutils literal notranslate"><span class="pre">Open</span> <span class="pre">File</span></code> (Abrir Archivo).</p>
|
|
|
|
|
<p>Cada vez que visita un archivo, Emacs escanea automáticamente su contenido para detectar qué codificación de caracteres y qué convención de fin de línea utiliza, y los convierte a la codificación interna de Emacs y a la convención de fin de línea dentro del búfer. Cuando guarda el buffer, Emacs lleva a cabo la conversión inversa, escribiendo el fichero en el disco con su codificación original y la convención de final de línea. Ver <a class="reference internal" href="23_SoporteJuegoCaracIntern.html#id8"><span class="std std-ref">23.5 Sistemas de Codificación</span></a>.</p>
|
|
|
|
|
<p>Si desea editar un archivo como una secuencia de caracteres ASCII sin codificación especial o conversión, use el comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">find-file-literally</span></code>. Esto visita un archivo, como <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-f</span></code>, pero no hace conversión de formato (vea <strong>Conversión de Formato</strong> en el Manual de Referencia de Emacs Lisp), conversión de código de caracteres (vea <a class="reference internal" href="23_SoporteJuegoCaracIntern.html#id8"><span class="std std-ref">23.5 Sistemas de Codificación</span></a>), o descompresión automática (vea <a class="reference internal" href="#id15"><span class="std std-ref">19.13. Acceso a Archivos Comprimidos</span></a>), y no añade una nueva línea final debido a <code class="docutils literal notranslate"><span class="pre">require-final-newline</span></code> (vea <a class="reference internal" href="#id7"><span class="std std-ref">19.3.3 Personalizar el Guardado de Archivos</span></a>). Si ya ha visitado el mismo archivo de la manera habitual (no literal), este comando le pregunta si desea visitarlo literalmente en su lugar.</p>
|
|
|
|
|
<p>Si desea editar un archivo como una secuencia de caracteres ASCII sin codificación especial o conversión, use el comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">find-file-literally</span></code>. Esto visita un archivo, como <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-f</span></code>, pero no hace conversión de formato (vea <strong>Conversión de Formato</strong> en el Manual de Referencia de Emacs Lisp), conversión de código de caracteres (vea <a class="reference internal" href="23_SoporteJuegoCaracIntern.html#id8"><span class="std std-ref">23.5 Sistemas de Codificación</span></a>), o descompresión automática (vea <a class="reference internal" href="#id18"><span class="std std-ref">19.13. Acceso a Archivos Comprimidos</span></a>), y no añade una nueva línea final debido a <code class="docutils literal notranslate"><span class="pre">require-final-newline</span></code> (vea <a class="reference internal" href="#id7"><span class="std std-ref">19.3.3 Personalizar el Guardado de Archivos</span></a>). Si ya ha visitado el mismo archivo de la manera habitual (no literal), este comando le pregunta si desea visitarlo literalmente en su lugar.</p>
|
|
|
|
|
<p>A veces, los archivos están (vagamente) ligados a otros archivos, y podría llamar a estos archivos: hermanos. Por ejemplo, al editar archivos C, si tiene un archivo llamado <code class="docutils literal notranslate"><span class="pre">"foo.c"</span></code>, a menudo también tiene un archivo llamado <code class="docutils literal notranslate"><span class="pre">"foo.h"</span></code>, y ese podría ser su archivo hermano. O puede tener diferentes versiones de un archivo, por ejemplo <code class="docutils literal notranslate"><span class="pre">"src/emacs/emacs-27/lisp/allout.el"</span></code> y <code class="docutils literal notranslate"><span class="pre">"src/emacs/emacs-28/lisp/allout.el"</span></code> podrían considerarse hermanos. Emacs proporciona el comando <code class="docutils literal notranslate"><span class="pre">find-sibling-file</span></code> para saltar entre ficheros de este tipo, pero es imposible adivinar qué archivos puede querer un Usuario que se consideren hermanos, así que Emacs permite configurarlo libremente alterando la opción de Usuario <code class="docutils literal notranslate"><span class="pre">find-sibling-rules</span></code>. Se trata de una lista de elementos de coincidencia/expansión.</p>
|
|
|
|
|
<p>Por ejemplo, para hacer el mapeo <code class="docutils literal notranslate"><span class="pre">".c"</span></code> a <code class="docutils literal notranslate"><span class="pre">".h"</span></code>, se podría indicar:</p>
|
|
|
|
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="n">setq</span> <span class="n">find</span><span class="o">-</span><span class="n">sibling</span><span class="o">-</span><span class="n">rules</span>
|
|
|
|
@ -344,7 +344,7 @@
|
|
|
|
|
</div></blockquote>
|
|
|
|
|
<p><kbd class="kbd docutils literal notranslate">d</kbd> (<code class="docutils literal notranslate"><span class="pre">d</span></code>)</p>
|
|
|
|
|
<blockquote>
|
|
|
|
|
<div><p>Compara el búfer con su archivo correspondiente, para que pueda ver qué cambios estaría guardando. Para ello se invoca el comando <code class="docutils literal notranslate"><span class="pre">diff-buffer-with-file</span></code> (véase <a class="reference internal" href="#id14"><span class="std std-ref">19.9 Comparación de Archivos</span></a>).</p>
|
|
|
|
|
<div><p>Compara el búfer con su archivo correspondiente, para que pueda ver qué cambios estaría guardando. Para ello se invoca el comando <code class="docutils literal notranslate"><span class="pre">diff-buffer-with-file</span></code> (véase <a class="reference internal" href="#id15"><span class="std std-ref">19.9 Comparación de Archivos</span></a>).</p>
|
|
|
|
|
</div></blockquote>
|
|
|
|
|
<p><kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">h</kbd> (<code class="docutils literal notranslate"><span class="pre">C-h</span></code>)</p>
|
|
|
|
|
<blockquote>
|
|
|
|
@ -362,7 +362,7 @@
|
|
|
|
|
<p>En la mayoría de los sistemas operativos, reescribir un archivo destruye automáticamente todo registro de lo que el archivo solía contener. Por lo tanto, guardar un archivo desde Emacs se elimina el contenido antiguo del archivo, o lo haría, excepto que el Editor copia cuidadosamente el contenido antiguo a otro archivo, llamado archivo de <em>copia de seguridad</em>, antes de guardarlo.</p>
|
|
|
|
|
<p>Emacs hace una copia de seguridad de un archivo sólo la primera vez que éste se guarda desde un buffer. No importa cuántas veces guarde posteriormente ese archivo, su copia de seguridad permanecerá inalterada. Sin embargo, si elimina el búfer y vuelve a visitar el archivo, se creará un nuevo archivo de copia de seguridad.</p>
|
|
|
|
|
<p>Para la mayoría de los archivos, la variable <code class="docutils literal notranslate"><span class="pre">make-backup-files</span></code> determina si se hacen archivos de copia de seguridad. En la mayoría de los sistemas operativos, su valor por defecto es <code class="docutils literal notranslate"><span class="pre">t</span></code>, para que Emacs escriba archivos de copia de seguridad.</p>
|
|
|
|
|
<p>Para archivos gestionados por un sistema de control de versiones (ver <a class="reference internal" href="29_ManyProgrsGrands.html#id2"><span class="std std-ref">29.1 Control de Versiones</span></a>), la variable <code class="docutils literal notranslate"><span class="pre">vc-make-backup-files</span></code> determina si se hacen copias de seguridad de los archivos. Por defecto es <code class="docutils literal notranslate"><span class="pre">nil</span></code>, ya que los archivos de copia de seguridad son redundantes cuando se almacenan todas las versiones anteriores en un sistema de control de versiones. Ver <a class="reference internal" href="29_ManyProgrsGrands.html#id4"><span class="std std-ref">29.1.13.1. Opciones Generales</span></a>.</p>
|
|
|
|
|
<p>Para archivos gestionados por un sistema de control de versiones (ver <a class="reference internal" href="29_ManyProgrsGrands.html#id2"><span class="std std-ref">29.1 Control de Versiones</span></a>), la variable <code class="docutils literal notranslate"><span class="pre">vc-make-backup-files</span></code> determina si se hacen copias de seguridad de los archivos. Por defecto es <code class="docutils literal notranslate"><span class="pre">nil</span></code>, ya que los archivos de copia de seguridad son redundantes cuando se almacenan todas las versiones anteriores en un sistema de control de versiones. Ver <a class="reference internal" href="29_ManyProgrsGrands.html#id8"><span class="std std-ref">29.1.13.1. Opciones Generales</span></a>.</p>
|
|
|
|
|
<p>A su elección, Emacs puede mantener una única copia de seguridad para cada archivo, o hacer una serie de copias de seguridad numeradas para cada archivo que edite. Ver <a class="reference internal" href="#id6"><span class="std std-ref">19.3.2.1 Copias de Seguridad Simples o Numeradas</span></a>.</p>
|
|
|
|
|
<p>El valor por defecto de la variable <code class="docutils literal notranslate"><span class="pre">backup-enable-predicate</span></code> evita que se escriban archivos de copia de seguridad para archivos en los directorios usados para archivos temporales, especificados por <code class="docutils literal notranslate"><span class="pre">temporary-file-directory</span></code> o <code class="docutils literal notranslate"><span class="pre">small-temporary-file-directory</span></code>.</p>
|
|
|
|
|
<p>Puede decirle explícitamente a Emacs que haga otro archivo de copia de seguridad a partir de un búfer, aunque ese búfer se haya guardado antes. Si guarda el buffer con <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">u</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">s</kbd> (<code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">C-x</span> <span class="pre">C-s</span></code>), la versión así guardada se convertirá en un archivo de copia de seguridad si guarda el búfer de nuevo. <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">u</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">u</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">s</kbd> <code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">C-u</span> <span class="pre">C-x</span> <span class="pre">C-s</span></code> guarda el búfer, pero primero convierte el contenido del archivo anterior en una nueva copia de seguridad. <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">u</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">u</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">u</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">s</kbd> <code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">C-u</span> <span class="pre">C-u</span> <span class="pre">C-x</span> <span class="pre">C-s</span></code> lleva a cabo ambas cosas: hace una copia de seguridad de los contenidos anteriores, y se dispone a hacer otra de los contenidos recién guardados si guarda de nuevo.</p>
|
|
|
|
@ -441,7 +441,7 @@ copiar.</p>
|
|
|
|
|
<p>Si Emacs o el sistema operativo se bloquean, pueden quedar archivos de bloqueo obsoletos, por lo que ocasionalmente puede recibir advertencias sobre colisiones no válidas. Cuando determine que la colisión es espuria, simplemente use <code class="docutils literal notranslate"><span class="pre">p</span></code> para decirle a Emacs que siga adelante de todas formas.</p>
|
|
|
|
|
<p>Tenga en cuenta que el bloqueo funciona en base al nombre del archivo; si un archivo tiene varios nombres, Emacs no impide que dos Usuarios lo editen simultáneamente con nombres diferentes.</p>
|
|
|
|
|
<p>En algunos casos no se puede escribir un archivo de bloqueo, por ejemplo, si Emacs carece de los permisos del sistema o no puede crear archivos de bloqueo por alguna otra razón. En estos casos, Emacs todavía puede detectar la colisión cuando se intenta guardar un archivo, comprobando la fecha de última modificación del archivo. Si el archivo ha cambiado desde la última vez que Emacs lo visitó o guardó, eso implica que se han hecho cambios de alguna otra forma, y se perderán si Emacs procede a guardarlo. A continuación, el Editor muestra un mensaje de advertencia y pide confirmación antes de guardar; responda <code class="docutils literal notranslate"><span class="pre">yes</span></code> (sí) para guardar, y <code class="docutils literal notranslate"><span class="pre">no</span></code> o <code class="docutils literal notranslate"><span class="pre">C-g</span></code> para cancelar el guardado.</p>
|
|
|
|
|
<p>Una forma de comparar el búfer con su archivo es el comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">diff-buffer-with-file</span></code>. Véase <a class="reference internal" href="#id14"><span class="std std-ref">19.9 Comparación de Archivos</span></a>.</p>
|
|
|
|
|
<p>Una forma de comparar el búfer con su archivo es el comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">diff-buffer-with-file</span></code>. Véase <a class="reference internal" href="#id15"><span class="std std-ref">19.9 Comparación de Archivos</span></a>.</p>
|
|
|
|
|
<p>Puede evitar la creación de archivos de bloqueo remotos estableciendo la variable <code class="docutils literal notranslate"><span class="pre">remote-file-name-inhibit-locks</span></code> a <code class="docutils literal notranslate"><span class="pre">t</span></code>.</p>
|
|
|
|
|
<p>El modo menor <code class="docutils literal notranslate"><span class="pre">lock-file-mode</span></code>, llamado interactivamente, cambia el valor local de <code class="docutils literal notranslate"><span class="pre">create-lockfiles</span></code> en el búfer actual.</p>
|
|
|
|
|
<aside class="footnote-list brackets">
|
|
|
|
@ -503,12 +503,12 @@ copiar.</p>
|
|
|
|
|
<span id="id11"></span><h2>19.4 Revertir un Búfer<a class="headerlink" href="#revertir-un-bufer" title="Link to this heading"></a></h2>
|
|
|
|
|
<p>Si ha hecho cambios extensos en un búfer que visita un archivo y luego cambia de opinión, puede revertir los cambios y volver a la versión guardada del archivo. Para ello, teclee <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">x</kbd><kbd class="kbd docutils literal notranslate">g</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">x</span> <span class="pre">g</span></code>). Como revertir involuntariamente podría hacer perder mucho trabajo, Emacs pide confirmación antes de volver a modificar ese búfer.</p>
|
|
|
|
|
<p>El comando <code class="docutils literal notranslate"><span class="pre">revert-búfer</span></code> intenta posicionar el punto de tal manera que, si el archivo fue editado sólo ligeramente, estará aproximadamente en la misma parte del texto que antes. Pero si ha realizado cambios importantes, el punto puede acabar en una ubicación totalmente diferente.</p>
|
|
|
|
|
<p>Revertir marca el búfer como no modificado. Sin embargo, añade los cambios revertidos como una única modificación al historial de deshacer del búfer (véase <strong>Deshacer</strong>). Así, después de revertir, puede teclear <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">/</kbd> (<code class="docutils literal notranslate"><span class="pre">C-/</span></code>) o sus alias para recuperar los cambios revertidos, si cambia de opinión.</p>
|
|
|
|
|
<p>Revertir marca el búfer como no modificado. Sin embargo, añade los cambios revertidos como una única modificación al historial de deshacer del búfer (véase <a class="reference internal" href="17_CmdCorrecErrsTipogr.html#id2"><span class="std std-ref">17.1 Deshacer</span></a>). Así, después de revertir, puede teclear <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">/</kbd> (<code class="docutils literal notranslate"><span class="pre">C-/</span></code>) o sus alias para recuperar los cambios revertidos, si cambia de opinión.</p>
|
|
|
|
|
<p>Para revertir un búfer de forma más conservadora, puede usar el comando <code class="docutils literal notranslate"><span class="pre">revert-buffer-with-fine-grain</span></code>. Este comando actúa como <code class="docutils literal notranslate"><span class="pre">revert-buffer</span></code>, pero intenta ser lo menos destructivo posible, haciendo un esfuerzo por preservar todos los marcadores, propiedades y superposiciones del búfer. Dado que revertir de esta forma puede ser muy lento cuando se ha realizado un gran número de cambios, puede modificar la variable <code class="docutils literal notranslate"><span class="pre">revert-buffer-with-fine-grain-max-seconds</span></code> para especificar una cantidad máxima de segundos que debe tardar la sustitución del contenido del búfer de esta forma. Tenga en cuenta que no se garantiza que la ejecución completa de <code class="docutils literal notranslate"><span class="pre">revert-buffer-with-fine-grain</span></code> no tarde más que esto.</p>
|
|
|
|
|
<p>Algunos tipos de búferes que no están asociados a archivos, como los búferes Dired, también pueden revertirse. Para ellos, revertir significa recalcular su contenido. Los búferes creados explícitamente con <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">b</span></code> no pueden revertirse; <code class="docutils literal notranslate"><span class="pre">revert-buffer</span></code> informa de un error si se intenta.</p>
|
|
|
|
|
<p>Cuando edita un archivo que cambia automática y frecuentemente, por ejemplo, un registro de salida de un proceso que continúa ejecutándose- puede ser útil para Emacs revertir el archivo sin preguntarle. Para solicitar este comportamiento, establezca la variable <code class="docutils literal notranslate"><span class="pre">revert-without-query</span></code> en una lista de expresiones regulares. Cuando un nombre de archivo coincide con una de estas expresiones regulares, <code class="docutils literal notranslate"><span class="pre">find-file</span></code> y <code class="docutils literal notranslate"><span class="pre">revert-buffer</span></code> lo revertirán automáticamente si ha cambiado, siempre que el propio búfer no se modifique. (Si ha editado el texto, sería un error descartar sus cambios).</p>
|
|
|
|
|
<p>Cuando edita un archivo que cambia automática y frecuentemente, por ejemplo, un registro de salida de un proceso que continúa ejecutándose, puede ser útil para Emacs revertir el archivo sin preguntarle. Para solicitar este comportamiento, establezca la variable <code class="docutils literal notranslate"><span class="pre">revert-without-query</span></code> en una lista de expresiones regulares. Cuando un nombre de archivo coincide con una de estas expresiones regulares, <code class="docutils literal notranslate"><span class="pre">find-file</span></code> y <code class="docutils literal notranslate"><span class="pre">revert-buffer</span></code> lo revertirán automáticamente si ha cambiado, siempre que el propio búfer no se modifique. (Si ha editado el texto, sería un error descartar sus cambios).</p>
|
|
|
|
|
<p>La combinación de teclas <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">x</kbd><kbd class="kbd docutils literal notranslate">g</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">x</span> <span class="pre">g</span></code>) está vinculada al comando <code class="docutils literal notranslate"><span class="pre">revert-buffer-quick</span></code>. Es como el comando <code class="docutils literal notranslate"><span class="pre">revert-búfer</span></code>, pero da menos indicaciones. A diferencia de <code class="docutils literal notranslate"><span class="pre">revert-buffer</span></code>, no preguntará si el búfer actual visita un archivo, y el búfer no se modifica. También respeta la opción de Usuario <code class="docutils literal notranslate"><span class="pre">revert-buffer-quick-short-answers</span></code>. Si esta opción no es nula, usa una consulta <code class="docutils literal notranslate"><span class="pre">y</span></code>/<code class="docutils literal notranslate"><span class="pre">n</span></code> más corta en lugar de una consulta sí/no más larga.</p>
|
|
|
|
|
<p>También puede decirle a Emacs que revierta los búferes automáticamente cuando sus archivos visitados cambien en el disco; vea <strong>Auto Revert: Manteniendo los Búferes Actualizados Automáticamente</strong>.</p>
|
|
|
|
|
<p>También puede decirle a Emacs que revierta los búferes automáticamente cuando sus archivos visitados cambien en el disco; vea <a class="reference internal" href="#id12"><span class="std std-ref">19.5 Reversión Automática: Mantener los Búferes Actualizados Automáticamente</span></a>.</p>
|
|
|
|
|
</section>
|
|
|
|
|
<section id="reversion-automatica-mantener-los-buferes-actualizados-automaticamente">
|
|
|
|
|
<span id="id12"></span><h2>19.5 Reversión Automática: Mantener los Búferes Actualizados Automáticamente<a class="headerlink" href="#reversion-automatica-mantener-los-buferes-actualizados-automaticamente" title="Link to this heading"></a></h2>
|
|
|
|
@ -520,8 +520,8 @@ copiar.</p>
|
|
|
|
|
<p>Por defecto, el modo Auto Revert funciona usando <em>notificaciones de archivos</em>, mediante las cuales los cambios en el sistema de archivos son reportados a Emacs por el sistema operativo. Puede desactivar el uso de notificaciones de archivos personalizando la variable <code class="docutils literal notranslate"><span class="pre">auto-revert-use-notify</span></code> a un valor nulo, entonces Emacs comprobará los cambios en los archivos mediante sondeo cada cinco segundos. Puede cambiar el intervalo de sondeo a través de la variable <code class="docutils literal notranslate"><span class="pre">auto-revert-interval</span></code>.</p>
|
|
|
|
|
<p>No todos los sistemas admiten notificaciones de archivos; en los casos en que no se admitan, la opción <code class="docutils literal notranslate"><span class="pre">auto-revert-use-notify</span></code> será nula por defecto.</p>
|
|
|
|
|
<p>Por defecto, el Auto Revert mode (modo de Reversión Automática) sondeará periódicamente los archivos en busca de cambios, incluso cuando se utilicen las notificaciones de archivos. El sondeo es innecesario en muchos casos, y desactivarlo puede ahorrar energía al confiar sólo en las notificaciones. Para ello, establezca la variable <code class="docutils literal notranslate"><span class="pre">auto-revert-avoid-polling</span></code> a no nulo. Sin embargo, la notificación es ineficaz en ciertos sistemas de archivos; principalmente en sistemas de archivos de red en máquinas tipo Unix, donde los archivos pueden ser alterados desde otras máquinas. Para estos sistemas de archivo, puede ser necesario el sondeo. Para forzar el sondeo cuando <code class="docutils literal notranslate"><span class="pre">auto-revert-avoid-polling</span></code> no es nulo, establezca <code class="docutils literal notranslate"><span class="pre">auto-revert-notify-exclude-dir-regexp</span></code> para que coincida con los archivos que deben ser excluidos del uso de la notificación.</p>
|
|
|
|
|
<p>En los búferes de Dired (vea <strong>Dired, el Editor de Directorios</strong>), el modo Auto Revert refresca el búfer cuando se crea o borra un archivo en el directorio del búfer.</p>
|
|
|
|
|
<p>Vea <strong>Deshacer Acciones de Control de Versiones</strong>, para comandos para revertir a versiones anteriores de archivos bajo control de versiones. Vea <strong>Control de Versiones y la Línea de Modo</strong>, para las peculiaridades de la Reversión Automática cuando se visitan archivos bajo control de versiones.</p>
|
|
|
|
|
<p>En los búferes de Dired (vea <a class="reference internal" href="31_DiredEditDirect.html#id1"><span class="std std-ref">31 Dired, el Editor de Directorios</span></a>), el modo Auto Revert refresca el búfer cuando se crea o borra un archivo en el directorio del búfer.</p>
|
|
|
|
|
<p>Vea <a class="reference internal" href="29_ManyProgrsGrands.html#id6"><span class="std std-ref">29.1.8 Deshacer Acciones de Control de Versiones</span></a>, para comandos para revertir a versiones anteriores de archivos bajo control de versiones. Vea <a class="reference internal" href="29_ManyProgrsGrands.html#id4"><span class="std std-ref">29.1.2 Control de Versiones y la Línea de Modo</span></a>, para las peculiaridades de la Reversión Automática cuando se visitan archivos bajo control de versiones.</p>
|
|
|
|
|
<section id="reversion-automatica-de-buferes-que-no-son-de-archivo">
|
|
|
|
|
<h3>19.5.1 Reversión Automática de Búferes que no son de Archivo<a class="headerlink" href="#reversion-automatica-de-buferes-que-no-son-de-archivo" title="Link to this heading"></a></h3>
|
|
|
|
|
<p>El Global Auto Revert Mode (Modo de Reversión Automática Global) normalmente sólo revierte los búferes de archivo. Hay dos maneras de revertir automáticamente ciertos búferes que no son de archivo: activando el Modo de Reversión Automática en esos búferes (usando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">auto-revert-mode</span></code>); y estableciendo <code class="docutils literal notranslate"><span class="pre">global-auto-revert-non-file-buffers</span></code> a un valor no nulo. Esta última opción activa la reversión automática para todos los tipos de búferes para los que está implementada (listados en el menú inferior).</p>
|
|
|
|
@ -532,7 +532,7 @@ copiar.</p>
|
|
|
|
|
<p>Los detalles dependen de los tipos concretos de búferes y se explican en las secciones correspondientes.</p>
|
|
|
|
|
<section id="reversion-automatica-del-menu-de-buferes">
|
|
|
|
|
<h4>19.5.1.1 Reversión Automática del Menú de Búferes<a class="headerlink" href="#reversion-automatica-del-menu-de-buferes" title="Link to this heading"></a></h4>
|
|
|
|
|
<p>Si la auto-reversión de búferes que no son archivos está activada, el Menú de Búferes (ver <strong>Operando en Varios Búferes</strong>) se revierte automáticamente cada intervalo de auto-reversión de segundos, haya o no necesidad de ello. (Probablemente se tardaría más en comprobar si hay necesidad que en revertir realmente).</p>
|
|
|
|
|
<p>Si la auto-reversión de búferes que no son archivos está activada, el Menú de Búferes (ver <a class="reference internal" href="20_UsarVariosBuferes.html#id4"><span class="std std-ref">20.5 Trabajar con Varios Búferes</span></a>) se revierte automáticamente cada intervalo de auto-reversión de segundos, haya o no necesidad de ello. (Probablemente se tardaría más en comprobar si hay necesidad que en revertir realmente).</p>
|
|
|
|
|
<p>Si el menú de búferes se marca inapropiadamente como modificado, simplemente reviertalo manualmente usando <code class="docutils literal notranslate"><span class="pre">g</span></code> y la auto-reversión se reanudará. Sin embargo, si marcó ciertos búferes para ser borrados o para ser mostrados, tiene que tener cuidado, porque revertir borra todas las marcas. El hecho de que al añadir marcas se establezca la bandera de modificado del búfer impide que la reversión automática borre dichas marcas.</p>
|
|
|
|
|
</section>
|
|
|
|
|
<section id="reversion-automatica-de-buferes-dired">
|
|
|
|
@ -543,30 +543,29 @@ el buffer usando <code class="docutils literal notranslate"><span class="pre">g<
|
|
|
|
|
borrado, por supuesto). Sin embargo, el buffer permanecerá modificado, incluso después de revertir, y la auto-reversión no se reanudará. Esto se debe a que, si marca archivos, es posible
|
|
|
|
|
que esté trabajando en el buffer y no quiera que éste cambie sin previo aviso. Si quiere que la auto-reversión se reanude en presencia de marcas y banderas, marque el buffer como no
|
|
|
|
|
modificado usando <code class="docutils literal notranslate"><span class="pre">M-~</span></code>. Sin embargo, si añade, borra o cambia marcas o banderas, volverá a marcarlo como modificado.</p>
|
|
|
|
|
<p>Los búferes remotos Dired no son actualmente auto-revertidos. Tampoco lo son los buffers Dired para los que se usaron comodines del shell o argumentos de archivo para listar sólo algunos
|
|
|
|
|
de los archivos. Los buffers <code class="docutils literal notranslate"><span class="pre">*Find*</span></code> y <code class="docutils literal notranslate"><span class="pre">*Locate*</span></code> tampoco se auto-revierten.</p>
|
|
|
|
|
<p>Actualmente, los búferes remotos Dired auto-revertidos. Tampoco lo son los buffers Dired para los que se usaron comodines del shell o argumentos de archivo para listar sólo algunos de los archivos. Los buffers <code class="docutils literal notranslate"><span class="pre">*Find*</span></code> y <code class="docutils literal notranslate"><span class="pre">*Locate*</span></code> tampoco se auto-revierten.</p>
|
|
|
|
|
<p>Tenga en cuenta que la auto-reversión de los buffers Dired puede no funcionar satisfactoriamente en algunos sistemas.</p>
|
|
|
|
|
</section>
|
|
|
|
|
</section>
|
|
|
|
|
</section>
|
|
|
|
|
<section id="guardado-automatico-proteccion-frente-a-desastres">
|
|
|
|
|
<span id="id13"></span><h2>19.6 Guardado Automático: Protección Frente a Desastres<a class="headerlink" href="#guardado-automatico-proteccion-frente-a-desastres" title="Link to this heading"></a></h2>
|
|
|
|
|
<p>De vez en cuando, Emacs guarda automáticamente cada archivo visitado en un archivo separado, sin alterar el archivo que realmente usa. Esto se llama auto-guardado. Evita que se pierda más que una cantidad limitada de trabajo si el sistema se bloquea.</p>
|
|
|
|
|
<p>Cuando Emacs determina que es el momento del auto-guardado, considera cada búfer, y cada uno es auto-guardado si el auto-guardado está habilitado para él y ha sido cambiado desde la última vez que fue auto-guardado. Cuando la variable <code class="docutils literal notranslate"><span class="pre">auto-save-no-message</span></code> está en nil (por defecto), el mensaje <code class="docutils literal notranslate"><span class="pre">Auto-saving...</span></code> (Auto guardando…) se muestra en el área de eco durante el auto-guardado, si algún archivo es realmente auto-guardado; para desactivar estos mensajes, personalice la variable a un valor no nil. Los errores que se producen durante el autoguardado se capturan para que no interfieran con la ejecución de los comandos que ha estado escribiendo.</p>
|
|
|
|
|
<p>De vez en cuando, Emacs guarda automáticamente cada archivo visitado en un archivo separado, sin alterar el archivo que realmente usa. Esto se llama <em>auto-guardado</em>. Evita que se pierda más que una cantidad limitada de trabajo si el sistema se bloquea.</p>
|
|
|
|
|
<p>Cuando Emacs determina que es el momento del auto-guardado, considera cada búfer, y cada uno es auto-guardado si el auto-guardado está habilitado para él y ha sido cambiado desde la última vez que fue auto-guardado. Cuando la variable <code class="docutils literal notranslate"><span class="pre">auto-save-no-message</span></code> está en <code class="docutils literal notranslate"><span class="pre">nil</span></code> (por defecto), el mensaje <code class="docutils literal notranslate"><span class="pre">Auto-saving...</span></code> (Auto guardando…) se muestra en el área de eco durante el auto-guardado, si algún archivo es realmente auto-guardado; para desactivar estos mensajes, personalice la variable a un valor no nil. Los errores que se producen durante el autoguardado se capturan para que no interfieran con la ejecución de los comandos que ha estado escribiendo.</p>
|
|
|
|
|
<section id="autoguardar-archivos">
|
|
|
|
|
<h3>19.6.1 Autoguardar Archivos<a class="headerlink" href="#autoguardar-archivos" title="Link to this heading"></a></h3>
|
|
|
|
|
<p>El auto-guardado normalmente no guarda en los archivos que visitó, porque puede ser muy indeseable guardar un cambio que no quería hacer permanente. En su lugar, este procedimiento se realiza en un archivo diferente llamado <em>archivo de auto-guardado</em>, y el archivo visitado se cambia sólo cuando Usted solicita guardar explícitamente (como con <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-s</span></code>).</p>
|
|
|
|
|
<p>Normalmente, el nombre del archivo de autoguardado se hace añadiendo <code class="docutils literal notranslate"><span class="pre">#</span></code> al principio y al final del nombre del archivo visitado. Así, un búfer que visita el archivo <code class="docutils literal notranslate"><span class="pre">foo.c</span></code> se autoguarda en un archivo <code class="docutils literal notranslate"><span class="pre">#foo.c#</span></code>. La mayoría de los búferes que no visitan archivos se autoguardan sólo si Usted lo solicita explícitamente; cuando se autoguardan, el nombre del archivo autoguardado se hace añadiendo <code class="docutils literal notranslate"><span class="pre">#</span></code> al principio y al final del nombre del búfer, y luego añadiendo dígitos y letras al final para que sea único. Por ejemplo, el búfer <code class="docutils literal notranslate"><span class="pre">*mail*</span></code> en el que escribe los mensajes que va a enviar puede guardarse automáticamente en un archivo llamado <code class="docutils literal notranslate"><span class="pre">#*mail*#704juu</span></code>. Los nombres de archivo de auto-guardado se hacen así a menos que reprograme partes de Emacs para hacer algo diferente (las funciones <code class="docutils literal notranslate"><span class="pre">make-auto-save-file-name</span></code> y <code class="docutils literal notranslate"><span class="pre">auto-save-file-name-p</span></code>). El nombre de archivo a usar para auto-guardado en un búfer se calcula cuando se activa el auto-guardado en ese búfer.</p>
|
|
|
|
|
<p>La variable <code class="docutils literal notranslate"><span class="pre">auto-save-file-name-transforms</span></code> permite un cierto grado de control sobre el nombre del archivo de autoguardado. Permite especificar una serie de expresiones regulares y sustituciones para transformar el nombre del archivo de autoguardado. El valor predeterminado coloca los archivos de autoguardado para archivos remotos (véase <strong>Archivos Remotos</strong>) en el directorio de archivos temporales de la máquina local.</p>
|
|
|
|
|
<p>La variable <code class="docutils literal notranslate"><span class="pre">auto-save-file-name-transforms</span></code> permite un cierto grado de control sobre el nombre del archivo de autoguardado. Permite especificar una serie de expresiones regulares y sustituciones para transformar el nombre del archivo de autoguardado. El valor predeterminado coloca los archivos de autoguardado para archivos remotos (véase <a class="reference internal" href="#id20"><span class="std std-ref">19.15 Archivos Remotos</span></a>) en el directorio de archivos temporales de la máquina local.</p>
|
|
|
|
|
<p>Cuando borra una parte sustancial del texto en un búfer grande, el autoguardado se desactiva temporalmente en ese búfer. Esto se debe a que si ha borrado el texto sin querer, puede que el archivo de autoguardado le resulte más útil si contiene el texto borrado. Para volver a activar el guardado automático después de que esto ocurra, guarde el búfer con <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-s</span></code>, o utilice el modo de guardado automático <code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">1</span> <span class="pre">M-x</span></code>.</p>
|
|
|
|
|
<p>Si desea que el autoguardado se realice en el archivo visitado en lugar de en un archivo de autoguardado separado, active el modo menor global <code class="docutils literal notranslate"><span class="pre">auto-save-visited-mode</span></code>. En este modo, el autoguardado es idéntico al guardado explícito. Tenga en cuenta que este modo es ortogonal al modo de autoguardado descrito anteriormente; puede activar ambos al mismo tiempo. Sin embargo, si el modo de autoguardado está activo en algún búfer y la variable obsoleta <code class="docutils literal notranslate"><span class="pre">auto-save-visited-file-name</span></code> tiene un valor no nulo, ese búfer no se verá afectado por <code class="docutils literal notranslate"><span class="pre">auto-save-visited-mode</span></code>.</p>
|
|
|
|
|
<p>Puede utilizar la variable <code class="docutils literal notranslate"><span class="pre">auto-save-visited-interval</span></code> para personalizar el intervalo entre operaciones de auto-guardado en <code class="docutils literal notranslate"><span class="pre">auto-save-visited-mode</span></code>; por defecto es de cinco segundos. <code class="docutils literal notranslate"><span class="pre">auto-save-interval</span></code> y <code class="docutils literal notranslate"><span class="pre">auto-save-timeout</span></code> no tienen efecto sobre <code class="docutils literal notranslate"><span class="pre">auto-save-visited-mode</span></code>. Vea <strong>Controlando el Auto-guardado</strong>, para más detalles sobre estas variables.</p>
|
|
|
|
|
<p>Puede utilizar la variable <code class="docutils literal notranslate"><span class="pre">auto-save-visited-interval</span></code> para personalizar el intervalo entre operaciones de auto-guardado en <code class="docutils literal notranslate"><span class="pre">auto-save-visited-mode</span></code>; por defecto es de cinco segundos. <code class="docutils literal notranslate"><span class="pre">auto-save-interval</span></code> y <code class="docutils literal notranslate"><span class="pre">auto-save-timeout</span></code> no tienen efecto sobre <code class="docutils literal notranslate"><span class="pre">auto-save-visited-mode</span></code>. Vea <a class="reference internal" href="#id14"><span class="std std-ref">19.6.2. Control del Autoguardado</span></a>, para más detalles sobre estas variables.</p>
|
|
|
|
|
<p>El archivo de auto-guardado de un búfer se borra cuando guarda el búfer en su archivo visitado. (Cambiar el nombre del archivo visitado con <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-w</span></code> o <code class="docutils literal notranslate"><span class="pre">set-visited-file-name</span></code> renombra cualquier archivo autoguardado para que vaya con el nuevo nombre visitado.</p>
|
|
|
|
|
<p>Matar un búfer, por defecto, no elimina el archivo de autoguardado del búfer. Si <code class="docutils literal notranslate"><span class="pre">kill-buffer-delete-auto-save-files</span></code> no es nulo, matar un búfer que tiene un archivo de autoguardado hará que Emacs pregunte al Usuario si el archivo de autoguardado debe ser borrado. (Esto se inhibe si <code class="docutils literal notranslate"><span class="pre">delete-auto-save-files</span></code> es <code class="docutils literal notranslate"><span class="pre">nil</span></code>).</p>
|
|
|
|
|
</section>
|
|
|
|
|
<section id="control-del-autoguardado">
|
|
|
|
|
<h3>19.6.2. Control del Autoguardado<a class="headerlink" href="#control-del-autoguardado" title="Link to this heading"></a></h3>
|
|
|
|
|
<p>Cada vez que visita un archivo, se activa el autoguardado para el búfer de ese archivo si la variable <code class="docutils literal notranslate"><span class="pre">auto-save-default</span></code> es distinta de <code class="docutils literal notranslate"><span class="pre">nil</span></code> (pero no en modo por lotes; vea <strong>Opciones Iniciales</strong>). El valor predeterminado de esta variable es <code class="docutils literal notranslate"><span class="pre">t</span></code>, por lo que el autoguardado es la práctica habitual para los búferes que visitan archivos. Para activar el autoguardado en el búfer actual, escriba <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <code class="docutils literal notranslate"><span class="pre">save-mode</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">auto-save-mode</span></code>). El modo de auto-guardado actúa como un modo menor local del búfer (ver <strong>Modos Menores</strong>).</p>
|
|
|
|
|
<span id="id14"></span><h3>19.6.2. Control del Autoguardado<a class="headerlink" href="#control-del-autoguardado" title="Link to this heading"></a></h3>
|
|
|
|
|
<p>Cada vez que visita un archivo, se activa el autoguardado para el búfer de ese archivo si la variable <code class="docutils literal notranslate"><span class="pre">auto-save-default</span></code> es distinta de <code class="docutils literal notranslate"><span class="pre">nil</span></code> (pero no en modo por lotes; vea <a class="reference internal" href="ApendiceC.html#c-2"><span class="std std-ref">C.2 Opciones Iniciales</span></a>). El valor predeterminado de esta variable es <code class="docutils literal notranslate"><span class="pre">t</span></code>, por lo que el autoguardado es la práctica habitual para los búferes que visitan archivos. Para activar el autoguardado en el búfer actual, escriba <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <code class="docutils literal notranslate"><span class="pre">save-mode</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">auto-save-mode</span></code>). El modo de auto-guardado actúa como un modo menor local del búfer (ver <a class="reference internal" href="24_ModosMayores-Y-Menores.html#id3"><span class="std std-ref">24.2 Modos Menores</span></a>).</p>
|
|
|
|
|
<p>Emacs auto-guarda periódicamente basándose en cuántos caracteres ha tecleado desde el último auto-guardado. La variable <code class="docutils literal notranslate"><span class="pre">auto-save-interval</span></code> especifica cuántos caracteres hay entre auto-guardados. Por defecto, es 300. Emacs no acepta valores demasiado pequeños: si personaliza <code class="docutils literal notranslate"><span class="pre">auto-save-interval</span></code> a un valor inferior a 20, Emacs se comportará como si el valor fuera 20.</p>
|
|
|
|
|
<p>El autoguardado también tiene lugar cuando deja de teclear durante un rato. Por defecto, lo hace después de 30 segundos de inactividad (en este momento, Emacs también puede realizar la recolección de basura; ver <strong>Recolección de Basura</strong> en el Manual de Referencia de Emacs Lisp). Para cambiar este intervalo, personalice la variable <code class="docutils literal notranslate"><span class="pre">auto-save-timeout</span></code>. El periodo de tiempo real es más largo si el búfer actual es largo; esto es una heurística que pretende mantenerse fuera de su camino cuando está editando búferes largos, en los que el auto-guardado toma una cantidad apreciable de tiempo. El auto-guardado durante periodos de inactividad consigue dos cosas: primero, se asegura de que todo su trabajo se guarda si se aleja de la terminal durante un tiempo; segundo, puede evitar algún auto-guardado mientras está escribiendo.</p>
|
|
|
|
|
<p>Cuando el modo auto-guardado-visitado (<code class="docutils literal notranslate"><span class="pre">auto-save-visited-mode</span></code>) está activado, Emacs auto-guardará los búferes de archivos visitados después de cinco segundos de inactividad. Puede personalizar la variable <code class="docutils literal notranslate"><span class="pre">auto-save-visited-interval</span></code> para cambiar el intervalo de tiempo de inactividad.</p>
|
|
|
|
@ -592,20 +591,23 @@ de los archivos. Los buffers <code class="docutils literal notranslate"><span cl
|
|
|
|
|
<h2>19.7 Alias de Nombres de Archivo<a class="headerlink" href="#alias-de-nombres-de-archivo" title="Link to this heading"></a></h2>
|
|
|
|
|
<p>Tanto los enlaces simbólicos como los enlaces duros permiten que varios nombres de archivo se refieran al mismo archivo. Los enlaces duros son nombres alternativos que se refieren directamente al archivo; todos los nombres son igualmente válidos, y no hay ninguno de preferencia. Por el contrario, un enlace simbólico es una especie de alias definido: cuando <code class="docutils literal notranslate"><span class="pre">foo</span></code> es un enlace simbólico a <code class="docutils literal notranslate"><span class="pre">bar</span></code>, puede utilizar cualquiera de los dos nombres para referirse al archivo, pero <code class="docutils literal notranslate"><span class="pre">bar</span></code> es el nombre real, mientras que <code class="docutils literal notranslate"><span class="pre">foo</span></code> es sólo un alias. Los casos más complejos se dan cuando los enlaces simbólicos apuntan a directorios.</p>
|
|
|
|
|
<p>Normalmente, si consulta un archivo que Emacs ya está visitando con un nombre diferente, muestra un mensaje en el área de eco y utiliza el búfer existente visitando ese archivo. Esto puede ocurrir en sistemas que soportan enlaces duros o simbólicos, o si usa un nombre de archivo largo en un sistema que trunca nombres de archivo largos, o en un sistema de archivos que no distingue mayúsculas de minúsculas. Puede suprimir el mensaje asignando a la variable <code class="docutils literal notranslate"><span class="pre">find-file-suppress-same-file-warnings</span></code> un valor distinto de cero. Puede desactivar completamente esta función estableciendo la variable <code class="docutils literal notranslate"><span class="pre">find-file-existing-other-name</span></code> a <code class="docutils literal notranslate"><span class="pre">nil</span></code>: entonces, si visita el mismo archivo con dos nombres diferentes, obtendrá un búfer distinto para cada nombre de archivo.</p>
|
|
|
|
|
<p>Si la variable <code class="docutils literal notranslate"><span class="pre">find-file-visit-truename</span></code> es distinta de <code class="docutils literal notranslate"><span class="pre">nil</span></code>, entonces el nombre de archivo registrado para un búfer es el nombre verdadero del archivo (obtenido reemplazando todos los enlaces simbólicos por sus nombres de destino), en lugar del nombre que especifique. La configuración de <code class="docutils literal notranslate"><span class="pre">find-file-visit-truename</span></code> también implica el efecto de <code class="docutils literal notranslate"><span class="pre">find-file-existing-other-name</span></code>.</p>
|
|
|
|
|
<p>A veces, se accede normalmente a un directorio a través de un enlace simbólico, y podría querer que Emacs mostrara preferentemente su nombre enlazado. Para ello, personalice <code class="docutils literal notranslate"><span class="pre">directory-abbrev-alist</span></code>. Cada elemento de esta lista debe tener la forma (<code class="docutils literal notranslate"><span class="pre">de</span> <span class="pre">.</span> <span class="pre">a</span></code>), lo que significa sustituir <em>de</em> por <em>a</em> siempre que aparezca de en un nombre de directorio. La cadena <em>de</em> es una expresión regular (véase <strong>Sintaxis de Expresiones Regulares</strong>). Se compara con nombres de directorio anclados en el primer carácter, y debe empezar por <code class="docutils literal notranslate"><span class="pre">\`</span></code> (para soportar nombres de directorio con nuevas líneas incrustadas, lo que anularía <code class="docutils literal notranslate"><span class="pre">^</span></code>). La cadena <em>a</em> debe ser un nombre de directorio absoluto ordinario que apunte al mismo directorio. No use <code class="docutils literal notranslate"><span class="pre">~</span></code> para representar un directorio personal en la cadena <em>de</em>; Emacs realiza estas sustituciones por separado. Aquí hay un ejemplo, de un sistema en el que <code class="docutils literal notranslate"><span class="pre">/home/fsf</span></code> se accede normalmente a través de un enlace simbólico llamado <code class="docutils literal notranslate"><span class="pre">/fsf</span></code>:</p>
|
|
|
|
|
<p>Si la variable <code class="docutils literal notranslate"><span class="pre">find-file-visit-truename</span></code> es distinta de <code class="docutils literal notranslate"><span class="pre">nil</span></code>, entonces el nombre de archivo registrado para un búfer es el <em>nombre real</em> del archivo (obtenido reemplazando todos los enlaces simbólicos por sus nombres de destino), en lugar del nombre que especifique. La configuración de <code class="docutils literal notranslate"><span class="pre">find-file-visit-truename</span></code> también implica el efecto de <code class="docutils literal notranslate"><span class="pre">find-file-existing-other-name</span></code>.</p>
|
|
|
|
|
<p>A veces, se accede normalmente a un directorio a través de un enlace simbólico, y podría querer que Emacs mostrara preferentemente su nombre enlazado. Para ello, personalice <code class="docutils literal notranslate"><span class="pre">directory-abbrev-alist</span></code>. Cada elemento de esta lista debe tener la forma (<code class="docutils literal notranslate"><span class="pre">de</span> <span class="pre">.</span> <span class="pre">a</span></code>), lo que significa sustituir <em>de</em> por <em>a</em> siempre que aparezca de en un nombre de directorio. La cadena <em>de</em> es una expresión regular (véase <a class="reference internal" href="16_BusqReemp.html#id13"><span class="std std-ref">16.6 Sintaxis de las Expresiones Regulares</span></a>). Se compara con nombres de directorio anclados en el primer carácter, y debe empezar por <code class="docutils literal notranslate"><span class="pre">\`</span></code> (para soportar nombres de directorio con nuevas líneas incrustadas, lo que anularía <code class="docutils literal notranslate"><span class="pre">^</span></code>). La cadena <em>a</em> debe ser un nombre de directorio absoluto ordinario que apunte al mismo directorio. No use <code class="docutils literal notranslate"><span class="pre">~</span></code> para representar un directorio personal en la cadena <em>de</em>; Emacs realiza estas sustituciones por separado. Aquí hay un ejemplo, de un sistema en el que <code class="docutils literal notranslate"><span class="pre">/home/fsf</span></code> se accede normalmente a través de un enlace simbólico llamado <code class="docutils literal notranslate"><span class="pre">/fsf</span></code>:</p>
|
|
|
|
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">((</span><span class="s2">"</span><span class="se">\\</span><span class="s2">`/home/fsf"</span> <span class="o">.</span> <span class="s2">"/fsf"</span><span class="p">))</span>
|
|
|
|
|
</pre></div>
|
|
|
|
|
</div>
|
|
|
|
|
</section>
|
|
|
|
|
<section id="directorios-de-archivos">
|
|
|
|
|
<h2>19.8 Directorios de Archivos<a class="headerlink" href="#directorios-de-archivos" title="Link to this heading"></a></h2>
|
|
|
|
|
<p>El sistema de archivos agrupa los archivos en <em>directorios</em>. Un <em>listado de directorios</em> es una lista de todos los archivos de un directorio. Emacs proporciona comandos para crear y borrar directorios, y para hacer listados de directorios en formato breve (sólo nombres de archivos) y en formato detallado (tamaños, fechas y otros atributos incluidos). Emacs también incluye una característica de navegador de directorios llamada Dired, que puede invocar con <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">d</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">d</span></code>); vea <strong>Dired, el Editor de Directorios</strong>.</p>
|
|
|
|
|
<p>El sistema de archivos agrupa los archivos en <em>directorios</em>. Un <em>listado de directorios</em> es una lista de todos los archivos de un directorio. Emacs proporciona comandos para crear y borrar directorios, y para hacer listados de directorios en formato breve (sólo nombres de archivos) y en formato detallado (tamaños, fechas y otros atributos incluidos). Emacs también incluye una característica de navegador de directorios llamada Dired, que puede invocar con <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">d</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">d</span></code>); vea <a class="reference internal" href="31_DiredEditDirect.html#id1"><span class="std std-ref">31 Dired, el Editor de Directorios</span></a>.</p>
|
|
|
|
|
<p><kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">d</kbd> <em>directorio-o-patrón</em> <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-d</span></code> <em>directorio-o-patrón</em> <code class="docutils literal notranslate"><span class="pre">RET</span></code>)</p>
|
|
|
|
|
<blockquote>
|
|
|
|
|
<div><p>Muestra un breve listado de directorios (<code class="docutils literal notranslate"><span class="pre">list-directory</span></code>).</p>
|
|
|
|
|
</div></blockquote>
|
|
|
|
|
<p><kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">u</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">d</kbd> (<code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">C-x</span> <span class="pre">C-d</span></code> <em>directorio-o-patrón</em> <code class="docutils literal notranslate"><span class="pre">RET</span></code>)</p>
|
|
|
|
|
<div class="line-block">
|
|
|
|
|
<div class="line"><kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">u</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">d</kbd> <em>directorio-o-patron</em> <kbd class="kbd docutils literal notranslate">RETURN</kbd></div>
|
|
|
|
|
<div class="line">(<code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">C-x</span> <span class="pre">C-d</span></code> <em>directorio-o-patrón</em> <code class="docutils literal notranslate"><span class="pre">RET</span></code>)</div>
|
|
|
|
|
</div>
|
|
|
|
|
<blockquote>
|
|
|
|
|
<div><p>Muestra un listado detallado de directorios.</p>
|
|
|
|
|
</div></blockquote>
|
|
|
|
@ -613,7 +615,10 @@ de los archivos. Los buffers <code class="docutils literal notranslate"><span cl
|
|
|
|
|
<blockquote>
|
|
|
|
|
<div><p>Crea un nuevo directorio llamado <em>nombredir</em>.</p>
|
|
|
|
|
</div></blockquote>
|
|
|
|
|
<p><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <code class="docutils literal notranslate"><span class="pre">delete-directory</span></code> <kbd class="kbd docutils literal notranslate">RETURN</kbd> <em>nombredir</em> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">delete-directory</span> <span class="pre">RET</span></code> <em>nombredir</em> <code class="docutils literal notranslate"><span class="pre">RET</span></code>)</p>
|
|
|
|
|
<div class="line-block">
|
|
|
|
|
<div class="line"><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <code class="docutils literal notranslate"><span class="pre">delete-directory</span></code> <kbd class="kbd docutils literal notranslate">RETURN</kbd> <em>nombredir</em></div>
|
|
|
|
|
<div class="line">(<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">delete-directory</span> <span class="pre">RET</span></code> <em>nombredir</em> <code class="docutils literal notranslate"><span class="pre">RET</span></code>)</div>
|
|
|
|
|
</div>
|
|
|
|
|
<blockquote>
|
|
|
|
|
<div><p>Borra el directorio llamado <em>nombredir</em>. Si no está vacío, se le preguntará si desea eliminarlo de forma recursiva.</p>
|
|
|
|
|
</div></blockquote>
|
|
|
|
@ -628,29 +633,29 @@ de los archivos. Los buffers <code class="docutils literal notranslate"><span cl
|
|
|
|
|
<p>Normalmente, <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-d</span></code> muestra un breve listado de directorios que sólo contiene los nombres de los archivos. Un argumento numérico (independientemente del valor) le indica que haga un listado detallado que incluya tamaños, fechas y propietarios (como <code class="docutils literal notranslate"><span class="pre">ls</span> <span class="pre">-l</span></code>).</p>
|
|
|
|
|
<p>El texto de un listado de directorios se obtiene principalmente ejecutando <code class="docutils literal notranslate"><span class="pre">ls</span></code> en un proceso inferior. Dos variables de Emacs controlan las opciones pasadas a <code class="docutils literal notranslate"><span class="pre">ls</span></code>: <code class="docutils literal notranslate"><span class="pre">list-directory-brief-switches</span></code> es una cadena que da las opciones a usar en listados breves (<code class="docutils literal notranslate"><span class="pre">"-CF"</span></code> por defecto), y <code class="docutils literal notranslate"><span class="pre">list-directory-verbose-switches</span></code> es una cadena que da las opciones a usar en un listado detallado (<code class="docutils literal notranslate"><span class="pre">"-l"</span></code> por defecto).</p>
|
|
|
|
|
<p>En los listados detallados de directorios, Emacs añade información sobre la cantidad de espacio libre en el disco que contiene el directorio.</p>
|
|
|
|
|
<p>El comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">delete-directory</span></code> pregunta por el nombre de un directorio usando el minibuffer, y borra el directorio si está vacío. Si el directorio no está vacío, se le preguntará si desea borrarlo recursivamente. En los sistemas que disponen de la función «Papelera» (o «Papelera de reciclaje»), puede hacer que este comando mueva el directorio especificado a la Papelera en lugar de borrarlo directamente, cambiando la variable <code class="docutils literal notranslate"><span class="pre">delete-by-moving-to-trash</span></code> a <code class="docutils literal notranslate"><span class="pre">t</span></code>. Consulte <strong>Operaciones Varias con Archivos</strong>, para obtener más información sobre el uso de la Papelera.</p>
|
|
|
|
|
<p>El comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">delete-directory</span></code> pregunta por el nombre de un directorio usando el minibuffer, y borra el directorio si está vacío. Si el directorio no está vacío, se le preguntará si desea borrarlo recursivamente. En los sistemas que disponen de la función «Papelera» (o «Papelera de reciclaje»), puede hacer que este comando mueva el directorio especificado a la Papelera en lugar de borrarlo directamente, cambiando la variable <code class="docutils literal notranslate"><span class="pre">delete-by-moving-to-trash</span></code> a <code class="docutils literal notranslate"><span class="pre">t</span></code>. Consulte <a class="reference internal" href="#id17"><span class="std std-ref">19.12 Operaciones Varias con Archivos</span></a>, para obtener más información sobre el uso de la Papelera.</p>
|
|
|
|
|
</section>
|
|
|
|
|
<section id="comparacion-de-archivos">
|
|
|
|
|
<span id="id14"></span><h2>19.9 Comparación de Archivos<a class="headerlink" href="#comparacion-de-archivos" title="Link to this heading"></a></h2>
|
|
|
|
|
<span id="id15"></span><h2>19.9 Comparación de Archivos<a class="headerlink" href="#comparacion-de-archivos" title="Link to this heading"></a></h2>
|
|
|
|
|
<p>El comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">diff</span></code> pregunta por dos nombres de archivo, usando el minibúfer, y muestra las diferencias entre los dos archivos en un búfer llamado <code class="docutils literal notranslate"><span class="pre">*diff*</span></code>. Esto funciona ejecutando el programa <code class="docutils literal notranslate"><span class="pre">diff</span></code>, usando opciones tomadas de la variable <code class="docutils literal notranslate"><span class="pre">diff-switches</span></code>. El valor de <code class="docutils literal notranslate"><span class="pre">diff-switches</span></code> debe ser una cadena; el valor por defecto es <code class="docutils literal notranslate"><span class="pre">"-u"</span></code> para especificar un <code class="docutils literal notranslate"><span class="pre">diff</span></code> de contexto unificado. Vea <strong>Diff</strong> en Comparar y Fusionar Archivos, para más información sobre el programa <code class="docutils literal notranslate"><span class="pre">diff</span></code>.</p>
|
|
|
|
|
<p>La salida del comando <code class="docutils literal notranslate"><span class="pre">diff</span></code> se muestra usando un modo principal llamado modo Diff. Vea <strong>Modo Diff</strong>.</p>
|
|
|
|
|
<p>La salida del comando <code class="docutils literal notranslate"><span class="pre">diff</span></code> se muestra usando un modo principal llamado modo Diff. Vea <a class="reference internal" href="#id16"><span class="std std-ref">19.10 Modo Diff</span></a>.</p>
|
|
|
|
|
<p>Una alternativa (mucho más sofisticada) es <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">ediff</span></code> (ver <strong>Ediff</strong> en El Manual de Ediff).</p>
|
|
|
|
|
<p>El comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">diff-backup</span></code> compara un archivo especificado con su copia de seguridad más reciente. Si especifica el nombre de un archivo de copia de seguridad, <code class="docutils literal notranslate"><span class="pre">diff-backup</span></code> lo compara con el archivo fuente del que es una copia de seguridad. En todos los demás aspectos, se comporta como <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">diff</span></code>.</p>
|
|
|
|
|
<p>El comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">diff-buffer-with-file</span></code> compara un búfer especificado con su archivo correspondiente. Esto muestra los cambios que se harían en el archivo si se guarda el búfer.</p>
|
|
|
|
|
<p>El comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">diff-buffers</span></code> compara el contenido de dos búferes especificados.</p>
|
|
|
|
|
<p>El comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">compare-windows</span></code> compara el texto en la ventana actual con el de la ventana que era la ventana seleccionada antes de que Usted seleccionara la actual. (Para más información sobre ventanas en Emacs, vea <strong>Ventanas Múltiples</strong>.) La comparación comienza en el punto en cada ventana, después de empujar cada valor inicial del punto en el anillo de marcas (vea <strong>El Anillo de Marcas</strong>) en su respectivo búfer. Luego se mueve el punto hacia adelante en cada ventana, un carácter a la vez, hasta que llega a los caracteres que no coinciden. A continuación, el comando finaliza.</p>
|
|
|
|
|
<p>Si el punto en las dos ventanas está seguido por texto no coincidente cuando se inicia el comando, <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">compare-windows</span></code> intenta heurísticamente avanzar hasta el texto coincidente en las dos ventanas, y luego sale. Por lo tanto, si utiliza <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">compar-windows</span></code> repetidamente (véase <strong>Repetición de un Comando</strong>), cada vez se salta un rango coincidente o encuentra el inicio de otro.</p>
|
|
|
|
|
<p>El comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">compare-windows</span></code> compara el texto en la ventana actual con el de la ventana que era la ventana seleccionada antes de que Usted seleccionara la actual. (Para más información sobre ventanas en Emacs, vea <a class="reference internal" href="21_VariasVentanas.html#id1"><span class="std std-ref">21 Varias Ventanas</span></a>) La comparación comienza en el punto en cada ventana, después de empujar cada valor inicial del punto en el anillo de marcas (vea <a class="reference internal" href="12_LaMarca-y-LaRegion.html#id7"><span class="std std-ref">12.4 El Anillo de Marcas</span></a>) en su respectivo búfer. Luego se mueve el punto hacia adelante en cada ventana, un carácter a la vez, hasta que llega a los caracteres que no coinciden. A continuación, el comando finaliza.</p>
|
|
|
|
|
<p>Si el punto en las dos ventanas está seguido por texto no coincidente cuando se inicia el comando, <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">compare-windows</span></code> intenta heurísticamente avanzar hasta el texto coincidente en las dos ventanas, y luego sale. Por lo tanto, si utiliza <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">compar-windows</span></code> repetidamente (véase <a class="reference internal" href="08_ComBasicEdic.html#id10"><span class="std std-ref">8.11 Repetición de una orden</span></a>), cada vez se salta un rango coincidente o encuentra el inicio de otro.</p>
|
|
|
|
|
<p>Con un argumento numérico, <code class="docutils literal notranslate"><span class="pre">compare-windows</span></code> ignora los cambios en los espacios en blanco. Si la variable <code class="docutils literal notranslate"><span class="pre">compare-ignore-case</span></code> es distinta de <code class="docutils literal notranslate"><span class="pre">nil</span></code>, la comparación también ignora las diferencias entre mayúsculas y minúsculas. Si la variable <code class="docutils literal notranslate"><span class="pre">compare-ignore-whitespace</span></code> no es nula, <code class="docutils literal notranslate"><span class="pre">compare-windows</span></code> ignora por defecto los cambios en los espacios en blanco, pero un argumento prefijo lo desactiva para esa única invocación del comando.</p>
|
|
|
|
|
<p>Puede usar <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">smerge-mode</span></code> para activar el modo Smerge, un modo menor para editar la salida del programa <code class="docutils literal notranslate"><span class="pre">diff3</span></code>. Esto es típicamente el resultado de una fusión fallida de una actualización del sistema de control de versiones fuera de VC, debido a cambios conflictivos en un archivo. El modo Smerge proporciona comandos para resolver conflictos seleccionando cambios específicos.</p>
|
|
|
|
|
<p>Vea <strong>Fusionar Archivos con Emerge</strong>, para la herramienta Emerge, que proporciona una potente interfaz para fusionar archivos.</p>
|
|
|
|
|
<p>Vea <a class="reference internal" href="29_ManyProgrsGrands.html#id26"><span class="std std-ref">29.6 Fusión de Archivos con Emerge</span></a>, para la herramienta Emerge, que proporciona una potente interfaz para fusionar archivos.</p>
|
|
|
|
|
</section>
|
|
|
|
|
<section id="modo-diff">
|
|
|
|
|
<h2>19.10 Modo Diff<a class="headerlink" href="#modo-diff" title="Link to this heading"></a></h2>
|
|
|
|
|
<p>El modo diff es un modo principal utilizado para la salida de <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">diff</span></code> y otros comandos similares. Este tipo de salida se llama <em>parche</em>, porque puede pasarse al comando <code class="docutils literal notranslate"><span class="pre">patch</span></code> para aplicar automáticamente los cambios especificados. Para seleccionar el modo diff manualmente, escriba <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <code class="docutils literal notranslate"><span class="pre">diff-mode</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">diff-mode</span></code>).</p>
|
|
|
|
|
<span id="id16"></span><h2>19.10 Modo Diff<a class="headerlink" href="#modo-diff" title="Link to this heading"></a></h2>
|
|
|
|
|
<p>El modo diff es un modo principal utilizado para la salida de <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">diff</span></code> y otros comandos similares. Este tipo de salida se llama <em>revisión</em> (o parche), porque puede pasarse al comando <code class="docutils literal notranslate"><span class="pre">patch</span></code> para aplicar automáticamente los cambios especificados. Para seleccionar el modo diff manualmente, escriba <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <code class="docutils literal notranslate"><span class="pre">diff-mode</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">diff-mode</span></code>).</p>
|
|
|
|
|
<p>Los cambios especificados en un parche se agrupan en <em>hunks</em>, que son trozos, bloques, segmentos o elementos contiguos de texto que contienen una o más líneas modificadas. Los trozos también suelen incluir líneas sin cambios para proporcionar contexto a los cambios. Cada trozo va precedido de una <em>cabecera de bloque</em>, que especifica los números de línea antiguos y nuevos en los que se producen los cambios del mismo. El modo Diff resalta cada cabecera de trozo, para distinguirla del contenido real de este.</p>
|
|
|
|
|
<p>El primer bloque de un parche va precedido de una cabecera de archivo, que muestra los nombres de las versiones nueva y antigua del archivo, y sus marcas de tiempo. Si un parche muestra cambios para más de un archivo, cada archivo tiene una cabecera de este tipo antes del primer trozo de los cambios de ese archivo.</p>
|
|
|
|
|
<p>Puede editar un búfer en modo Diff como cualquier otro búfer. (Si es de sólo lectura, necesita hacerlo escribible primero; vea <strong>Operaciones Varias con Búferes</strong>). Siempre que edite un trozo, el modo Diff intenta corregir automáticamente los números de línea en las cabeceras del trozo, para asegurarse de que el parche sigue siendo correcto, y aún podría ser aplicado por parche. Para desactivar la corrección automática del número de línea, cambie la variable <code class="docutils literal notranslate"><span class="pre">diff-update-on-the-fly</span></code> a <code class="docutils literal notranslate"><span class="pre">nil</span></code>.</p>
|
|
|
|
|
<p>El modo diff hace que los hunks sean tratados como mensajes de error del compilador por <code class="docutils literal notranslate"><span class="pre">M-g</span> <span class="pre">M-n</span></code> y otros comandos que manejan mensajes de error (vea <strong>Modo de Compilación</strong>). Así, puede usar los comandos del modo de compilación para visitar las ubicaciones de código fuente correspondientes.</p>
|
|
|
|
|
<p>Puede editar un búfer en modo Diff como cualquier otro búfer. (Si es de sólo lectura, necesita hacerlo escribible primero; vea <a class="reference internal" href="20_UsarVariosBuferes.html#id3"><span class="std std-ref">20.3 Operaciones Varias del Búfer</span></a>). Siempre que edite un trozo, el modo Diff intenta corregir automáticamente los números de línea en las cabeceras del trozo, para asegurarse de que el parche sigue siendo correcto, y aún podría ser aplicado por parche. Para desactivar la corrección automática del número de línea, cambie la variable <code class="docutils literal notranslate"><span class="pre">diff-update-on-the-fly</span></code> a <code class="docutils literal notranslate"><span class="pre">nil</span></code>.</p>
|
|
|
|
|
<p>El modo diff hace que los hunks sean tratados como mensajes de error del compilador por <code class="docutils literal notranslate"><span class="pre">M-g</span> <span class="pre">M-n</span></code> y otros comandos que manejan mensajes de error (vea <a class="reference internal" href="28_CompProbProg.html#id2"><span class="std std-ref">28.2 Modo Compilación</span></a>). Así, puede usar los comandos del modo de compilación para visitar las ubicaciones de código fuente correspondientes.</p>
|
|
|
|
|
<p>Además, el modo Diff proporciona los siguientes comandos para navegar, manipular y aplicar partes de parches:</p>
|
|
|
|
|
<p><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">n</kbd> (<code class="docutils literal notranslate"><span class="pre">M-n</span></code>)</p>
|
|
|
|
|
<blockquote>
|
|
|
|
@ -695,21 +700,20 @@ realmente cambiadas.</p>
|
|
|
|
|
<div><p>Va al archivo fuente y a la línea correspondiente a este bloque (hunk) (<code class="docutils literal notranslate"><span class="pre">diff-goto-source</span></code>). Por defecto, salta a la versión «nueva» del archivo, la que aparece primero en la
|
|
|
|
|
cabecera del archivo. Con un argumento prefijo, salta a la versión «antigua» en su lugar. Si <code class="docutils literal notranslate"><span class="pre">diff-jump-to-old-file</span></code> no es nulo, este comando salta por defecto al archivo
|
|
|
|
|
«antiguo», y el significado del argumento prefijo se invierte. Si el argumento prefijo es un número mayor que 8 (por ejemplo, si escribe <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">u</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">u</kbd>
|
|
|
|
|
<kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">c</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">c</kbd> (<code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">C-u</span> <span class="pre">C-c</span> <span class="pre">C-c</span></code>)), este comando también establece <code class="docutils literal notranslate"><span class="pre">diff-jump-to-old-file</span></code> para la siguiente invocación. Si el archivo fuente está bajo control de versiones (véase <strong>Control de Versiones</strong>), esto salta al archivo de trabajo por defecto. Con un argumento prefijo, salta a la revisión «antigua» del archivo (vea <strong>Examinar y Comparar Revisiones Antiguas</strong>), cuando el punto está en la línea antigua, o de otro modo salta a la revisión «nueva».</p>
|
|
|
|
|
<kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">c</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">c</kbd> (<code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">C-u</span> <span class="pre">C-c</span> <span class="pre">C-c</span></code>)), este comando también establece <code class="docutils literal notranslate"><span class="pre">diff-jump-to-old-file</span></code> para la siguiente invocación. Si el archivo fuente está bajo control de versiones (véase <a class="reference internal" href="29_ManyProgrsGrands.html#id2"><span class="std std-ref">29.1 Control de Versiones</span></a>), esto salta al archivo de trabajo por defecto. Con un argumento prefijo, salta a la revisión «antigua» del archivo (vea <a class="reference internal" href="29_ManyProgrsGrands.html#id5"><span class="std std-ref">29.1.6 Revisión y Comparación de Versiones Anteriores</span></a>), cuando el punto está en la línea antigua, o de otro modo salta a la revisión «nueva».</p>
|
|
|
|
|
</div></blockquote>
|
|
|
|
|
<p><kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">c</kbd> <kbd class="kbd docutils literal notranslate">Ctrl:</kbd>-<kbd class="kbd docutils literal notranslate">Ctrl</kbd>-:kbd:`` (<code class="docutils literal notranslate"><span class="pre">C-c</span> <span class="pre">C-e</span></code>)</p>
|
|
|
|
|
<p><kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">c</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">e</kbd> (<code class="docutils literal notranslate"><span class="pre">C-c</span> <span class="pre">C-e</span></code>)</p>
|
|
|
|
|
<blockquote>
|
|
|
|
|
<div><p>Inicia una sesión Ediff con el parche (<code class="docutils literal notranslate"><span class="pre">diff-ediff-patch</span></code>). Consulte <strong>Ediff</strong> en El manual de Ediff.</p>
|
|
|
|
|
</div></blockquote>
|
|
|
|
|
<p><kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">c</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">n</kbd> (<code class="docutils literal notranslate"><span class="pre">C-c</span> <span class="pre">C-n</span></code>)</p>
|
|
|
|
|
<blockquote>
|
|
|
|
|
<div><p>Restringe la vista al bloque actual (<code class="docutils literal notranslate"><span class="pre">diff-restrict-view</span></code>). Véase <strong>Estrechamiento</strong>. Con un argumento de prefijo, restringe la vista al archivo actual de un parche de varios
|
|
|
|
|
<div><p>Restringe la vista al bloque actual (<code class="docutils literal notranslate"><span class="pre">diff-restrict-view</span></code>). Véase <a class="reference internal" href="15_ControlDisplay.html#id5"><span class="std std-ref">15.5 Estrechamiento</span></a>. Con un argumento de prefijo, restringe la vista al archivo actual de un parche de varios
|
|
|
|
|
archivos. Para volver a ampliar, usar <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">n</span> <span class="pre">w</span></code> ( widen, ampliar).</p>
|
|
|
|
|
</div></blockquote>
|
|
|
|
|
<p><kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">c</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">r</kbd> (<code class="docutils literal notranslate"><span class="pre">C-c</span> <span class="pre">C-r</span></code>)</p>
|
|
|
|
|
<blockquote>
|
|
|
|
|
<div><p>Invierte la dirección de comparación para todo el búfer (<code class="docutils literal notranslate"><span class="pre">diff-reverse-direction</span></code>). Con un argumento prefijo, invierte la dirección sólo dentro de la región actual (véase <strong>La
|
|
|
|
|
Marca y la Región</strong>). Invertir la dirección significa cambiar los bloques (hunks) y las cabeceras de inicio de archivo para producir un parche que cambiaría la versión «nueva» por la
|
|
|
|
|
<div><p>Invierte la dirección de comparación para todo el búfer (<code class="docutils literal notranslate"><span class="pre">diff-reverse-direction</span></code>). Con un argumento prefijo, invierte la dirección sólo dentro de la región actual (véase <a class="reference internal" href="12_LaMarca-y-LaRegion.html#id1"><span class="std std-ref">12 La marca y la región</span></a>). Invertir la dirección significa cambiar los bloques (hunks) y las cabeceras de inicio de archivo para producir un parche que cambiaría la versión «nueva» por la
|
|
|
|
|
«antigua».</p>
|
|
|
|
|
</div></blockquote>
|
|
|
|
|
<p><kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">c</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">s</kbd> (<code class="docutils literal notranslate"><span class="pre">C-c</span> <span class="pre">C-s</span></code>)</p>
|
|
|
|
@ -737,11 +741,11 @@ está activa, solo convierte los fragmentos dentro de la región.</p>
|
|
|
|
|
</div></blockquote>
|
|
|
|
|
<p><kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">4</kbd> <kbd class="kbd docutils literal notranslate">A</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">4</span> <span class="pre">A</span></code>)</p>
|
|
|
|
|
<blockquote>
|
|
|
|
|
<div><p>Genera una entrada ChangeLog, como hace <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">4</span> <span class="pre">a</span></code> (ver <strong>Registros de Cambios</strong>), para cada uno de los bloques (<code class="docutils literal notranslate"><span class="pre">diff-add-change-log-entries-other-window</span></code>). Esto crea un
|
|
|
|
|
<div><p>Genera una entrada ChangeLog, como hace <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">4</span> <span class="pre">a</span></code> (ver <a class="reference internal" href="29_ManyProgrsGrands.html#id9"><span class="std std-ref">29.3 Registro de Cambios</span></a>), para cada uno de los bloques (<code class="docutils literal notranslate"><span class="pre">diff-add-change-log-entries-other-window</span></code>). Esto crea un
|
|
|
|
|
esqueleto del registro de cambios que puede rellenar más tarde con las descripciones reales de los cambios. El propio <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">4</span> <span class="pre">a</span></code> en modo Diff opera en nombre del archivo del bloque
|
|
|
|
|
actual, pero obtiene el nombre de la función del propio parche. Esto es útil para hacer entradas de registro para las funciones que son eliminadas por el parche.</p>
|
|
|
|
|
</div></blockquote>
|
|
|
|
|
<p>Los parches a veces incluyen espacios en blanco al final de las líneas modificadas, como un cambio involuntario y no deseado. Hay dos formas de solucionar este problema. En primer lugar, si activa el modo de espacios en blanco en un búfer de Diff (vea <strong>Espacios en Blanco Inútiles</strong>), automáticamente resaltará los espacios en blanco al final de las líneas modificadas. En segundo lugar, puede usar el comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">diff-delete-trailing-whitespace</span></code>, que busca los espacios en blanco en las líneas modificadas por el parche, y los elimina tanto en el parche como en los archivos fuente parcheados. Este comando no guarda las modificaciones que realiza, por lo que puede decidir si desea guardar los cambios (la lista de archivos modificados se muestra en el área de eco). Con un argumento prefijo, intenta modificar los archivos fuente originales («antiguos») en lugar de los archivos fuente parcheados («nuevos»).</p>
|
|
|
|
|
<p>Los parches a veces incluyen espacios en blanco al final de las líneas modificadas, como un cambio involuntario y no deseado. Hay dos formas de solucionar este problema. En primer lugar, si activa el modo de espacios en blanco en un búfer de Diff (vea <a class="reference internal" href="15_ControlDisplay.html#id15"><span class="std std-ref">15.17 Espacios en Blanco Innecesarios</span></a>), automáticamente resaltará los espacios en blanco al final de las líneas modificadas. En segundo lugar, puede usar el comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">diff-delete-trailing-whitespace</span></code>, que busca los espacios en blanco en las líneas modificadas por el parche, y los elimina tanto en el parche como en los archivos fuente parcheados. Este comando no guarda las modificaciones que realiza, por lo que puede decidir si desea guardar los cambios (la lista de archivos modificados se muestra en el área de eco). Con un argumento prefijo, intenta modificar los archivos fuente originales («antiguos») en lugar de los archivos fuente parcheados («nuevos»).</p>
|
|
|
|
|
<p>Si <code class="docutils literal notranslate"><span class="pre">diff-font-lock-syntax</span></code> es distinto de <code class="docutils literal notranslate"><span class="pre">nil</span></code>, los fragmentos del código fuente en los «hunks» se resaltan según el modo principal apropiado.</p>
|
|
|
|
|
</section>
|
|
|
|
|
<section id="copiar-nombrar-y-renombrar-archivos">
|
|
|
|
@ -749,15 +753,15 @@ actual, pero obtiene el nombre de la función del propio parche. Esto es útil p
|
|
|
|
|
<p>Emacs tiene varios comandos para copiar, nombrar y renombrar archivos. Todos ellos leen dos nombres de archivo, <em>antiguo</em> (<em>anterior</em> o <em>destino</em>) y <em>nuevo</em>, usando el minibúfer, y luego copian o ajustan el nombre de un archivo en consecuencia; no aceptan nombres de archivo comodín.</p>
|
|
|
|
|
<p>En todos estos comandos, si el argumento <em>nuevo</em> es sólo un nombre de directorio (véase <strong>Nombres de Directorio</strong> en el Manual de Referencia de Emacs Lisp), el verdadero nombre nuevo está en ese directorio, con el mismo componente no-directorio que <em>anterior</em>. Por ejemplo, el comando <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <code class="docutils literal notranslate"><span class="pre">rename-file</span></code> <kbd class="kbd docutils literal notranslate">RETURN</kbd> <em>~/foo</em> <kbd class="kbd docutils literal notranslate">RETURN</kbd> <em>~/tmp/foo</em> <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">rename-file</span> <span class="pre">RET</span></code> <em>~/foo</em> <code class="docutils literal notranslate"><span class="pre">RET</span></code> <em>/tmp/foo</em> <code class="docutils literal notranslate"><span class="pre">RET</span></code>) renombra <em>~/foo</em> a <em>/tmp/foo</em>. En GNU y otros sistemas POSIX, los nombres de directorio terminan en <code class="docutils literal notranslate"><span class="pre">/</span></code>.</p>
|
|
|
|
|
<p>Todos estos comandos piden confirmación cuando <em>nuevo</em> nombre de archivo ya existe.</p>
|
|
|
|
|
<p><code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">copy-file</span></code> copia el contenido del archivo <em>anterior</em> en el archivo <em>nuevo</em>.</p>
|
|
|
|
|
<p><code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">copy-file</span></code> copia el contenido de archivo <em>anterior</em> en archivo <em>nuevo</em>.</p>
|
|
|
|
|
<p><code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">copy-directory</span></code> copia directorios, de forma similar al comando de shell <code class="docutils literal notranslate"><span class="pre">cp</span> <span class="pre">-r</span></code>. Si <em>nuevo</em> es un nombre de directorio, crea una copia del directorio <em>anterior</em> y la coloca en <em>nuevo</em>. En caso contrario, copia todo el contenido del directorio <em>anterior</em> en uno <em>nuevo</em>. Si <code class="docutils literal notranslate"><span class="pre">copy-directory-create-symlink</span></code> es distinto de <code class="docutils literal notranslate"><span class="pre">nil</span></code> y <em>antiguo</em> es un enlace simbólico, este comando copiará el enlace simbólico. Si es <code class="docutils literal notranslate"><span class="pre">nil</span></code>, este comando seguirá el enlace y copiará el contenido en su lugar. (Esta es la opción por defecto).</p>
|
|
|
|
|
<p><code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">rename-file</span></code> renombra al archivo <em>antiguo</em> como <em>nuevo</em>. Si nombre de archivo <em>nuevo</em> ya existe, debe confirmar con <code class="docutils literal notranslate"><span class="pre">yes</span></code> (si) o no se llevará a cabo el renombrado; esto se debe a que el renombramiento hace que se pierda el significado <em>anterior</em> del nombre <em>nuevo</em>. Si <em>antiguo</em> y <em>nuevo</em> están en sistemas de archivos diferentes, el archivo <em>antiguo</em> se copia y se borra.</p>
|
|
|
|
|
<p>Si un archivo está bajo control de versiones (véase <strong>Control de Versiones</strong>), deberá renombrarlo usando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">vc-rename-file</span></code> en lugar de <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">rename-file</span></code>. Consulte <strong>Borrar y Renombrar Archivos Controlados por Versión</strong>.</p>
|
|
|
|
|
<p>Si un archivo está bajo control de versiones (véase <a class="reference internal" href="29_ManyProgrsGrands.html#id2"><span class="std std-ref">29.1 Control de Versiones</span></a>), deberá renombrarlo usando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">vc-rename-file</span></code> en lugar de <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">rename-file</span></code>. Consulte <a class="reference internal" href="29_ManyProgrsGrands.html#id7"><span class="std std-ref">29.1.12.2 Borrar y Renombrar Archivos Controlados por Versión</span></a>.</p>
|
|
|
|
|
<p><code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">add-name-to-file</span></code> añade un nombre adicional a un archivo existente sin eliminar nombre <em>anterior</em>. El archivo de nombre <em>nuevo</em> se crea como un enlace duro al archivo existente. El fichero de nombre <em>nuevo</em> debe pertenecer al mismo sistema de ficheros que el archivo a renombrar. En MS-Windows, este comando sólo funciona si el archivo reside en un sistema de archivos NTFS. En MS-DOS, y algunos tipos de sistemas remotos, funciona copiando el archivo.</p>
|
|
|
|
|
<p><code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">make-symbolic-link</span></code> crea un enlace simbólico llamado <em>nuevo</em>, que apunta al archivo <em>anterior</em>. El efecto es que los futuros intentos de abrir el archivo <em>nuevo</em> se referirán al archivo que se llame <em>destino</em> en el momento de la apertura, o se producirá un error si el nombre <em>destino</em> no existe en ese momento. Este comando no expande el argumento <em>destino</em>, por lo que permite especificar un nombre relativo como <em>destino</em> del enlace. Sin embargo, este comando expande el <code class="docutils literal notranslate"><span class="pre">~</span></code> inicial en <em>destino</em> para que pueda especificar fácilmente directorios de inicio, y elimina el <code class="docutils literal notranslate"><span class="pre">/:</span></code> inicial para que pueda especificar nombres relativos que comiencen con <code class="docutils literal notranslate"><span class="pre">~</span></code> o <code class="docutils literal notranslate"><span class="pre">/:</span></code> literales. Véase <strong>Nombres de Archivos Entrecomillados</strong>. En MS-Windows, este comando sólo funciona en MS Windows Vista y versiones posteriores. Cuando <em>nuevo</em> es remoto, funciona dependiendo del tipo de sistema.</p>
|
|
|
|
|
<p><code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">make-symbolic-link</span></code> crea un enlace simbólico llamado <em>nuevo</em>, que apunta al archivo <em>anterior</em>. El efecto es que los futuros intentos de abrir el archivo <em>nuevo</em> se referirán al archivo que se llame <em>destino</em> en el momento de la apertura, o se producirá un error si el nombre <em>destino</em> no existe en ese momento. Este comando no expande el argumento <em>destino</em>, por lo que permite especificar un nombre relativo como <em>destino</em> del enlace. Sin embargo, este comando expande el <code class="docutils literal notranslate"><span class="pre">~</span></code> inicial en <em>destino</em> para que pueda especificar fácilmente directorios de inicio, y elimina el <code class="docutils literal notranslate"><span class="pre">/:</span></code> inicial para que pueda especificar nombres relativos que comiencen con <code class="docutils literal notranslate"><span class="pre">~</span></code> o <code class="docutils literal notranslate"><span class="pre">/:</span></code> literales. Véase <a class="reference internal" href="#id21"><span class="std std-ref">19.16 Nombres de Archivos Entrecomillados</span></a>. En MS-Windows, este comando sólo funciona en MS Windows Vista y versiones posteriores. Cuando <em>nuevo</em> es remoto, funciona dependiendo del tipo de sistema.</p>
|
|
|
|
|
</section>
|
|
|
|
|
<section id="operaciones-varias-con-archivos">
|
|
|
|
|
<h2>19.12 Operaciones Varias con Archivos<a class="headerlink" href="#operaciones-varias-con-archivos" title="Link to this heading"></a></h2>
|
|
|
|
|
<span id="id17"></span><h2>19.12 Operaciones Varias con Archivos<a class="headerlink" href="#operaciones-varias-con-archivos" title="Link to this heading"></a></h2>
|
|
|
|
|
<p>Emacs tiene comandos para realizar muchas otras operaciones con archivos. Todos operan sobre un fichero; no aceptan nombres de archivo comodín.</p>
|
|
|
|
|
<p><code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">delete-file</span></code> solicita un archivo y lo borra. Si está borrando muchos archivos en un directorio, puede ser más conveniente usar Dired en lugar de delete-file. Consulte Borrado de archivos con Dired.</p>
|
|
|
|
|
<p><code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">move-file-to-trash</span></code> mueve un archivo a la <em>Papelera</em> del sistema (o <em>Papelera de Reciclaje</em>). Se trata de una función disponible en la mayoría de los sistemas operativos; los archivos que se mueven a la Papelera pueden recuperarse más tarde si cambia de opinión. (La forma de restaurar los archivos de la papelera depende del sistema).</p>
|
|
|
|
@ -775,13 +779,13 @@ bien en este directorio (sólo le dará un nuevo nombre al archivo, pero no borr
|
|
|
|
|
<p><code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">set-file-modes</span></code> lee un nombre de archivo seguido de un <em>modo de archivo</em> y aplica ese modo de archivo al archivo especificado. Los modos de archivo, también llamados <em>permisos de archivo</em>, determinan si un archivo puede leerse, escribirse o ejecutarse, y quién puede hacerlo. Este comando lee los modos de archivo usando el mismo formato simbólico u octal aceptado por el comando chmod; por ejemplo, <code class="docutils literal notranslate"><span class="pre">u+x</span></code> significa añadir permiso de ejecución para el Usuario propietario del archivo. No tiene efecto en sistemas operativos que no soportan modos de archivo. <code class="docutils literal notranslate"><span class="pre">chmod</span></code> es un alias de conveniencia para esta función.</p>
|
|
|
|
|
</section>
|
|
|
|
|
<section id="acceso-a-archivos-comprimidos">
|
|
|
|
|
<span id="id15"></span><h2>19.13. Acceso a Archivos Comprimidos<a class="headerlink" href="#acceso-a-archivos-comprimidos" title="Link to this heading"></a></h2>
|
|
|
|
|
<span id="id18"></span><h2>19.13. Acceso a Archivos Comprimidos<a class="headerlink" href="#acceso-a-archivos-comprimidos" title="Link to this heading"></a></h2>
|
|
|
|
|
<p>Emacs descomprime automáticamente los archivos comprimidos cuando los visita, y los recomprime automáticamente si los modifica y guarda. Emacs reconoce los archivos comprimidos por sus nombres. Los nombres de archivo que terminan en <code class="docutils literal notranslate"><span class="pre">.gz</span></code> indican un archivo comprimido con <code class="docutils literal notranslate"><span class="pre">gzip</span></code>. Otras terminaciones indican otros programas de compresión.</p>
|
|
|
|
|
<p>La descompresión y compresión automáticas se aplican a todas las operaciones en las que Emacs usa el contenido de un archivo. Esto incluye visitarlo, guardarlo, insertar su contenido en un búfer, cargarlo y compilarlo en bytes.</p>
|
|
|
|
|
<p>Para desactivar esta función, escriba el comando <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <code class="docutils literal notranslate"><span class="pre">auto-compression-mode</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">auto-compression-mode</span></code>). Puede desactivarla permanentemente personalizando la variable <code class="docutils literal notranslate"><span class="pre">auto-compression-mode</span></code>.</p>
|
|
|
|
|
</section>
|
|
|
|
|
<section id="archivos-de-archivos">
|
|
|
|
|
<span id="id16"></span><h2>19.14 Archivos de Archivos<a class="headerlink" href="#archivos-de-archivos" title="Link to this heading"></a></h2>
|
|
|
|
|
<span id="id19"></span><h2>19.14 Archivos de Archivos<a class="headerlink" href="#archivos-de-archivos" title="Link to this heading"></a></h2>
|
|
|
|
|
<p>Un fichero cuyo nombre termina en <code class="docutils literal notranslate"><span class="pre">.tar</span></code> es normalmente un <em>archivo</em> hecho por el programa <code class="docutils literal notranslate"><span class="pre">tar</span></code>. Emacs visualiza estos archivos en un modo especial llamado modo Tar que proporciona una lista de contenidos similar a Dired (ver <strong>Dired, el Editor de Directorios</strong>). Puede moverse por la lista como lo haría en Dired, y visitar los subarchivos contenidos en el archivo. Sin embargo, no todos los comandos de Dired están disponibles en modo Tar.</p>
|
|
|
|
|
<p>Si el modo de compresión automática está activado (ver <strong>Acceso a Archivos Comprimidos</strong>), entonces el modo Tar se usa también para archivos comprimidos -archivos con extensiones <code class="docutils literal notranslate"><span class="pre">.tgz</span></code>, <code class="docutils literal notranslate"><span class="pre">.tar.Z</span></code> y <code class="docutils literal notranslate"><span class="pre">.tar.gz</span></code>.</p>
|
|
|
|
|
<p>Las teclas <kbd class="kbd docutils literal notranslate">e</kbd> (<code class="docutils literal notranslate"><span class="pre">e</span></code>), <kbd class="kbd docutils literal notranslate">f</kbd> (<code class="docutils literal notranslate"><span class="pre">f</span></code>) y <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">RET</span></code>) extraen un archivo componente a su propio búfer. Puede editarlo allí y, si guarda el búfer, la versión editada sustituirá a la del búfer Tar. Hacer clic con el ratón sobre el nombre del archivo en el búfer Tar hace lo mismo. v extrae un archivo a un búfer en modo Visualizar (ver <strong>Modo Visualizar</strong>). o extrae el archivo y lo muestra en otra ventana, de forma que pueda editar el archivo y operar en el archivo simultáneamente.</p>
|
|
|
|
@ -794,7 +798,7 @@ bien en este directorio (sólo le dará un nuevo nombre al archivo, pero no borr
|
|
|
|
|
<p>A diferencia del modo Tar, el modo Archivo ejecuta los programas de archivado para descomprimir y volver a empaquetar los archivos. Sin embargo, no necesita estos programas para ver la tabla de contenidos del archivo, sólo para extraer o manipular los subarchivos del archivo. Los detalles de los nombres de los programas y sus opciones se pueden configurar en el grupo de personalización <code class="docutils literal notranslate"><span class="pre">Archive</span></code> (ver <strong>Grupos de Personalización</strong>).</p>
|
|
|
|
|
</section>
|
|
|
|
|
<section id="archivos-remotos">
|
|
|
|
|
<span id="id17"></span><h2>19.15 Archivos Remotos<a class="headerlink" href="#archivos-remotos" title="Link to this heading"></a></h2>
|
|
|
|
|
<span id="id20"></span><h2>19.15 Archivos Remotos<a class="headerlink" href="#archivos-remotos" title="Link to this heading"></a></h2>
|
|
|
|
|
<p>Puede hacer referencia a archivos de otras máquinas usando una sintaxis especial de nombres de archivo:</p>
|
|
|
|
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">/</span><span class="n">method</span><span class="p">:</span><span class="n">host</span><span class="p">:</span><span class="n">nombrearchivo</span>
|
|
|
|
|
<span class="o">/</span><span class="n">method</span><span class="p">:</span><span class="n">usuario</span><span class="nd">@host</span><span class="p">:</span><span class="n">nombrearchivo</span>
|
|
|
|
@ -820,7 +824,7 @@ bien en este directorio (sólo le dará un nuevo nombre al archivo, pero no borr
|
|
|
|
|
<p>A veces puede que no pueda acceder a los archivos de una máquina remota porque un cortafuegos intermedio bloquea la conexión por razones de seguridad. Si puede conectarse a una máquina pasarela desde la que se pueda acceder a los archivos de destino, y cuyo servidor FTP admita las funciones de pasarela, puede seguir usando nombres de archivo remotos; todo lo que tiene que hacer es especificar el nombre de la máquina pasarela configurando la variable <code class="docutils literal notranslate"><span class="pre">ange-ftp-gateway-host</span></code>, y configurar <code class="docutils literal notranslate"><span class="pre">ange-ftp-smart-gateway</span></code> como <code class="docutils literal notranslate"><span class="pre">t</span></code>. De lo contrario, puede hacer que funcionen los nombres de archivo remotos, pero el procedimiento es complejo. Puede leer las instrucciones escribiendo <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <code class="docutils literal notranslate"><span class="pre">finder-commentary</span></code> <kbd class="kbd docutils literal notranslate">RETURN</kbd> <code class="docutils literal notranslate"><span class="pre">ange-ftp</span></code> <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">finder-commentary</span> <span class="pre">RET</span> <span class="pre">ange-ftp</span> <span class="pre">RET</span></code>).</p>
|
|
|
|
|
</section>
|
|
|
|
|
<section id="nombres-de-archivos-entrecomillados">
|
|
|
|
|
<span id="id18"></span><h2>19.16 Nombres de Archivos Entrecomillados<a class="headerlink" href="#nombres-de-archivos-entrecomillados" title="Link to this heading"></a></h2>
|
|
|
|
|
<span id="id21"></span><h2>19.16 Nombres de Archivos Entrecomillados<a class="headerlink" href="#nombres-de-archivos-entrecomillados" title="Link to this heading"></a></h2>
|
|
|
|
|
<p>Puede <em>entrecomillar</em> un nombre de archivo absoluto para evitar que los caracteres especiales y la sintaxis que contenga tengan sus efectos especiales. La forma de hacerlo es añadir <code class="docutils literal notranslate"><span class="pre">/:</span></code> al principio.</p>
|
|
|
|
|
<p>Por ejemplo, puede entrecomillar un nombre de archivo local que parezca remoto para evitar que se trate como un nombre de archivo remoto. Así, si tiene un directorio llamado <code class="docutils literal notranslate"><span class="pre">/foo:</span></code> y un archivo llamado <code class="docutils literal notranslate"><span class="pre">bar</span></code> en él, puede referirse a ese archivo en Emacs como <code class="docutils literal notranslate"><span class="pre">/:/foo:/bar</span></code>.</p>
|
|
|
|
|
<p>Si sólo quiere citar caracteres especiales en la parte local de un nombre de archivo remoto, puede citar sólo la parte local. <code class="docutils literal notranslate"><span class="pre">/ssh:baz:/:/foo:/bar</span></code> se refiere al archivo <code class="docutils literal notranslate"><span class="pre">bar</span></code> del directorio <code class="docutils literal notranslate"><span class="pre">/foo:</span></code> en el host <code class="docutils literal notranslate"><span class="pre">baz</span></code>.</p>
|
|
|
|
@ -876,7 +880,7 @@ como <code class="docutils literal notranslate"><span class="pre">load-path</spa
|
|
|
|
|
<p>El comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">ffap</span></code> generaliza <code class="docutils literal notranslate"><span class="pre">find-file</span></code> con heurísticas por defecto más potentes (véase <strong>Encontrar Archivos y URLs en el Punto</strong>), a menudo basadas en el texto en el punto. El modo de finalización parcial ofrece otras características que amplían <code class="docutils literal notranslate"><span class="pre">find-file</span></code>, que pueden usarse con <code class="docutils literal notranslate"><span class="pre">ffap</span></code>. Consulte <strong>Opciones de Completado</strong>.</p>
|
|
|
|
|
</section>
|
|
|
|
|
<section id="visualizacion-de-archivos-de-imagen">
|
|
|
|
|
<span id="id19"></span><h2>19.19 Visualización de Archivos de Imagen<a class="headerlink" href="#visualizacion-de-archivos-de-imagen" title="Link to this heading"></a></h2>
|
|
|
|
|
<span id="id22"></span><h2>19.19 Visualización de Archivos de Imagen<a class="headerlink" href="#visualizacion-de-archivos-de-imagen" title="Link to this heading"></a></h2>
|
|
|
|
|
<p>Al visitar archivos de imagen se selecciona automáticamente el modo Imagen (Image mode). En este modo principal, puede teclear <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">c</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">c</kbd> (<code class="docutils literal notranslate"><span class="pre">C-c</span> <span class="pre">C-c</span></code>, <code class="docutils literal notranslate"><span class="pre">image-toggle-display</span></code>) para alternar entre mostrar el archivo como una imagen en el búfer de Emacs, y mostrar su representación de texto en bruto (o byte en bruto). Además, puede escribir (<code class="docutils literal notranslate"><span class="pre">C-c</span> <span class="pre">C-x</span></code>, <code class="docutils literal notranslate"><span class="pre">image-toggle-hex-display</span></code>) para alternar entre mostrar el archivo como una imagen en el búfer de Emacs y mostrarlo en representación hexadecimal. Mostrar el archivo como una imagen sólo funciona si Emacs está compilado con soporte para mostrar este tipo de imágenes.</p>
|
|
|
|
|
<p>Si la imagen mostrada es más ancha o más alta que la ventana en la que se muestra, las teclas habituales de movimiento de puntos (<kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">f</kbd> (<code class="docutils literal notranslate"><span class="pre">C-f</span></code>), <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">p</kbd>, <code class="docutils literal notranslate"><span class="pre">C-p</span></code> etc.) hacen que se muestren diferentes partes de la imagen. Sin embargo, por defecto las imágenes se redimensionan automáticamente para ajustarse a la ventana, por lo que esto sólo es necesario si se personaliza el comportamiento por defecto usando las opciones <code class="docutils literal notranslate"><span class="pre">image-auto-resize</span></code> e <code class="docutils literal notranslate"><span class="pre">image-auto-resize-on-window-resize</span></code>.</p>
|
|
|
|
|
<p>Para redimensionar la imagen manualmente puede usar el comando <code class="docutils literal notranslate"><span class="pre">image-transform-fit-to-window</span></code> enlazado a <kbd class="kbd docutils literal notranslate">s</kbd><kbd class="kbd docutils literal notranslate">w</kbd> (<code class="docutils literal notranslate"><span class="pre">s</span> <span class="pre">w</span></code>) que ajusta la imagen tanto a la altura como a la anchura de la ventana. Para escalar la imagen a un porcentaje de su tamaño original, use el comando <code class="docutils literal notranslate"><span class="pre">image-transform-set-percent</span></code> enlazado a <kbd class="kbd docutils literal notranslate">s</kbd><kbd class="kbd docutils literal notranslate">p</kbd> (<code class="docutils literal notranslate"><span class="pre">s</span> <span class="pre">p</span></code>). Para escalar la imagen especificando un factor de escala, use el comando <code class="docutils literal notranslate"><span class="pre">image-transform-set-scale</span></code> enlazado a <kbd class="kbd docutils literal notranslate">s</kbd><kbd class="kbd docutils literal notranslate">s</kbd> (<code class="docutils literal notranslate"><span class="pre">s</span> <span class="pre">s</span></code>). Para restablecer todas las transformaciones al estado inicial, use <code class="docutils literal notranslate"><span class="pre">image-transform-reset-to-initial</span></code> enlazado a <kbd class="kbd docutils literal notranslate">s</kbd><kbd class="kbd docutils literal notranslate">0</kbd> (<code class="docutils literal notranslate"><span class="pre">s</span> <span class="pre">0</span></code>), o <code class="docutils literal notranslate"><span class="pre">image-transform-reset-to-original</span></code> enlazado a <kbd class="kbd docutils literal notranslate">s</kbd><kbd class="kbd docutils literal notranslate">o</kbd> (<code class="docutils literal notranslate"><span class="pre">s</span> <span class="pre">o</span></code>).</p>
|
|
|
|
|