magit; sphinx GNU/Emacs 29.1

Confirmación (commit) tanomarcelo-git
This commit is contained in:
tanomarcelo 2024-02-03 14:10:13 -03:00
parent a10914c56a
commit a8024b2afb
27 changed files with 163 additions and 126 deletions

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 0.99
Traducción Revisón: 1.01
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 0.99
Traducción Revisón: 1.01
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 0.99
Traducción Revisón: 1.01
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 0.99
Traducción Revisón: 1.01
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 0.99
Traducción Revisón: 1.01
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 0.99
Traducción Revisón: 1.01
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 0.99
Traducción Revisón: 1.01
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 0.99
Traducción Revisón: 1.01
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 0.99
Traducción Revisón: 1.01
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 0.99
Traducción Revisón: 1.01
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 0.99
Traducción Revisón: 1.01
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 0.99
Traducción Revisón: 1.01
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 0.99
Traducción Revisón: 1.01
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 0.99
Traducción Revisón: 1.01
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 0.99
Traducción Revisón: 1.01
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 0.99
Traducción Revisón: 1.01
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 0.99
Traducción Revisón: 1.01
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 0.99
Traducción Revisón: 1.01
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">

View File

@ -37,7 +37,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 0.99
Traducción Revisón: 1.01
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -548,129 +548,166 @@ de los archivos. Los buffers <code class="docutils literal notranslate"><span cl
</div>
<p>Antes de pedir confirmación, <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">recover-file</span></code> muestra un listado de directorios que describe el archivo especificado y el archivo de autoguardado, para que pueda comparar sus tamaños y fechas. Si el archivo de autoguardado es más antiguo, <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">recover-file</span></code> no ofrece leerlo.</p>
<p>Si Emacs o el ordenador se bloquean, puede recuperar todos los archivos que estaba editando desde sus archivos de autoguardado con el comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">recover-session</span></code>. Esto le muestra primero una lista de sesiones interrumpidas grabadas. Mueva el puntero hasta la que elija y escriba <code class="docutils literal notranslate"><span class="pre">C-c</span> <span class="pre">C-c</span></code>.</p>
<p>A continuación, <code class="docutils literal notranslate"><span class="pre">recover-session</span></code> pregunta por cada uno de los archivos que se estaban editando durante esa sesión, preguntando si desea recuperar ese archivo. Si la respuesta es <code class="docutils literal notranslate"><span class="pre">y</span></code> (sí), se llama a <code class="docutils literal notranslate"><span class="pre">recover-file</span></code>, que funciona de forma normal. Muestra las fechas del archivo original y de su archivo de autoguardado, y vuelve a preguntar si se desea recuperar ese archivo.</p>
<p>A continuación, <code class="docutils literal notranslate"><span class="pre">recover-session</span></code> pregunta por cada uno de los archivos que se estaban editando durante esa sesión, preguntando si desea recuperar ese archivo. Si la respuesta es <code class="docutils literal notranslate"><span class="pre">y</span></code> (si), se llama a <code class="docutils literal notranslate"><span class="pre">recover-file</span></code>, que funciona de forma normal. Muestra las fechas del archivo original y de su archivo de autoguardado, y vuelve a preguntar si se desea recuperar ese archivo.</p>
<p>Cuando <code class="docutils literal notranslate"><span class="pre">recover-session</span></code> termina, los archivos que haya elegido recuperar están presentes en los búferes de Emacs. A continuación, debe guardarlos. Sólo esto -guardarlos- actualiza los propios archivos.</p>
<p>Emacs registra información sobre sesiones interrumpidas en archivos llamados <code class="docutils literal notranslate"><span class="pre">.saves-pid-hostname~</span></code> en el directorio <code class="docutils literal notranslate"><span class="pre">~/.emacs.d/auto-save-list/</span></code>. Este directorio está determinado por la variable <code class="docutils literal notranslate"><span class="pre">auto-save-list-file-prefix</span></code>. Si establece <code class="docutils literal notranslate"><span class="pre">auto-save-list-file-prefix</span></code> a <code class="docutils literal notranslate"><span class="pre">nil</span></code>, las sesiones no se registran para su recuperación.</p>
</section>
</section>
<section id="alias-de-nombres-de-archivo">
<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 foo es un enlace simbólico a bar, puede utilizar cualquiera de los dos nombres para referirse al archivo, pero bar es el nombre real, mientras que foo 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 find-file-suppress-same-file-warnings un valor distinto de cero. Puede desactivar completamente esta función estableciendo la variable find-file-existing-other-name a nil: 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 find-file-visit-truename es distinta de nil, 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 find-file-visit-truename también implica el efecto de find-file-existing-other-name.</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 directory-abbrev-alist. Cada elemento de esta lista debe tener la forma (de . a), lo que significa sustituir de por a siempre que aparezca de en un nombre de directorio. La cadena from es una expresión regular (véase Sintaxis de Expresiones Regulares). Se compara con nombres de directorio anclados en el primer carácter, y debe empezar por “`” (para soportar nombres de directorio con nuevas líneas incrustadas, lo que anularía “^”). La cadena to debe ser un nombre de directorio absoluto ordinario que apunte al mismo directorio. No use “~” para representar un directorio personal en la cadena to; Emacs realiza estas sustituciones por separado. Aquí hay un ejemplo, de un sistema en el que /home/fsf se accede normalmente a través de un enlace simbólico llamado /fsf:</p>
<blockquote>
<div><p>((»\`/home/fsf» . «/fsf»))</p>
</div></blockquote>
<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>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">((</span><span class="s2">&quot;</span><span class="se">\\</span><span class="s2">`/home/fsf&quot;</span> <span class="o">.</span> <span class="s2">&quot;/fsf&quot;</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 directorios. Un listado de directorios 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 C-x d; vea Dired, el Editor de Directorios.</p>
<dl class="simple">
<dt>C-x C-d dir-or-pattern RET</dt><dd><p>Muestra un breve listado de directorios (list-directory).</p>
</dd>
<dt>C-u C-x C-d dir-or-pattern RET</dt><dd><p>Muestra un listado detallado de directorios.</p>
</dd>
<dt>M-x make-directory RET nombredir RET</dt><dd><p>Crea un nuevo directorio llamado nombredir.</p>
</dd>
<dt>M-x delete-directory RET nombredir RET</dt><dd><p>Borra el directorio llamado nombredir. Si no está vacío, se le preguntará si desea eliminarlo de forma recursiva.</p>
</dd>
</dl>
<p>El comando para mostrar un listado de directorios es C-x C-d (list-directory). Lee utilizando el minibuffer un nombre de archivo que puede ser un directorio a listar o un patrón que contenga comodines para los archivos a listar. Por ejemplo,</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 <strong>Dired, el Editor de Directorios</strong>.</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>C-x C-d /u2/emacs/etc RET</p>
<div><p>Muestra un breve listado de directorios (<code class="docutils literal notranslate"><span class="pre">list-directory</span></code>).</p>
</div></blockquote>
<p>lista todos los archivos del directorio /u2/emacs/etc. He aquí un ejemplo de especificación de un patrón de nombres de archivo:</p>
<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>
<blockquote>
<div><p>C-x C-d /u2/emacs/src/<a href="#id3"><span class="problematic" id="id4">*</span></a>.c RET</p>
<div><p>Muestra un listado detallado de directorios.</p>
</div></blockquote>
<p>Normalmente, C-x C-d 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 “ls -l”).</p>
<p>El texto de un listado de directorios se obtiene principalmente ejecutando ls en un proceso inferior. Dos variables de Emacs controlan las opciones pasadas a ls: list-directory-brief-switches es una cadena que da las opciones a usar en listados breves («-CF» por defecto), y list-directory-verbose-switches es una cadena que da las opciones a usar en un listado detallado («-l» por defecto).</p>
<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">make-directory</span></code> <kbd class="kbd docutils literal notranslate">RETURN</kbd> <em>nombredir</em> <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">make-directory</span> <span class="pre">RET</span></code> <em>nombredir</em> <code class="docutils literal notranslate"><span class="pre">RET</span></code>)</p>
<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>
<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>
<p>El comando para mostrar un listado de directorios es <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-d</span></code> (<code class="docutils literal notranslate"><span class="pre">list-directory</span></code>). Lee utilizando el minibuffer un nombre de archivo que puede ser un directorio a listar o un patrón que contenga comodines para los archivos a listar. Por ejemplo,</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">C</span><span class="o">-</span><span class="n">x</span> <span class="n">C</span><span class="o">-</span><span class="n">d</span> <span class="o">/</span><span class="n">u2</span><span class="o">/</span><span class="n">emacs</span><span class="o">/</span><span class="n">etc</span> <span class="n">RET</span>
</pre></div>
</div>
<p>lista todos los archivos del directorio <code class="docutils literal notranslate"><span class="pre">/u2/emacs/etc</span></code>. He aquí un ejemplo de especificación de un patrón de nombres de archivo:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">C</span><span class="o">-</span><span class="n">x</span> <span class="n">C</span><span class="o">-</span><span class="n">d</span> <span class="o">/</span><span class="n">u2</span><span class="o">/</span><span class="n">emacs</span><span class="o">/</span><span class="n">src</span><span class="o">/*.</span><span class="n">c</span> <span class="n">RET</span>
</pre></div>
</div>
<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">&quot;-CF&quot;</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">&quot;-l&quot;</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 M-x delete-directory 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 delete-by-moving-to-trash a t. Consulte Operaciones varias con archivos, 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 <strong>Operaciones Varias con Archivos</strong>, para obtener más información sobre el uso de la Papelera.</p>
</section>
<section id="comparacion-de-archivos">
<h2>19.9 Comparación de Archivos<a class="headerlink" href="#comparacion-de-archivos" title="Link to this heading"></a></h2>
<p>El comando M-x diff pregunta por dos nombres de archivo, usando el minibúfer, y muestra las diferencias entre los dos archivos en un búfer llamado <em>diff</em>. Esto funciona ejecutando el programa diff, usando opciones tomadas de la variable diff-switches. El valor de diff-switches debe ser una cadena; el valor por defecto es «-u» para especificar un diff de contexto unificado. Vea Diff en Comparar y Fusionar Archivos, para más información sobre el programa diff.</p>
<p>La salida del comando diff se muestra usando un modo principal llamado modo Diff. Vea Modo Diff.</p>
<p>Una alternativa (mucho más sofisticada) es M-x ediff (ver Ediff en El Manual de Ediff).</p>
<p>El comando M-x diff-backup compara un archivo especificado con su copia de seguridad más reciente. Si especifica el nombre de un archivo de copia de seguridad, diff-backup lo compara con el archivo fuente del que es una copia de seguridad. En todos los demás aspectos, se comporta como M-x diff.</p>
<p>El comando M-x diff-buffer-with-file 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 M-x diff-buffers compara el contenido de dos búferes especificados.</p>
<p>El comando M-x compare-windows 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 Ventanas Múltiples.) 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 El Anillo de Marcas) 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, M-x comparar-ventanas intenta heurísticamente avanzar hasta el texto coincidente en las dos ventanas, y luego sale. Por lo tanto, si utiliza M-x comparar-ventanas repetidamente (véase Repetición de un Comando), cada vez se salta un rango coincidente o encuentra el inicio de otro.</p>
<p>Con un argumento numérico, compare-windows ignora los cambios en los espacios en blanco. Si la variable compare-ignore-case es distinta de nil, la comparación también ignora las diferencias entre mayúsculas y minúsculas. Si la variable compare-ignore-whitespace no es nula, compare-windows 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 M-x smerge-mode para activar el modo Smerge, un modo menor para editar la salida del programa diff3. 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 Fusionar archivos con Emerge, para la herramienta Emerge, que proporciona una potente interfaz para fusionar archivos.</p>
<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">&quot;-u&quot;</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>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>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>
</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 M-x diff y otros comandos similares. Este tipo de salida se llama parche, porque puede pasarse al comando patch para aplicar automáticamente los cambios especificados. Para seleccionar el modo diff manualmente, escriba M-x diff-mode.</p>
<p>Los cambios especificados en un parche se agrupan en «hunks», 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 cabecera de trozo, que especifica los números de línea antiguos y nuevos en los que se producen los cambios del trozo. El modo Diff resalta cada cabecera de trozo, para distinguirla del contenido real del trozo.</p>
<p>El primer trozo 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 Operaciones Varias con Búferes). 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 diff-update-on-the-fly a nil.</p>
<p>El modo diff hace que los hunks sean tratados como mensajes de error del compilador por M-g M-n y otros comandos que manejan mensajes de error (vea Modo de Compilación). Así, puede usar los comandos del modo de compilación para visitar las ubicaciones de código fuente correspondientes.</p>
<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>
<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>Además, el modo Diff proporciona los siguientes comandos para navegar, manipular y aplicar partes de parches:</p>
<p>Avanza al siguiente hunk-start (segmento-inicio) (diff-hunk-next). Con el argumento prefijo n, avanza al enésimo bloque (hunk) siguiente.</p>
<p>Por defecto, el modo Diff refina los elementos (hunks) intermedios a medida que Emacs los muestra, resaltando sus cambios con mejor granularidad. Alternativamente, si establece diff-refine a la navegación por símbolos, el modo Diff sólo refina el bloque (hunk) al que se mueve con este comando o con diff-hunk-prev.</p>
<dl>
<dt>M-n</dt><dd><p>Avanza al siguiente hunk-start (segmento-inicio) (diff-hunk-next). Con el argumento prefijo n, avanza al enésimo bloque (hunk) siguiente.</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>
<div><p>Avanza al siguiente <code class="docutils literal notranslate"><span class="pre">hunk-start</span></code> (segmento-de-inicio) (<code class="docutils literal notranslate"><span class="pre">diff-hunk-next</span></code>). Con el argumento prefijo <em>n</em>, avanza al <em>n</em>èsimo bloque (hunk) siguiente.</p>
<p>Por defecto, el modo Diff refina los elementos (hunks) intermedios a medida que Emacs los muestra, resaltando sus cambios con mejor granularidad. Alternativamente, si establece
diff-refine a la navegación por símbolos, el modo Diff sólo refina el bloque (hunk) al que se mueve con este comando o con diff-hunk-prev.</p>
</dd>
<dt>M-p</dt><dd><p>Se mueve al inicio de bloque anterior (diff-hunk-prev). Con el argumento de prefijo n, retrocede al n-ésimo trozo anterior. Al igual que M-n, este comando refina el segmento (hunk) al
que se desplaza si establece diff-refine en el símbolo de navegación.</p>
</dd>
<dt>M-}</dt><dd><p>Avanza al inicio del siguiente archivo, en un parche de varios archivos (diff-file-next). Con el argumento prefijo n, avanza hasta el inicio del enésimo archivo siguiente.</p>
</dd>
<dt>M-{</dt><dd><p>Se desplaza al inicio del archivo anterior, en un parche de varios archivos (diff-file-prev). Con el argumento prefijo n, retrocede al inicio del enésimo archivo anterior.</p>
</dd>
<dt>M-k</dt><dd><p>Mata al trozo (hunk) en el punto (diff-hunk-kill).</p>
</dd>
<dt>M-K</dt><dd><p>En un parche de varios archivos, mata la parte del archivo actual. (diff-file-kill).</p>
</dd>
<dt>C-c C-a</dt><dd><p>Aplica este fragmento (hunk) a su archivo de destino (diff-apply-hunk). Con un argumento prefijo C-u, revierte este trozo, es decir, aplica la inversa del trozo, que cambia la versión
«nueva» por la versión «antigua». Si diff-jump-to-old-file no es nulo, aplica el fragmento a la versión «antigua» del archivo.</p>
</dd>
<dt>C-c C-b</dt><dd><p>Resalta los cambios del trozo (hunk) en el punto con una granularidad más fina (diff-refine-hunk). Esto le permite ver exactamente qué partes de cada línea cambiada fueron realmente
cambiadas.</p>
<p>Por defecto, el modo Diff refina los «hunks» tal y como Emacs los muestra, así que puede que encuentre útil este comando si personaliza diff-refine a un valor no predeterminado.</p>
</dd>
<dt>C-c C-c</dt><dd><p>Va al archivo fuente y a la línea correspondiente a este bloque (hunk) (diff-goto-source). 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 diff-jump-to-old-file 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 C-u C-u C-c C-c), este comando también establece
diff-jump-to-old-file para la siguiente invocación. Si el archivo fuente está bajo control de versiones (véase Control de Versiones), esto salta al archivo de trabajo por defecto. Con
un argumento prefijo, salta a la revisión «antigua» del archivo (vea Examinar y Comparar Revisiones Antiguas), cuando el punto está en la línea antigua, o de otro modo salta a la
revisión «nueva».</p>
</dd>
<dt>C-c C-e</dt><dd><p>Inicia una sesión Ediff con el parche (diff-ediff-patch). Consulte Ediff en El manual de Ediff.</p>
</dd>
<dt>C-c C-n</dt><dd><p>Restringe la vista al bloque actual (diff-restrict-view). Véase Limitación. Con un argumento de prefijo, restringe la vista al archivo actual de un parche de varios archivos. Para
volver a ampliar, usar C-x n w ( widen, ampliar).</p>
</dd>
<dt>C-c C-r</dt><dd><p>Invierte la dirección de comparación para todo el búfer (diff-reverse-direction). Con un argumento prefijo, invierte la dirección sólo dentro de la región actual (véase La Marca y la
Región). 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>
</dd>
<dt>C-c C-s</dt><dd><p>Divide el bloque (hunk) en el punto (diff-split-hunk) en dos bloques separados. Esto inserta una cabecera de bloque y modifica la cabecera del bloque actual. Este comando es útil para
editar parches manualmente, y sólo funciona con el formato diff unificado producido por las opciones -u o unified del programa diff. Si necesita dividir un bloque en el formato
context diff producido por las opciones -c o context de diff, primero convierta el búfer al formato diff unificado con C-c C-u.</p>
</dd>
<dt>C-c C-d</dt><dd><p>Convierte todo el búfer al formato diff de contexto (diff-unified-&gt;context). Con un argumento prefijo, convierte sólo los trozos (hunks) dentro de la región.</p>
</dd>
<dt>C-c C-u</dt><dd><p>Convierte todo el búfer a formato diff unificado (diff-context-&gt;unified). Con un argumento de prefijo, convierte el formato unificado al formato de contexto. Cuando la marca está
activa, solo convierte los fragmentos dentro de la región.</p>
</dd>
<dt>C-c C-l</dt><dd><p>Vuelve a generar el segmento (hunk) actual (diff-refresh-hunk).</p>
</dd>
<dt>C-c C-w</dt><dd><p>Vuelve a generar el bloque (hunk) actual, sin tener en cuenta los cambios en los espacios en blanco (diff-ignore-whitespace-hunk).</p>
</dd>
<dt>C-x 4 A</dt><dd><p>Genera una entrada ChangeLog, como hace C-x 4 a (ver Registros de Cambios), para cada uno de los bloques (diff-add-change-log-entries-other-window). Esto crea un esqueleto del
registro de cambios que puede rellenar más tarde con las descripciones reales de los cambios. El propio C-x 4 a 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>
</dd>
</dl>
<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 Espacios en Blanco Inútiles), automáticamente resaltará los espacios en blanco al final de las líneas modificadas. En segundo lugar, puede usar el comando M-x diff-delete-trailing-whitespace, 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 diff-font-lock-syntax es distinto de nil, los fragmentos del código fuente en los «hunks» se resaltan según el modo principal apropiado.</p>
<code class="docutils literal notranslate"><span class="pre">diff-refine</span></code> a la navegación por símbolos, el modo Diff sólo refina el bloque (hunk) al que se mueve con este comando o con <code class="docutils literal notranslate"><span class="pre">diff-hunk-prev</span></code>.</p>
</div></blockquote>
<p><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">p</kbd> (<code class="docutils literal notranslate"><span class="pre">M-p</span></code>)</p>
<blockquote>
<div><p>Se mueve al inicio de bloque anterior (<code class="docutils literal notranslate"><span class="pre">diff-hunk-prev</span></code>). Con el argumento de prefijo <em>n</em>, retrocede al <em>n</em>ésimo trozo anterior. Al igual que <code class="docutils literal notranslate"><span class="pre">M-n</span></code>, este comando refina el
segmento (hunk) al que se desplaza si establece <code class="docutils literal notranslate"><span class="pre">diff-refine</span></code> en el símbolo de navegación.</p>
</div></blockquote>
<p><kbd class="kbd docutils literal notranslate">Alt:</kbd>-<kbd class="kbd docutils literal notranslate">}</kbd> (<code class="docutils literal notranslate"><span class="pre">M-}</span></code>)</p>
<blockquote>
<div><p>Avanza al inicio del siguiente archivo, en un parche de varios archivos (<code class="docutils literal notranslate"><span class="pre">diff-file-next</span></code>). Con el argumento prefijo <em>n</em>, avanza hasta el inicio del <em>n</em>ésimo archivo siguiente.</p>
</div></blockquote>
<p><kbd class="kbd docutils literal notranslate">Atl</kbd>-<kbd class="kbd docutils literal notranslate">{</kbd> (<code class="docutils literal notranslate"><span class="pre">M-{</span></code>)</p>
<blockquote>
<div><p>Se desplaza al inicio del archivo anterior, en un parche de varios archivos (<code class="docutils literal notranslate"><span class="pre">diff-file-prev</span></code>). Con el argumento prefijo <em>n</em>, retrocede al inicio del <em>n</em>ésimo archivo anterior.</p>
</div></blockquote>
<p><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">k</kbd> (<code class="docutils literal notranslate"><span class="pre">M-k</span></code>)</p>
<blockquote>
<div><p>Mata al trozo (hunk) en el punto (<code class="docutils literal notranslate"><span class="pre">diff-hunk-kill</span></code>).</p>
</div></blockquote>
<p><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">K</kbd> (<code class="docutils literal notranslate"><span class="pre">M-K</span></code>)</p>
<blockquote>
<div><p>En un parche de varios archivos, mata la parte del archivo actual. (<code class="docutils literal notranslate"><span class="pre">diff-file-kill</span></code>).</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">a</kbd> (<code class="docutils literal notranslate"><span class="pre">C-c</span> <span class="pre">C-a</span></code>)</p>
<blockquote>
<div><p>Aplica este fragmento (hunk) a su archivo de destino (<code class="docutils literal notranslate"><span class="pre">diff-apply-hunk</span></code>). Con un argumento prefijo <code class="docutils literal notranslate"><span class="pre">C-u</span></code>, revierte este trozo, es decir, aplica la inversa del trozo, que cambia
la versión «nueva» por la versión «antigua». Si <code class="docutils literal notranslate"><span class="pre">diff-jump-to-old-file</span></code> no es nulo, aplica el fragmento a la versión «antigua» del archivo.</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">b</kbd> (<code class="docutils literal notranslate"><span class="pre">C-c</span> <span class="pre">C-b</span></code>)</p>
<blockquote>
<div><p>Resalta los cambios del trozo (hunk) en el punto con una granularidad más fina (<code class="docutils literal notranslate"><span class="pre">diff-refine-hunk</span></code>). Esto le permite ver exactamente qué partes de cada línea cambiada fueron
realmente cambiadas.</p>
<p>Por defecto, el modo Diff refina los «hunks» tal y como Emacs los muestra, así que puede que encuentre útil este comando si personaliza <code class="docutils literal notranslate"><span class="pre">diff-refine</span></code> a un valor no predeterminado.</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">c</kbd> (<code class="docutils literal notranslate"><span class="pre">C-c</span> <span class="pre">C-c</span></code>)</p>
<blockquote>
<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>
</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>
<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
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
«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>
<blockquote>
<div><p>Divide el bloque (hunk) en el punto (<code class="docutils literal notranslate"><span class="pre">diff-split-hunk</span></code>) en dos bloques separados. Esto inserta una cabecera de bloque y modifica la cabecera del bloque actual. Este comando es útil
para editar parches manualmente, y sólo funciona con el <em>formato diff unificado</em> producido por las opciones <code class="docutils literal notranslate"><span class="pre">-u</span></code> o <code class="docutils literal notranslate"><span class="pre">--unified</span></code> del programa diff. Si necesita dividir un bloque en
el <em>formato de contexto diff</em> producido por las opciones <code class="docutils literal notranslate"><span class="pre">-c</span></code> o <code class="docutils literal notranslate"><span class="pre">--context</span></code> de diff, primero convierta el búfer al formato diff unificado con <code class="docutils literal notranslate"><span class="pre">C-c</span> <span class="pre">C-u</span></code>.</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">d</kbd> (<code class="docutils literal notranslate"><span class="pre">C-c</span> <span class="pre">C-d</span></code>)</p>
<blockquote>
<div><p>Convierte todo el búfer al <em>formato diff</em> de contexto (<code class="docutils literal notranslate"><span class="pre">diff-unified-&gt;context</span></code>). Con un argumento prefijo, convierte sólo los trozos (hunks) dentro de la región.</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">u</kbd> (<code class="docutils literal notranslate"><span class="pre">C-c</span> <span class="pre">C-u</span></code>)</p>
<blockquote>
<div><p>Convierte todo el búfer a <em>formato diff unificado</em> (<code class="docutils literal notranslate"><span class="pre">diff-context-&gt;unified</span></code>). Con un argumento de prefijo, convierte el formato unificado al formato de contexto. Cuando la marca
está activa, solo convierte los fragmentos dentro de la región.</p>
</div></blockquote>
<p><kbd class="kbd docutils literal notranslate">Ctrt</kbd>-<kbd class="kbd docutils literal notranslate">c</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">l</kbd> (<code class="docutils literal notranslate"><span class="pre">C-c</span> <span class="pre">C-l</span></code>)</p>
<blockquote>
<div><p>Vuelve a generar el segmento (hunk) actual (<code class="docutils literal notranslate"><span class="pre">diff-refresh-hunk</span></code>).</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">w</kbd> (<code class="docutils literal notranslate"><span class="pre">C-c</span> <span class="pre">C-w</span></code>)</p>
<blockquote>
<div><p>Vuelve a generar el bloque (hunk) actual, sin tener en cuenta los cambios en los espacios en blanco (<code class="docutils literal notranslate"><span class="pre">diff-ignore-whitespace-hunk</span></code>).</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
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>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">
<h2>19.11 Copiar, Nombrar y Renombrar Archivos<a class="headerlink" href="#copiar-nombrar-y-renombrar-archivos" title="Link to this heading"></a></h2>

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 0.99
Traducción Revisón: 1.01
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">

View File

@ -35,7 +35,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 0.99
Traducción Revisón: 1.01
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">

View File

@ -37,7 +37,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 0.99
Traducción Revisón: 1.01
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 0.99
Traducción Revisón: 1.01
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">

Binary file not shown.

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 0.99
Traducción Revisón: 1.01
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="#" method="get">

File diff suppressed because one or more lines are too long