magit; sphinx GNU/Emacs 29.1

Confirmación (commit) tanomarcelo-git
This commit is contained in:
tanomarcelo 2024-03-14 21:11:43 -03:00
parent 725c857bdc
commit cf3152776f
69 changed files with 158 additions and 153 deletions

Binary file not shown.

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">
@ -495,7 +495,7 @@ verticalmente. La columna de meta permanece vigente hasta que se cancela.</p>
<p>En las pantallas gráficas, <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">0</kbd> (<code class="docutils literal notranslate"><span class="pre">C-0</span></code>), <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">1</kbd> (<code class="docutils literal notranslate"><span class="pre">C-1</span></code>), etc. actúan igual que <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">0</kbd> (<code class="docutils literal notranslate"><span class="pre">M-0</span></code>), <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">1</kbd> (<code class="docutils literal notranslate"><span class="pre">M-1</span></code>), etc.</p>
</section>
<section id="repeticion-de-una-orden">
<h2>8.11 Repetición de una orden<a class="headerlink" href="#repeticion-de-una-orden" title="Link to this heading"></a></h2>
<span id="id10"></span><h2>8.11 Repetición de una orden<a class="headerlink" href="#repeticion-de-una-orden" title="Link to this heading"></a></h2>
<p>Muchos comandos sencillos, como los que se invocan con una sola tecla o con <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <em>nombre-comando</em> <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">M-x</span></code> <em>nombre-comando</em> <code class="docutils literal notranslate"><span class="pre">RET</span></code>), pueden repetirse invocándolos con un argumento numérico que sirve como contador de repeticiones (véase <a class="reference internal" href="#id9"><span class="std std-ref">8.10 Argumentos Numéricos</span></a>). Sin embargo, si el comando que desea repetir solicita entrada, o utiliza un argumento numérico de otra forma, ese método no funcionará.</p>
<p>El comando <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">z</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">z</span></code>, <code class="docutils literal notranslate"><span class="pre">repeat</span></code>, repetir) proporciona otra forma de repetir un comando Emacs muchas veces. Este comando repite el último comando del Editor, sea cual sea. Repetir un comando usa los mismos argumentos que se usaron antes; no lee nuevos argumentos cada vez.</p>
<p>Para repetir el comando más de una vez, escriba <code class="docutils literal notranslate"><span class="pre">z</span></code>s adicionales: cada <code class="docutils literal notranslate"><span class="pre">z</span></code> repite el comando una vez más. La repetición finaliza cuando se teclea un carácter distinto de <code class="docutils literal notranslate"><span class="pre">z</span></code> o se pulsa un botón del ratón.</p>

View file

@ -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">
@ -181,7 +181,7 @@
<p>Emacs interpreta <code class="docutils literal notranslate"><span class="pre">~/</span></code> como su directorio personal. Así, <code class="docutils literal notranslate"><span class="pre">~/foo/bar.txt</span></code> especifica un fichero llamado <code class="docutils literal notranslate"><span class="pre">bar.txt</span></code>, dentro de un directorio llamado <code class="docutils literal notranslate"><span class="pre">foo</span></code>, que a su vez se encuentra en su directorio personal. Además, <code class="docutils literal notranslate"><span class="pre">~user-id/</span></code> significa el directorio personal de un usuario cuyo nombre de usuario es <em>user-id</em>. Cualquier nombre de directorio delante de <code class="docutils literal notranslate"><span class="pre">~</span></code> se ignora: así, <code class="docutils literal notranslate"><span class="pre">/u2/emacs/~/foo/bar.txt</span></code> es equivalente a <code class="docutils literal notranslate"><span class="pre">~/foo/bar.txt</span></code>.</p>
<p>En sistemas MS-Windows y MS-DOS, donde un usuario no siempre tiene un directorio home, Emacs usa varias alternativas. Para MS-Windows, ver HOME y Startup Directories en MS-Windows; para MS-DOS, ver Nombres de Archivo en MS-DOS. En estos sistemas, la construcción <code class="docutils literal notranslate"><span class="pre">~user-id/</span></code> está soportada sólo para el usuario actual, es decir, sólo si user-id es el nombre de inicio de sesión del usuario actual.</p>
<p>Para evitar que Emacs inserte el directorio por defecto al leer nombres de ficheros, cambie la variable <code class="docutils literal notranslate"><span class="pre">insert-default-directory</span></code> a <code class="docutils literal notranslate"><span class="pre">nil</span></code>. En ese caso, el minibuffer comienza vacío. No obstante, los argumentos relativos a nombres de fichero se siguen interpretando basándose en el mismo directorio por defecto.</p>
<p>También puede introducir nombres de archivos remotos en el minibuffer. Véase <a class="reference internal" href="19_ManejoArchivos.html#id17"><span class="std std-ref">19.15 Archivos Remotos</span></a>.</p>
<p>También puede introducir nombres de archivos remotos en el minibuffer. Véase <a class="reference internal" href="19_ManejoArchivos.html#id20"><span class="std std-ref">19.15 Archivos Remotos</span></a>.</p>
</section>
<section id="edicion-en-el-minibuffer">
<span id="id3"></span><h2>9.3 Edición en el minibuffer<a class="headerlink" href="#edicion-en-el-minibuffer" title="Link to this heading"></a></h2>
@ -414,7 +414,7 @@ historial (<code class="docutils literal notranslate"><span class="pre">previous
</section>
<section id="ingresar-contrasenas">
<h2>9.7 Ingresar Contraseñas<a class="headerlink" href="#ingresar-contrasenas" title="Link to this heading"></a></h2>
<p>A veces, puede que necesite escribir una contraseña en Emacs. Por ejemplo, cuando le pide al Editor que visite un fichero en otra máquina a través de un protocolo de red como FTP, a menudo necesita proporcionar una contraseña para acceder a la máquina (vea <a class="reference internal" href="19_ManejoArchivos.html#id17"><span class="std std-ref">19.15 Archivos Remotos</span></a>).</p>
<p>A veces, puede que necesite escribir una contraseña en Emacs. Por ejemplo, cuando le pide al Editor que visite un fichero en otra máquina a través de un protocolo de red como FTP, a menudo necesita proporcionar una contraseña para acceder a la máquina (vea <a class="reference internal" href="19_ManejoArchivos.html#id20"><span class="std std-ref">19.15 Archivos Remotos</span></a>).</p>
<p>Ingresar una contraseña es similar a usar un minibúfer. Emacs muestra un prompt en el área de eco (como <code class="docutils literal notranslate"><span class="pre">Password:</span></code>); después de escribir la contraseña requerida, pulse <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">RET</span></code>) para enviarla. Para evitar que otros vean su contraseña, cada carácter que escriba se muestra como un asterisco (<code class="docutils literal notranslate"><span class="pre">*</span></code>) en lugar de su forma habitual.</p>
<p>La mayoría de las características y comandos asociados con el minibúfer <em>no pueden usarse</em> cuando se introduce una contraseña. No hay historial ni completado, y no puede cambiar de ventana ni efectuar ninguna otra acción con Emacs hasta que haya introducido la contraseña.</p>
<p>Mientras esta escribiendo la contraseña, puede pulsar <kbd class="kbd docutils literal notranslate">DEL</kbd> (<code class="docutils literal notranslate"><span class="pre">DEL</span></code>) para borrar hacia atrás, eliminando el último carácter tecleado. <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-u</span></code>) borra todo lo que haya escrito hasta el momento. <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>) sale de la petición de contraseña (ver <a class="reference internal" href="51-SalirAbortar.html#id1"><span class="std std-ref">51 Salir y Abortar</span></a>). <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-y</span></code>) inserta el kill actual en la contraseña (ver <a class="reference internal" href="13_MatarMoverTxt.html#id1"><span class="std std-ref">13 Matar y Mover Texto</span></a>). Puede teclear <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">RET</span></code>) o <kbd class="kbd docutils literal notranslate">ESC</kbd> (<code class="docutils literal notranslate"><span class="pre">ESC</span></code>) para enviar la contraseña. Cualquier otra tecla de autoinserción de caracteres inserta el carácter asociado en la contraseña, y cualquier otra entrada es ignorada.</p>

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">
@ -166,7 +166,7 @@
<section id="busqueda-y-reemplazo">
<span id="id1"></span><h1>16 Búsqueda y Reemplazo<a class="headerlink" href="#busqueda-y-reemplazo" title="Link to this heading"></a></h1>
<p>Como otros editores, Emacs tiene comandos para buscar apariciones de una cadena. También tiene comandos para reemplazar ocurrencias de una cadena con una cadena diferente. Como así también hay comandos que hacen lo mismo, pero buscan patrones en lugar de cadenas fijas.</p>
<p>También puede buscar en varios archivos bajo el control de <code class="docutils literal notranslate"><span class="pre">xref</span></code> (vea <a class="reference internal" href="29_ManyProgrsGrands.html#id11"><span class="std std-ref">29.4.1.3. Buscar y Reemplazar con Identificadores</span></a>) o a través del comando Dired A (vea <a class="reference internal" href="31_DiredEditDirect.html#id9"><span class="std std-ref">31.7 Operar con Archivos</span></a>), o pedirle al programa grep que lo haga (vea <a class="reference internal" href="28_CompProbProg.html#id3"><span class="std std-ref">28.4 Buscar con Grep en Emacs</span></a>).</p>
<p>También puede buscar en varios archivos bajo el control de <code class="docutils literal notranslate"><span class="pre">xref</span></code> (vea <a class="reference internal" href="29_ManyProgrsGrands.html#id16"><span class="std std-ref">29.4.1.3. Buscar y Reemplazar con Identificadores</span></a>) o a través del comando Dired A (vea <a class="reference internal" href="31_DiredEditDirect.html#id9"><span class="std std-ref">31.7 Operar con Archivos</span></a>), o pedirle al programa grep que lo haga (vea <a class="reference internal" href="28_CompProbProg.html#id3"><span class="std std-ref">28.4 Buscar con Grep en Emacs</span></a>).</p>
<section id="busqueda-incremental">
<span id="id2"></span><h2>16.1 Búsqueda Incremental<a class="headerlink" href="#busqueda-incremental" title="Link to this heading"></a></h2>
<p>El comando principal de búsqueda de Emacs es <em>incremental:</em> empieza a buscar en cuanto escribe el primer carácter de la cadena de búsqueda. A medida que escribe la cadena de búsqueda, Emacs le muestra dónde se encontraría la cadena (tal y como la ha escrito hasta ahora). Cuando haya tecleado suficientes caracteres para identificar el lugar que desea, puede detenerse. Dependiendo de lo que planee hacer a continuación, puede que necesite o no terminar la búsqueda explícitamente con <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">RET</span></code>).</p>
@ -235,7 +235,7 @@
<p>Para activar la coincidencia de espacios laxos (véase <a class="reference internal" href="#id14"><span class="std std-ref">16.9. Coincidencia Laxa Durante la Búsqueda</span></a>), escriba <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">s</kbd> <kbd class="kbd docutils literal notranslate">SPACE</kbd> (<code class="docutils literal notranslate"><span class="pre">M-s</span> <span class="pre">SPC</span></code>).</p>
<p>Para cambiar la distinción entre mayúsculas y minúsculas de la búsqueda, escriba <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">c</kbd> (<code class="docutils literal notranslate"><span class="pre">M-c</span></code>) o <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">s</kbd> <kbd class="kbd docutils literal notranslate">c</kbd> (<code class="docutils literal notranslate"><span class="pre">M-s</span> <span class="pre">c</span></code>). Véase <a class="reference internal" href="26_ComandsLengsHuma.html#id10"><span class="std std-ref">26.7. Comandos de Conversión de Mayúsculas y Minúsculas</span></a>. Si la cadena de búsqueda incluye letras mayúsculas, la búsqueda distingue entre mayúsculas y minúsculas por defecto.</p>
<p>Para cambiar si la búsqueda considerará o no caracteres similares y equivalentes como coincidencia, escriba <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">s</kbd> <kbd class="kbd docutils literal notranslate">'</kbd> (<code class="docutils literal notranslate"><span class="pre">M-s</span> <span class="pre">'</span></code>). Véase <em>plegado de caracteres</em> en <a class="reference internal" href="#id14"><span class="std std-ref">16.9. Coincidencia Laxa Durante la Búsqueda</span></a>. Si la cadena de búsqueda incluye caracteres acentuados, se desactiva el plegado de caracteres durante esa búsqueda.</p>
<p>Para activar o desactivar la búsqueda de texto invisible, escriba <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">s</kbd> <kbd class="kbd docutils literal notranslate">i</kbd> (<code class="docutils literal notranslate"><span class="pre">M-s</span> <span class="pre">i</span></code>, <code class="docutils literal notranslate"><span class="pre">isearch-toggle-invisible</span></code>). Véase <em>Ocultar Mostrar esquemas</em> en <a class="reference internal" href="26_ComandsLengsHuma.html#id14"><span class="std std-ref">26.9.4 Comandos de Visibilidad del Modo Esquema</span></a>.</p>
<p>Para activar o desactivar la búsqueda de texto invisible, escriba <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">s</kbd> <kbd class="kbd docutils literal notranslate">i</kbd> (<code class="docutils literal notranslate"><span class="pre">M-s</span> <span class="pre">i</span></code>, <code class="docutils literal notranslate"><span class="pre">isearch-toggle-invisible</span></code>). Véase <em>Ocultar Mostrar esquemas</em> en <a class="reference internal" href="26_ComandsLengsHuma.html#id15"><span class="std std-ref">26.9.4 Comandos de Visibilidad del Modo Esquema</span></a>.</p>
<p>Para alternar entre la búsqueda incremental sin expresiones regulares y con expresiones regulares, escriba <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">r</kbd> (<code class="docutils literal notranslate"><span class="pre">M-r</span></code>) o <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">s</kbd> <kbd class="kbd docutils literal notranslate">r</kbd> (<code class="docutils literal notranslate"><span class="pre">M-s</span> <span class="pre">r</span></code>, <code class="docutils literal notranslate"><span class="pre">isearch-toggle-regexp</span></code>). Vease <a class="reference internal" href="#id12"><span class="std std-ref">16.5 Búsqueda por Expresiones Regulares</span></a>.</p>
<p>Para alternar entre el modo de símbolos, escriba <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">s</kbd> <kbd class="kbd docutils literal notranslate">_</kbd> (<code class="docutils literal notranslate"><span class="pre">M-s</span> <span class="pre">_</span></code>). Véase <a class="reference internal" href="#id11"><span class="std std-ref">16.4 Búsqueda por Símbolos</span></a>.</p>
<p>Para buscar un carácter de nueva línea, escriba <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">j</kbd> (<code class="docutils literal notranslate"><span class="pre">C-j</span></code>) como parte de la cadena de búsqueda.</p>
@ -773,7 +773,7 @@ y continúa con el siguiente búfer de la secuencia.</p>
</div></blockquote>
<p>Aparte de esto, cualquier otro carácter sale de la consulta-reemplazo (<code class="docutils literal notranslate"><span class="pre">query-replace</span></code>) y se vuelve a leer como parte de una secuencia de teclas. De este modo, si escribe <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">k</kbd> (<code class="docutils literal notranslate"><span class="pre">C-k</span></code>), sale de la consulta-reemplazo y pasa al final de la línea. En particular, <code class="docutils literal notranslate"><span class="pre">C-g</span></code> simplemente sale de la consulta-reemplazo.</p>
<p>Para reiniciar una consulta-reemplazo una vez que se ha salido, utilice <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">ESC</kbd><kbd class="kbd docutils literal notranslate">ESC</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">ESC</span> <span class="pre">ESC</span></code>), que repite la consulta-reemplazo porque ha utilizado el minibúfer para leer sus argumentos. Véase <a class="reference internal" href="09_ElMinibufer.html#id10"><span class="std std-ref">9.6 Repetición de Comandos del Minibúfer</span></a>.</p>
<p>La opción <code class="docutils literal notranslate"><span class="pre">search-invisible</span></code> (búsqueda-invisible) determina cómo <code class="docutils literal notranslate"><span class="pre">query-replace</span></code> trata el texto invisible. Véase <em>Búsqueda de Contornos</em> en <a class="reference internal" href="26_ComandsLengsHuma.html#id14"><span class="std std-ref">26.9.4 Comandos de Visibilidad del Modo Esquema</span></a>.</p>
<p>La opción <code class="docutils literal notranslate"><span class="pre">search-invisible</span></code> (búsqueda-invisible) determina cómo <code class="docutils literal notranslate"><span class="pre">query-replace</span></code> trata el texto invisible. Véase <em>Búsqueda de Contornos</em> en <a class="reference internal" href="26_ComandsLengsHuma.html#id15"><span class="std std-ref">26.9.4 Comandos de Visibilidad del Modo Esquema</span></a>.</p>
<p>Véase <a class="reference internal" href="31_DiredEditDirect.html#id9"><span class="std std-ref">31.7 Operar con Archivos</span></a>, para el comando <code class="docutils literal notranslate"><span class="pre">Q</span></code> de Dired que realiza el reemplazo por consulta en los archivos seleccionados. Véase también <a class="reference internal" href="31_DiredEditDirect.html#id10"><span class="std std-ref">31.10 Transformación de Nombres de Archivos en Dired</span></a>, para los comandos de Dired para renombrar, copiar o enlazar archivos reemplazando las coincidencias expreg en los nombres de archivos.</p>
</section>
</section>

View file

@ -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">

View file

@ -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">

View file

@ -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">&lt;rms&gt;</span></code>, <code class="docutils literal notranslate"><span class="pre">&lt;tmp&gt;</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">&lt;rms&gt;</span></code>, <code class="docutils literal notranslate"><span class="pre">&lt;tmp&gt;</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">&quot;foo.c&quot;</span></code>, a menudo también tiene un archivo llamado <code class="docutils literal notranslate"><span class="pre">&quot;foo.h&quot;</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">&quot;src/emacs/emacs-27/lisp/allout.el&quot;</span></code> y <code class="docutils literal notranslate"><span class="pre">&quot;src/emacs/emacs-28/lisp/allout.el&quot;</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">&quot;.c&quot;</span></code> a <code class="docutils literal notranslate"><span class="pre">&quot;.h&quot;</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">&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 <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">&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 <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">&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>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>

View file

@ -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">
@ -268,7 +268,7 @@
<p>También puede hacer que esta purga del búfer se realice por usted, una vez al día, activando el modo Medianoche. El modo Medianoche funciona cada día a medianoche; a esa hora, se ejecuta <code class="docutils literal notranslate"><span class="pre">clean-buffer-list</span></code>, o cualquier función que haya colocado en el gancho normal <code class="docutils literal notranslate"><span class="pre">midnight-hook</span></code> (ver <strong>Ganchos</strong>). Para activar Midnight mode (modo Medianoche), use el búfer de personalización para establecer la variable <code class="docutils literal notranslate"><span class="pre">midnight-mode</span></code> a <code class="docutils literal notranslate"><span class="pre">t</span></code>. Vea <strong>Interfaz de Personalización Fácil</strong>.</p>
</section>
<section id="trabajar-con-varios-buferes">
<h2>20.5 Trabajar con Varios Búferes<a class="headerlink" href="#trabajar-con-varios-buferes" title="Link to this heading"></a></h2>
<span id="id4"></span><h2>20.5 Trabajar con Varios Búferes<a class="headerlink" href="#trabajar-con-varios-buferes" title="Link to this heading"></a></h2>
<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">buffer-menu</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">buffer-menu</span></code>)</p>
<blockquote>
<div><p>Empieza a editar un búfer que enumera todos los búferes de Emacs.</p>
@ -426,7 +426,7 @@ esa función al gancho en el búfer base y luego hacer que la función opere en
<h2>20.7 Funciones Convenientes y Personalización del Manejo de Búferes<a class="headerlink" href="#funciones-convenientes-y-personalizacion-del-manejo-de-buferes" title="Link to this heading"></a></h2>
<p>Esta sección describe varios modos y características que hacen más cómodo el cambio entre búferes.</p>
<section id="hacer-que-los-nombres-de-los-buferes-sean-unicos">
<span id="id4"></span><h3>20.7.1 Hacer que los Nombres de los Búferes sean Únicos<a class="headerlink" href="#hacer-que-los-nombres-de-los-buferes-sean-unicos" title="Link to this heading"></a></h3>
<span id="id5"></span><h3>20.7.1 Hacer que los Nombres de los Búferes sean Únicos<a class="headerlink" href="#hacer-que-los-nombres-de-los-buferes-sean-unicos" title="Link to this heading"></a></h3>
<p>Cuando varios búferes visitan archivos con nombres idénticos, Emacs debe dar a estos búferes nombres distintos. El método por defecto añade un sufijo basado en los nombres de los directorios que contienen los archivos. Por ejemplo, si visita los archivos <code class="docutils literal notranslate"><span class="pre">/foo/bar/nombre/numble</span></code> y <code class="docutils literal notranslate"><span class="pre">/baz/quux/nombre/mumble</span></code> al mismo tiempo, sus búferes se llamarán <code class="docutils literal notranslate"><span class="pre">nombre&lt;bar/mumble&gt;</span></code> y <code class="docutils literal notranslate"><span class="pre">nombre&lt;quux/mumble&gt;</span></code>, respectivamente. Emacs añade tantas partes de directorio como sean necesarias para hacer un nombre único.</p>
<p>Puede elegir entre varios estilos diferentes para construir nombres de búfer únicos, personalizando la opción <code class="docutils literal notranslate"><span class="pre">uniquify-buffer-name-style</span></code>.</p>
<p>El método de nombrar hacia adelante incluye parte del nombre del directorio del archivo al principio del nombre del búfer; usando este método, los búferes que visitan los archivos <code class="docutils literal notranslate"><span class="pre">/u/rms/tmp/Makefile</span></code> y <code class="docutils literal notranslate"><span class="pre">/usr/projects/zaphod/Makefile</span></code> se llamarían <code class="docutils literal notranslate"><span class="pre">tmp/Makefile</span></code> y <code class="docutils literal notranslate"><span class="pre">zaphod/Makefile</span></code>.</p>
@ -454,7 +454,7 @@ esa función al gancho en el búfer base y luego hacer que la función opere en
<p>El modo Icomplete y el modo Fido muestran por defecto las posibles terminaciones en la misma línea que el prompt. Para mostrar los candidatos a completado verticalmente bajo el prompt, 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">icomplete-vertical-mode</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">icomplete-vertical-mode</span></code>), o personalice la variable <code class="docutils literal notranslate"><span class="pre">icomplete-vertical-mode</span></code> a <code class="docutils literal notranslate"><span class="pre">t</span></code> (ver <strong>Interfaz de Personalización Fácil</strong>).</p>
</section>
<section id="personalizacion-de-los-menus-del-bufer">
<span id="id5"></span><h3>20.7.3 Personalización de los Menús del Búfer<a class="headerlink" href="#personalizacion-de-los-menus-del-bufer" title="Link to this heading"></a></h3>
<span id="id6"></span><h3>20.7.3 Personalización de los Menús del Búfer<a class="headerlink" href="#personalizacion-de-los-menus-del-bufer" title="Link to this heading"></a></h3>
<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">bs-show</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">bs-show</span></code>)</p>
<blockquote>
<div><p>Crea una lista de búferes similar a la lista de búferes de <code class="docutils literal notranslate"><span class="pre">M-x</span></code> pero personalizable.</p>

View file

@ -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">

View file

@ -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">
@ -215,7 +215,7 @@ pulse <code class="docutils literal notranslate"><span class="pre">ratón-3</spa
<p>Algunos ratones tienen una «rueda» que puede usarse para desplazarse. Emacs soporta el desplazamiento de ventanas con la rueda del ratón, por defecto, en la mayoría de las pantallas gráficas. Para activar esta función, use <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">mouse-wheel-mode</span></code>. Las variables <code class="docutils literal notranslate"><span class="pre">mouse-wheel-follow-mouse</span></code> y <code class="docutils literal notranslate"><span class="pre">mouse-wheel-scroll-amount</span></code> determinan dónde y cuánto se desplazan los búferes. La variable <code class="docutils literal notranslate"><span class="pre">mouse-wheel-progressive-speed</span></code> determina si la velocidad de desplazamiento está vinculada a la rapidez con la que se mueve la rueda. Este modo también permite aumentar o disminuir el tamaño de la fuente, por defecto vinculado al desplazamiento con el modificador <kbd class="kbd docutils literal notranslate">Ctrl</kbd> (<code class="docutils literal notranslate"><span class="pre">Ctrl</span></code>). Cuando este modo está activado, la rueda del ratón produce eventos especiales como <code class="docutils literal notranslate"><span class="pre">wheel-up</span></code> (rueda-arriba) y <code class="docutils literal notranslate"><span class="pre">wheel-down</span></code> (rueda-abajo). (Algunos sistemas antiguos los reportan como <code class="docutils literal notranslate"><span class="pre">ratón-4</span></code> y <code class="docutils literal notranslate"><span class="pre">ratón-5</span></code>) Si el ratón tiene una rueda de desplazamiento horizontal, también produce eventos <code class="docutils literal notranslate"><span class="pre">wheel-left</span></code> (rueda-izquierda) y <code class="docutils literal notranslate"><span class="pre">wheel-right</span></code> (rueda-derecha).</p>
<p>Emacs también soporta el desplazamiento horizontal con el modificador <kbd class="kbd docutils literal notranslate">Shift</kbd>. Escribiendo un prefijo numérico arg (e.g., <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">5</kbd> (<code class="docutils literal notranslate"><span class="pre">M-5</span></code>)) antes de iniciar el desplazamiento horizontal cambia su valor de paso definido por la opción de Usuario <code class="docutils literal notranslate"><span class="pre">mouse-wheel-scroll-amount-horizontal</span></code>.</p>
<p>Si la rueda del ratón se puede inclinar, o si el panel táctil lo permite, también puede activar el desplazamiento horizontal personalizando la variable <code class="docutils literal notranslate"><span class="pre">mouse-wheel-tilt-scroll</span></code> con un valor distinto de cero. Por defecto, al inclinar la rueda del ratón, la vista de la ventana se desplaza horizontalmente en la dirección de la inclinación: por ejemplo, si se inclina hacia la derecha, la ventana se desplaza hacia la derecha, de modo que el texto que aparece en la ventana se desplaza horizontalmente hacia la izquierda. Si desea invertir la dirección del desplazamiento horizontal, personalice la variable <code class="docutils literal notranslate"><span class="pre">mouse-wheel-flip-direction</span></code> a un valor no nulo.</p>
<p>Cuando el puntero del ratón está sobre una imagen en el modo Imagen, véase <a class="reference internal" href="19_ManejoArchivos.html#id19"><span class="std std-ref">19.19 Visualización de Archivos de Imagen</span></a>, el desplazamiento de la rueda del ratón con el modificador <kbd class="kbd docutils literal notranslate">Ctrl</kbd> escala la imagen bajo el puntero del ratón, y el desplazamiento de la rueda del ratón con el modificador Mayús desplaza la imagen horizontalmente.</p>
<p>Cuando el puntero del ratón está sobre una imagen en el modo Imagen, véase <a class="reference internal" href="19_ManejoArchivos.html#id22"><span class="std std-ref">19.19 Visualización de Archivos de Imagen</span></a>, el desplazamiento de la rueda del ratón con el modificador <kbd class="kbd docutils literal notranslate">Ctrl</kbd> escala la imagen bajo el puntero del ratón, y el desplazamiento de la rueda del ratón con el modificador Mayús desplaza la imagen horizontalmente.</p>
</section>
<section id="comandos-de-raton-para-palabras-y-lineas">
<span id="id3"></span><h2>22.2 Comandos de Ratón para Palabras y Líneas<a class="headerlink" href="#comandos-de-raton-para-palabras-y-lineas" title="Link to this heading"></a></h2>
@ -259,7 +259,7 @@ región, desplazando la pantalla hacia atrás si es necesario.</p>
<p><code class="docutils literal notranslate"><span class="pre">C-ratón-1</span></code></p>
<blockquote>
<div><p>Este menú sirve para seleccionar un búfer.</p>
<p>El modo menor global MSB («mouse select buffer», selección de búfer con el ratón) hace que este menú sea más inteligente y personalizable. Véase <a class="reference internal" href="20_UsarVariosBuferes.html#id5"><span class="std std-ref">20.7.3 Personalización de los Menús del Búfer</span></a>.</p>
<p>El modo menor global MSB («mouse select buffer», selección de búfer con el ratón) hace que este menú sea más inteligente y personalizable. Véase <a class="reference internal" href="20_UsarVariosBuferes.html#id6"><span class="std std-ref">20.7.3 Personalización de los Menús del Búfer</span></a>.</p>
</div></blockquote>
<p><code class="docutils literal notranslate"><span class="pre">C-ratón-2</span></code></p>
<blockquote>

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">
@ -470,7 +470,7 @@ varias líneas.</p>
<p>Puede especificar explícitamente una regla para calcular el nivel de una línea de encabezamiento estableciendo la variable outline-level. El valor de outline-level debe ser una función que no reciba argumentos y devuelva el nivel del encabezamiento actual. Las formas recomendadas de establecer esta variable son en un comando de modo principal o con una variable local de archivo.</p>
</section>
<section id="comandos-de-movimiento-en-el-modo-esquema">
<h3>26.9.3 Comandos de Movimiento en el Modo Esquema<a class="headerlink" href="#comandos-de-movimiento-en-el-modo-esquema" title="Link to this heading"></a></h3>
<span id="id14"></span><h3>26.9.3 Comandos de Movimiento en el Modo Esquema<a class="headerlink" href="#comandos-de-movimiento-en-el-modo-esquema" title="Link to this heading"></a></h3>
<p>El modo Esquema (Outilne mode) proporciona comandos de movimiento especiales que se mueven hacia adelante y hacia atrás en las líneas de encabezamiento.</p>
<dl class="simple">
<dt>C-c C-n</dt><dd><p>Mueve el punto a la siguiente línea de encabezado visible (outline-next-visible-heading).</p>
@ -487,7 +487,7 @@ varias líneas.</p>
<p>Todos los comandos anteriores aceptan argumentos numéricos como cuentas de repetición. Por ejemplo, C-c C-f, cuando se le da un argumento, avanza tantas líneas de encabezamiento visibles en el mismo nivel, y C-c C-u con un argumento sale de tantos niveles anidados.</p>
</section>
<section id="comandos-de-visibilidad-del-modo-esquema">
<span id="id14"></span><h3>26.9.4 Comandos de Visibilidad del Modo Esquema<a class="headerlink" href="#comandos-de-visibilidad-del-modo-esquema" title="Link to this heading"></a></h3>
<span id="id15"></span><h3>26.9.4 Comandos de Visibilidad del Modo Esquema<a class="headerlink" href="#comandos-de-visibilidad-del-modo-esquema" title="Link to this heading"></a></h3>
<p>El modo Esquema proporciona varios comandos para ocultar o revelar temporalmente partes del búfer, basándose en la estructura del esquema. Estos comandos no se pueden deshacer; sus efectos simplemente no son registrados por el mecanismo de deshacer, por lo que se puede deshacer justo después de ellos (véase Deshacer).</p>
<p>Muchos de estos comandos actúan sobre la línea de rumbo actual. Si el punto está en una línea de encabezado, esa es la línea de encabezado actual; si el punto está en una línea de cuerpo, la línea de encabezado actual es la línea de encabezado precedente más cercana.</p>
<dl class="simple">
@ -600,7 +600,7 @@ varias líneas.</p>
<li><p>Este texto usa =un tipo de letra teletipo=</p></li>
</ul>
<p>#+begin_quote
<a href="#id15"><span class="problematic" id="id16">``</span></a>Esto es una cita””.
<a href="#id16"><span class="problematic" id="id17">``</span></a>Esto es una cita””.
#+end_quote</p>
<p>#+begin_example
Esto es un ejemplo.
@ -641,7 +641,7 @@ Packages); una vez instalado, consulte el manual de AUCTeX, que se incluye con e
<dt>C-c }</dt><dd><p>Avanza hasta el siguiente corchete cerrado no emparejado (up-list, lista ascendente).</p>
</dd>
</dl>
<p>En TeX, normalmente no se usa el carácter “»”; en su lugar, las comillas empiezan con “``” y terminan con “”””. Por lo tanto, el modo TeX vincula la tecla « al comando tex-insert-quote. Esto inserta <a href="#id17"><span class="problematic" id="id18">``</span></a>” después de un espacio en blanco o una llave abierta, “»” después de una barra invertida y “””” después de cualquier otro carácter.</p>
<p>En TeX, normalmente no se usa el carácter “»”; en su lugar, las comillas empiezan con “``” y terminan con “”””. Por lo tanto, el modo TeX vincula la tecla « al comando tex-insert-quote. Esto inserta <a href="#id18"><span class="problematic" id="id19">``</span></a>” después de un espacio en blanco o una llave abierta, “»” después de una barra invertida y “””” después de cualquier otro carácter.</p>
<p>Como excepción especial, si teclea « cuando el texto anterior al punto es “``” o “”””, Emacs sustituye el texto anterior por un único carácter “»”. Por lo tanto, puede escribir «» para insertar “»”, si alguna vez lo necesita. (También puede usar C-q « para insertar este carácter).</p>
<p>En el modo TeX, “$” tiene un código sintáctico especial que intenta comprender la forma en que coinciden los delimitadores del modo matemático de TeX. Cuando se inserta un “$” para salir del modo matemático, se muestra durante un segundo la posición del “$” coincidente que entró en el modo matemático. Esta es la misma función que muestra la llave abierta que coincide con una llave cerrada que se inserta. Sin embargo, no hay forma de saber si un “$” entra en modo matemático o sale de él; así que cuando se inserta un “$” que entra en modo matemático, la posición del “$” anterior se muestra como si coincidiera, aunque en realidad no estén relacionados.</p>
<p>TeX usa las llaves como delimitadores que deben coincidir. Algunos Usuarios prefieren mantener las llaves compensadas en todo momento, en lugar de insertarlas individualmente. Usa C-c { (tex-insert-braces) para insertar un par de llaves. Deja un punto entre las dos llaves para que pueda insertar el texto que pertenece dentro. Después, usa el comando C-c } (up-list, lista ascendente) para avanzar más allá de la llave de cierre. También puede invocar C-c { después de marcar algún texto: entonces el comando encierra el texto marcado entre llaves.</p>
@ -746,7 +746,7 @@ etiqueta de cierre.</p>
<p>Puede usar el modo SGML, menos potente, para editar XML, ya que XML es un subconjunto estricto de SGML. Para activar el modo SGML en un búfer existente, escriba M-x sgml-mode. Al activar el modo SGML, Emacs examina el búfer para determinar si es XML; si es así, establece la variable sgml-xml-mode en un valor no nulo. Esto hace que los comandos de inserción de etiquetas del modo SGML, descritos anteriormente, inserten siempre también etiquetas de cierre explícitas.</p>
</section>
<section id="modo-nroff">
<span id="id19"></span><h2>26.13 Modo Nroff<a class="headerlink" href="#modo-nroff" title="Link to this heading"></a></h2>
<span id="id20"></span><h2>26.13 Modo Nroff<a class="headerlink" href="#modo-nroff" title="Link to this heading"></a></h2>
<p>El modo Nroff, un modo principal derivado del modo Texto, está especializado en la edición de archivos nroff (por ejemplo, páginas man de Unix). Escriba M-x nroff-mode para entrar en este modo. Al entrar en modo Nroff se ejecuta el gancho text-mode-hook, y luego nroff-mode-hook (ver Ganchos).</p>
<p>En modo Nroff, las líneas de comandos nroff se tratan como separadores de párrafo, las páginas se separan con comandos “.bp” y los comentarios empiezan con barra invertida-doble comilla. También define estos comandos:</p>
<dl class="simple">

View file

@ -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">

View file

@ -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">

View file

@ -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">
@ -345,7 +345,7 @@ secuenciales enteros. VC soporta casi todas las operaciones SRC.</p>
</section>
</section>
<section id="control-de-versiones-y-la-linea-de-modo">
<h3>29.1.2 Control de Versiones y la Línea de Modo<a class="headerlink" href="#control-de-versiones-y-la-linea-de-modo" title="Link to this heading"></a></h3>
<span id="id4"></span><h3>29.1.2 Control de Versiones y la Línea de Modo<a class="headerlink" href="#control-de-versiones-y-la-linea-de-modo" title="Link to this heading"></a></h3>
<p>Cuando visita un archivo que está bajo control de versiones, Emacs lo indica en la línea de modo. Por ejemplo, “Bzr-1223” dice que se usa Bazaar para ese archivo, y el ID de revisión actual es 1223.</p>
<p>El carácter entre el nombre del back-end y el ID de revisión indica el estado del control de versiones del archivo de trabajo. En un sistema de control de versiones basado en fusión, un carácter “-” indica que el archivo de trabajo no ha sido modificado, y “:” indica que ha sido modificado. El carácter “!” indica que el archivo contiene conflictos como resultado de una operación de fusión reciente (véase Fusión de Ramas), o que el archivo ha sido eliminado del control de versiones. Por último, “?” significa que el archivo está bajo el control de versiones, pero no está en el árbol de trabajo.</p>
<p>En un sistema basado en bloqueos, “-” indica un archivo desbloqueado, y “:” un archivo bloqueado; si el archivo está bloqueado por otro Usuario (por ejemplo, “jim”), se muestra como “RCS:jim:1.3”. &#64;” significa que el archivo ha sido añadido localmente, pero aún no ha sido enviado al repositorio maestro.</p>
@ -448,7 +448,7 @@ chequeo de archivos individuales.</p>
<p>En un sistema de control de versiones basado en bloqueo (vea Control de Versiones Basado en Fusión vs Basado en Bloqueo), registrar un archivo lo deja desbloqueado y de sólo lectura. Escriba C-x v v para empezar a editarlo.</p>
</section>
<section id="revision-y-comparacion-de-versiones-anteriores">
<h3>29.1.6 Revisión y Comparación de Versiones Anteriores<a class="headerlink" href="#revision-y-comparacion-de-versiones-anteriores" title="Link to this heading"></a></h3>
<span id="id5"></span><h3>29.1.6 Revisión y Comparación de Versiones Anteriores<a class="headerlink" href="#revision-y-comparacion-de-versiones-anteriores" title="Link to this heading"></a></h3>
<dl class="simple">
<dt>C-x v =</dt><dd><p>Compara los archivos de trabajo del conjunto de archivos VC actual con las versiones de las que partió (vc-diff). Con un argumento prefijo, pide dos revisiones del conjunto de
ficheros VC actual y las compara. También puede invocar este comando desde un búfer de Dired (véase Dired, el Editor de Directorios).</p>
@ -552,7 +552,7 @@ suele corresponder a una revisión más reciente). Un argumento prefijo numéric
<p>El comando vc-log-search permite buscar un patrón en el registro de cambios. Solicita un patrón (una expresión regular), y muestra todas las entradas en el historial de cambios cuyos mensajes de registro coincidan con el patrón. Cuando se invoca con un argumento prefijo, el comando también solicitará un comando shell VCS específico para ejecutar con este propósito.</p>
</section>
<section id="deshacer-acciones-de-control-de-versiones">
<h3>29.1.8 Deshacer Acciones de Control de Versiones<a class="headerlink" href="#deshacer-acciones-de-control-de-versiones" title="Link to this heading"></a></h3>
<span id="id6"></span><h3>29.1.8 Deshacer Acciones de Control de Versiones<a class="headerlink" href="#deshacer-acciones-de-control-de-versiones" title="Link to this heading"></a></h3>
<dl class="simple">
<dt>C-x v u</dt><dd><p>Revierte el/los archivo(s) de trabajo en el conjunto de archivos VC actual a la última revisión (vc-revert).</p>
</dd>
@ -791,7 +791,7 @@ reciente del registro de cambios (vc-update-change-log).</p>
<p>Cuando C-x v a añade varias entradas de registro de cambios a la vez, agrupa las entradas de registro relacionadas si todas han sido registradas por el mismo autor casi al mismo tiempo. Si las entradas de registro de varios archivos tienen el mismo texto, las agrupa en una única entrada.</p>
</section>
<section id="borrar-y-renombrar-archivos-controlados-por-version">
<h4>29.1.12.2 Borrar y Renombrar Archivos Controlados por Versión<a class="headerlink" href="#borrar-y-renombrar-archivos-controlados-por-version" title="Link to this heading"></a></h4>
<span id="id7"></span><h4>29.1.12.2 Borrar y Renombrar Archivos Controlados por Versión<a class="headerlink" href="#borrar-y-renombrar-archivos-controlados-por-version" title="Link to this heading"></a></h4>
<dl class="simple">
<dt>M-x vc-delete-file</dt><dd><p>Solicita un nombre de archivo, elimina el archivo del árbol de trabajo y programa la eliminación para su confirmación.</p>
</dd>
@ -844,7 +844,7 @@ de rama y su VCS distingue ramas de etiquetas. (vc-retrieve-tag).</p>
<p>La variable vc-handled-backends determina qué sistemas de control de versiones debe manejar VC. El valor por defecto es (RCS CVS SVN SCCS SRC Bzr Git Hg), por lo que contiene todos los sistemas de versiones soportados actualmente. Si desea que VC ignore uno o más de estos sistemas, excluya su nombre de la lista. Para deshabilitar VC por completo, establezca esta variable a nil.</p>
<p>El orden de los sistemas en la lista es significativo: cuando visita un archivo registrado en más de un sistema, VC usa por defecto el sistema que aparece primero en vc-handled-backends. El orden también es importante cuando se registra un archivo por primera vez (consulte Registro de un Archivo para el Control de Versiones).</p>
<section id="opciones-generales">
<span id="id4"></span><h4>29.1.13.1. Opciones Generales<a class="headerlink" href="#opciones-generales" title="Link to this heading"></a></h4>
<span id="id8"></span><h4>29.1.13.1. Opciones Generales<a class="headerlink" href="#opciones-generales" title="Link to this heading"></a></h4>
<p>Emacs normalmente no guarda archivos de copia de seguridad para archivos fuente que se mantienen con control de versiones. Si desea hacer archivos de copia de seguridad incluso para archivos que usan control de versiones, establezca la variable vc-make-backup-files a un valor no nulo.</p>
<p>La edición de un archivo con control de versiones a través de un enlace simbólico puede provocar resultados inesperados, si desconoce que el archivo subyacente tiene control de versiones. La variable vc-follow-symlinks controla lo que Emacs hace si intenta visitar un enlace simbólico que apunta a un archivo de control de versiones. Si el valor es ask (por defecto), Emacs pide confirmación. Si es nil, Emacs sólo muestra un mensaje de advertencia. Si es t, Emacs sigue automáticamente el enlace y visita el archivo real en su lugar.</p>
<p>Si vc-suppress-confirm es no nil, entonces C-x v v y C-x v i pueden guardar el búfer actual sin preguntar, y C-x v u también funciona sin pedir confirmación.</p>
@ -945,7 +945,7 @@ Elimina un proyecto conocido del archivo de lista de proyectos.</p>
</section>
</section>
<section id="registro-de-cambios">
<h2>29.3 Registro de Cambios<a class="headerlink" href="#registro-de-cambios" title="Link to this heading"></a></h2>
<span id="id9"></span><h2>29.3 Registro de Cambios<a class="headerlink" href="#registro-de-cambios" title="Link to this heading"></a></h2>
<p>Muchos proyectos de software mantienen un registro de cambios. Se trata de un archivo, normalmente llamado ChangeLog, que contiene un registro cronológico de cuándo y cómo se ha modificado el programa. A veces, estos archivos se generan automáticamente a partir de las entradas del registro de cambios almacenadas en los sistemas de control de versiones, o se usan para generar estas entradas del registro de cambios. A veces, hay varios archivos de registro de cambios, cada uno registrando los cambios en un directorio o árbol de directorios.</p>
<section id="comandos-de-registro-de-cambios">
<h3>29.3.1. Comandos de Registro de Cambios<a class="headerlink" href="#comandos-de-registro-de-cambios" title="Link to this heading"></a></h3>
@ -957,7 +957,7 @@ Elimina un proyecto conocido del archivo de lista de proyectos.</p>
<p>Si add-log-always-start-new-record no es nulo, C-x 4 a siempre hace una nueva entrada, incluso si la última entrada fue hecha por Usted y en la misma fecha.</p>
<p>Si el valor de la variable change-log-version-info-enabled no es nulo, C-x 4 a añade el número de versión del archivo a la entrada del registro de cambios. Encuentra el número de versión buscando en el primer diez por ciento del archivo, usando expresiones regulares de la variable change-log-version-number-regexp-list.</p>
<p>El archivo de registro de cambios se visita en el modo Registro de Cambios. En este modo principal, cada conjunto de elementos agrupados cuenta como un párrafo, y cada entrada se considera una página. Esto facilita la edición de las entradas. C-j y autocompletar sangría cada nueva línea como la línea anterior; esto es conveniente para introducir el contenido de una entrada.</p>
<p>Puede usar el comando change-log-goto-source (por defecto vinculado a C-c C-c) para ir a la ubicación de origen de la entrada del registro de cambios cerca del punto, cuando el modo Registro de Cambios está activado. Entonces, las invocaciones posteriores del comando next-error (por defecto enlazado a M-g M-n y C-x <a href="#id5"><span class="problematic" id="id6">`</span></a>) se moverán entre las entradas del registro de cambios. Saltará al sitio real del archivo que fue modificado, no sólo a la siguiente entrada del registro de cambios. También puede usar previous-error para retroceder a través de las entradas del registro de cambios.</p>
<p>Puede usar el comando change-log-goto-source (por defecto vinculado a C-c C-c) para ir a la ubicación de origen de la entrada del registro de cambios cerca del punto, cuando el modo Registro de Cambios está activado. Entonces, las invocaciones posteriores del comando next-error (por defecto enlazado a M-g M-n y C-x <a href="#id10"><span class="problematic" id="id11">`</span></a>) se moverán entre las entradas del registro de cambios. Saltará al sitio real del archivo que fue modificado, no sólo a la siguiente entrada del registro de cambios. También puede usar previous-error para retroceder a través de las entradas del registro de cambios.</p>
<p>Puede usar el comando M-x change-log-merge para fusionar otros archivos de registro en un búfer en el modo de registro de cambios, preservando el orden de fechas de las entradas.</p>
<p>Los sistemas de control de versiones son otra forma de hacer un seguimiento de los cambios en su programa y mantener un registro de ellos. Muchos proyectos que usan un VCS no mantienen un archivo de registro de cambios versionado separado hoy en día, así que puede que desee evitar tener tal archivo en el repositorio. Si el valor de add-log-dont-create-changelog-file no es nulo, comandos como C-x 4 a (add-change-log-entry-other-window) registrarán los cambios en un búfer temporal con un nombre apropiado en lugar de en un archivo, si tal archivo no existe ya.</p>
<p>Tanto si tiene un archivo de registro de cambios como si usa un búfer temporal para registros de cambios, puede teclear C-c C-a (log-edit-insert-changelog) en el búfer de registro VC para insertar las entradas de registro de cambios relevantes, si existen. Ver Características del Búfer de Entrada de Logs.</p>
@ -996,7 +996,7 @@ siempre que se conserven el aviso de copyright y este aviso.</p>
</section>
</section>
<section id="buscar-referencias-de-identificador">
<span id="id7"></span><h2>29.4 Buscar Referencias de Identificador<a class="headerlink" href="#buscar-referencias-de-identificador" title="Link to this heading"></a></h2>
<span id="id12"></span><h2>29.4 Buscar Referencias de Identificador<a class="headerlink" href="#buscar-referencias-de-identificador" title="Link to this heading"></a></h2>
<p>Un identificador es el nombre de una subunidad sintáctica del programa: una función, una subrutina, un método, una clase, un tipo de datos, una macro, etc. En un lenguaje de programación, cada identificador es un símbolo de la sintaxis del lenguaje. Los identificadores también se denominan etiquetas.</p>
<p>El desarrollo y el mantenimiento de programas requieren capacidades para encontrar rápidamente dónde se definió y se hizo referencia a cada identificador, para renombrar identificadores en todo el proyecto, etc. Estas capacidades también son útiles para encontrar referencias en modos principales distintos de los definidos para soportar lenguajes de programación. Por ejemplo, los capítulos, secciones, apéndices, etc. de un texto o un documento TeX también pueden tratarse como subunidades, y sus nombres pueden usarse como identificadores. En este capítulo, usamos el término «identificadores» para referirnos colectivamente a los nombres de cualquier tipo de subunidades, tanto en el código fuente de un programa como en otros tipos de texto.</p>
<p>Emacs proporciona una interfaz unificada para estas capacidades, llamada “xref”.</p>
@ -1021,7 +1021,7 @@ razonablemente actualizadas, reconstruyéndolas de vez en cuando).</p></li>
<p>Si Eglot está activado para el proyecto del búfer actual (véase Trabajar con Proyectos) y el modo principal del búfer actual, Eglot consulta un programa servidor de lenguaje externo y proporciona los datos suministrados por el servidor sobre las definiciones de los identificadores del proyecto. Véase Características de Eglot en Eglot: El cliente LSP de Emacs.</p>
<p>Un programa externo puede extraer referencias escaneando los archivos relevantes, y construir una base de datos de estas referencias. Un backend puede entonces acceder a esta base de datos siempre que necesite listar o buscar referencias. La distribución de Emacs incluye etags, un comando para etiquetar definiciones de identificadores en programas, que soporta muchos lenguajes de programación y otros modos principales, como HTML, extrayendo referencias en tablas de etiquetas. Véase Creación de Tablas de Etiquetas. Los modos principales para lenguajes soportados por etags pueden usar tablas de tags como base para su backend. (Una desventaja de este tipo de backend es que las tablas de etiquetas deben mantenerse razonablemente actualizadas, reconstruyéndolas de vez en cuando).</p>
<section id="encontrar-identificadores">
<span id="id8"></span><h3>29.4.1 Encontrar Identificadores<a class="headerlink" href="#encontrar-identificadores" title="Link to this heading"></a></h3>
<span id="id13"></span><h3>29.4.1 Encontrar Identificadores<a class="headerlink" href="#encontrar-identificadores" title="Link to this heading"></a></h3>
<p>Esta subsección describe los comandos que encuentran referencias a identificadores y realizan varias consultas sobre identificadores. Cada una de estas referencias puede definir un identificador, por ejemplo, proporcionar la implementación de una subunidad de programa o el texto de una sección de un documento; o puede utilizar el identificador, por ejemplo, llamar a una función o a un método, asignar un valor a una variable, mencionar un capítulo en una referencia cruzada, etc.</p>
<section id="busqueda-de-identificadores">
<h4>29.4.1.1. Búsqueda de Identificadores<a class="headerlink" href="#busqueda-de-identificadores" title="Link to this heading"></a></h4>
@ -1055,7 +1055,7 @@ razonablemente actualizadas, reconstruyéndolas de vez en cuando).</p></li>
<p>Algunos modos principales instalan facilidades de soporte xref que a veces pueden fallar al encontrar ciertos identificadores. Por ejemplo, en el modo Emacs Lisp (vea Evaluando Expresiones Emacs Lisp) M-. encontrará por defecto sólo funciones y variables de paquetes Lisp que estén cargados en la sesión Emacs actual o que estén autocargados (vea Autocarga en El Manual de Referencia de Emacs Lisp). Si M-. no encuentra algunos identificadores, puede intentar forzar a xref a usar el backend etags (vea Encontrar Referencias de Identificadores). Para ello, active el modo menor Xref Etags con M-x xref-etags-mode, y luego invoque M-. de nuevo. (Para que esto funcione, asegúrese de ejecutar etags para crear la tabla de etiquetas en el árbol de directorios de los archivos fuente; consulte Creación de Tablas de Etiquetas)</p>
</section>
<section id="comandos-disponibles-en-el-bufer-xref">
<h4>29.4.1.2 Comandos Disponibles en el Búfer <a href="#id9"><span class="problematic" id="id10">*</span></a>xref<a class="headerlink" href="#comandos-disponibles-en-el-bufer-xref" title="Link to this heading"></a></h4>
<h4>29.4.1.2 Comandos Disponibles en el Búfer <a href="#id14"><span class="problematic" id="id15">*</span></a>xref<a class="headerlink" href="#comandos-disponibles-en-el-bufer-xref" title="Link to this heading"></a></h4>
<p>El modo especial XREF proporciona los siguientes comandos en el búfer <em>xref</em>:</p>
<p>RET
ratón-1</p>
@ -1099,7 +1099,7 @@ sólo puede usarse en búferes <em>xref</em> que muestren todas las coincidencia
<p>Además, dispone de los comandos de navegación habituales, como las teclas de flecha, C-n y C-p, para desplazarse por el búfer sin mostrar las referencias.</p>
</section>
<section id="buscar-y-reemplazar-con-identificadores">
<span id="id11"></span><h4>29.4.1.3. Buscar y Reemplazar con Identificadores<a class="headerlink" href="#buscar-y-reemplazar-con-identificadores" title="Link to this heading"></a></h4>
<span id="id16"></span><h4>29.4.1.3. Buscar y Reemplazar con Identificadores<a class="headerlink" href="#buscar-y-reemplazar-con-identificadores" title="Link to this heading"></a></h4>
<p>Los comandos de esta sección realizan varias operaciones de búsqueda y reemplazo en los propios identificadores o en los archivos que hacen referencia a ellos.</p>
<dl class="simple">
<dt>M-?</dt><dd><p>Encuentra todas las referencias del identificador en el punto.</p>
@ -1247,7 +1247,7 @@ etiquetas de Ada tienen sufijos que indican el tipo de entidad</p>
<li><p>En código Perl, las etiquetas son los paquetes, subrutinas y variables definidas por las palabras clave package, sub, use constant, my y local. Use “globals” si quiere etiquetar</p></li>
</ul>
<p>variables globales. Las etiquetas para subrutinas se denominan “package::sub”. El nombre para subrutinas definidas en el paquete por defecto es “main::sub”.</p>
<p><a href="#id12"><span class="problematic" id="id13">*</span></a>En código PHP, las etiquetas son funciones, clases y defines. Los vars también son etiquetas, a menos que use la opción “no-members”.</p>
<p><a href="#id17"><span class="problematic" id="id18">*</span></a>En código PHP, las etiquetas son funciones, clases y defines. Los vars también son etiquetas, a menos que use la opción “no-members”.</p>
<ul class="simple">
<li><p>En código PostScript, las etiquetas son las funciones.</p></li>
<li><p>En código Prolog, las etiquetas son predicados y reglas al principio de línea.</p></li>
@ -1274,7 +1274,7 @@ etiquetas de Ada tienen sufijos que indican el tipo de entidad</p>
<p>Si especifica nombres de archivo absolutos como argumentos para etags, el archivo de etiquetas contendrá nombres de archivo absolutos. De este modo, el archivo de etiquetas seguirá haciendo referencia a los mismos archivos aunque lo desplace, siempre que los archivos de origen permanezcan en el mismo lugar. Los nombres de archivo absolutos empiezan por “/”, o por “device:/” en MS-DOS y MS-Windows.</p>
<p>Cuando quiera hacer una tabla de etiquetas a partir de un gran número de archivos, puede tener problemas para listarlos en la línea de comandos, porque algunos sistemas tienen un límite en su longitud. Puede eludir este límite diciéndole a etags que lea los nombres de los archivos desde su entrada estándar, escribiendo un guión en lugar de los nombres de los archivos, de esta forma</p>
<blockquote>
<div><p>find . -name «<a href="#id14"><span class="problematic" id="id15">*</span></a>.[chCH]» -print | etags -</p>
<div><p>find . -name «<a href="#id19"><span class="problematic" id="id20">*</span></a>.[chCH]» -print | etags -</p>
</div></blockquote>
<p>etags reconoce el idioma usado en un archivo de entrada basándose en su nombre y contenido. Primero intenta hacer coincidir el nombre y la extensión del archivo con los que se usan habitualmente con determinados lenguajes. Algunos lenguajes tienen intérpretes con nombres conocidos (por ejemplo, perl para Perl o pl para Prolog), así que etags busca una especificación de intérprete de la forma “#!interp” en la primera línea de un archivo de entrada, y la compara con los intérpretes conocidos. Si nada de esto funciona, o si desea anular la detección automática del idioma, puede especificar el idioma explícitamente con la opción “language=nombre”. Puede entremezclar estas opciones con los nombres de archivo; cada una se aplica a los nombres de archivo que le siguen. Especifique “language=auto” para indicar a etags que vuelva a adivinar el idioma a partir de los nombres y el contenido de los archivos. Especifique “language=none” para desactivar por completo el procesamiento específico del idioma; entonces etags reconoce las etiquetas únicamente mediante la coincidencia de expresiones regulares (consulte Etags Regexps). Esto es útil cuando un archivo de entrada usa un lenguaje no soportado por etags, y se quiere evitar que etags recurra a Fortran y C como lenguajes por defecto.</p>
<p>La opción “parse-stdin=archivo” es útil sobre todo cuando se llama a etags desde programas. Se puede usar (sólo una vez) en lugar de un nombre de archivo en la línea de comandos. etags leerá de la entrada estándar y marcará las etiquetas producidas como pertenecientes al archivo file.</p>
@ -1309,7 +1309,7 @@ etiquetas de Ada tienen sufijos que indican el tipo de entidad</p>
<p>Aquí etags elige el lenguaje de análisis para voo.doo y bar.ber según su contenido. etags también usa reg1 para reconocer etiquetas adicionales en voo.doo, y tanto reg1 como reg2 para reconocer etiquetas adicionales en bar.ber. reg1 se comprueba con cada línea de voo. doo y bar.ber, sin distinguir entre mayúsculas y minúsculas, mientras que reg2 se comprueba en todo el archivo bar.ber, permitiendo coincidencias multilínea, sin distinguir entre mayúsculas y minúsculas. etags usa sólo las reglas de etiquetas de Lisp, sin coincidencias expreg especificadas por el Usuario, para reconocer etiquetas en los.er.</p>
<p>Puede restringir una opción “regex” para que coincida sólo con archivos de un idioma determinado usando el prefijo opcional {language}. (“etags help” imprime la lista de idiomas reconocidos por etags.) Esto es particularmente útil cuando se almacenan muchas expresiones regulares predefinidas para etags en un archivo. El siguiente ejemplo etiqueta las macros DEFVAR en los archivos fuente de Emacs, sólo para el lenguaje C:</p>
<blockquote>
<div><p>regex=”{c}/[ t]*DEFVAR_[<a href="#id25"><span class="problematic" id="id26">A-Z_</span></a> t(]+»([^»]+)»/1/”</p>
<div><p>regex=”{c}/[ t]*DEFVAR_[<a href="#id31"><span class="problematic" id="id32">A-Z_</span></a> t(]+»([^»]+)»/1/”</p>
</div></blockquote>
<p>Cuando se tienen expresiones regulares complejas, se puede almacenar la lista de ellas en un archivo. La siguiente sintaxis de opción indica a etags que lea dos archivos de expresiones regulares. Las expresiones regulares contenidas en el segundo archivo se comparan sin tener en cuenta mayúsculas y minúsculas.</p>
<blockquote>
@ -1321,7 +1321,7 @@ etiquetas de Ada tienen sufijos que indican el tipo de entidad</p>
<div><blockquote>
<div><p> Esto es para archivos fuente C de GNU Emacs</p>
</div></blockquote>
<p>{c}/[ t]*DEFVAR_[<a href="#id27"><span class="problematic" id="id28">A-Z_</span></a> t(]+»([^»]+)»/1/</p>
<p>{c}/[ t]*DEFVAR_[<a href="#id33"><span class="problematic" id="id34">A-Z_</span></a> t(]+»([^»]+)»/1/</p>
</div></blockquote>
<p>y luego usarlo de esta manera:</p>
<blockquote>
@ -1332,7 +1332,7 @@ etiquetas de Ada tienen sufijos que indican el tipo de entidad</p>
<div><ul class="simple">
<li><dl class="simple">
<dt>Etiqueta archivos Octave:</dt><dd><dl class="simple">
<dt>etags language=none </dt><dd><p>regex=”/[ t]*function.*=[ t]*([^ t]*)[ t]*(/1/” regex=”/###key (.*)/1/” regex=”/[ t]*global[ t].*/” <a href="#id16"><span class="problematic" id="id17">*</span></a>.m</p>
<dt>etags language=none </dt><dd><p>regex=”/[ t]*function.*=[ t]*([^ t]*)[ t]*(/1/” regex=”/###key (.*)/1/” regex=”/[ t]*global[ t].*/” <a href="#id21"><span class="problematic" id="id22">*</span></a>.m</p>
</dd>
</dl>
</dd>
@ -1343,7 +1343,7 @@ etiquetas de Ada tienen sufijos que indican el tipo de entidad</p>
</div></blockquote>
<p>Etiqueta archivos Tcl:</p>
<blockquote>
<div><p>etags language=none regex=”/proc[ t]+([^ t]+)/1/” <a href="#id18"><span class="problematic" id="id19">*</span></a>.tcl</p>
<div><p>etags language=none regex=”/proc[ t]+([^ t]+)/1/” <a href="#id23"><span class="problematic" id="id24">*</span></a>.tcl</p>
</div></blockquote>
<p>Etiqueta archivos VHDL:</p>
<blockquote>
@ -1355,7 +1355,7 @@ etiquetas de Ada tienen sufijos que indican el tipo de entidad</p>
</section>
</section>
<section id="seleccionar-una-tabla-de-etiquetas">
<span id="id20"></span><h3>29.4.3. Seleccionar una Tabla de Etiquetas<a class="headerlink" href="#seleccionar-una-tabla-de-etiquetas" title="Link to this heading"></a></h3>
<span id="id25"></span><h3>29.4.3. Seleccionar una Tabla de Etiquetas<a class="headerlink" href="#seleccionar-una-tabla-de-etiquetas" title="Link to this heading"></a></h3>
<p>Emacs tiene en cualquier momento como máximo una tabla de etiquetas seleccionada. Todos los comandos para trabajar con tablas de etiquetas usan primero la seleccionada. Para seleccionar una tabla de etiquetas, escribe M-x visit-tags-table, que lee el nombre del archivo de la tabla de etiquetas como argumento, con TAGS por defecto en el primer directorio que contenga un archivo llamado TAGS encontrado al buscar recursivamente hacia arriba desde el directorio por defecto.</p>
<p>Emacs no lee realmente los contenidos de la tabla de etiquetas hasta que intenta usarlos; todo lo que hace visit-tags-table es almacenar el nombre del archivo en la variable tags-file-name, y no mucho más. El valor inicial de la variable es nil; ese valor le dice a todos los comandos para trabajar con tablas de etiquetas que deben preguntar por un nombre de archivo de tabla de etiquetas para usar.</p>
<p>Además de la tabla de etiquetas seleccionada, Emacs mantiene disponible la lista de varias tablas de etiquetas que usas juntas. Por ejemplo, si esta trabajando en un programa que usa una librería, puede que desee tener disponibles las tablas de etiquetas tanto del programa como de la librería, para que Emacs pueda encontrar fácilmente los identificadores de ambos. Si la tabla de etiquetas seleccionada no tiene el identificador o no menciona el archivo fuente que necesita un comando de etiquetas, el comando intentará usar todas las demás tablas de etiquetas de la lista actual de tablas de etiquetas.</p>
@ -1386,7 +1386,7 @@ etiquetas de Ada tienen sufijos que indican el tipo de entidad</p>
<p>Para construir un objetivo, escriba C-c . c (ede-compile-target). Para compilar todos los objetivos del proyecto, escriba C-c . C (ede-compile-project). EDE usa los tipos de archivo para adivinar cómo debe construirse el objetivo.</p>
</section>
<section id="fusion-de-archivos-con-emerge">
<h2>29.6 Fusión de Archivos con Emerge<a class="headerlink" href="#fusion-de-archivos-con-emerge" title="Link to this heading"></a></h2>
<span id="id26"></span><h2>29.6 Fusión de Archivos con Emerge<a class="headerlink" href="#fusion-de-archivos-con-emerge" title="Link to this heading"></a></h2>
<p>No es raro que los programadores se confundan y modifiquen el mismo programa en dos versiones diferentes. Para recuperarse de esta confusión, es necesario fusionar las dos versiones. Emerge facilita esta tarea. Para conocer otras formas de comparar archivos, consulte Comparación de Archivos, y Ediff en El Manual de Ediff.</p>
<section id="descripcion-general-de-emerge">
<h3>29.6.1 Descripción General de Emerge<a class="headerlink" href="#descripcion-general-de-emerge" title="Link to this heading"></a></h3>
@ -1559,11 +1559,11 @@ antecesora.</p>
versión del búfer B
#else /* no NEW <em>/
versión del búfer A
#endif /</em> no NEW <a href="#id21"><span class="problematic" id="id22">*</span></a>/</p>
#endif /</em> no NEW <a href="#id27"><span class="problematic" id="id28">*</span></a>/</p>
</div></blockquote>
<p>Aunque este ejemplo muestra condicionales del preprocesador C delimitando las dos versiones alternativas, puede especificar las cadenas a usar estableciendo la variable emerge-combine-versions-template a una cadena de su elección. En la cadena, “%a” dice dónde poner la versión A, y “%b” dice dónde poner la versión B. La configuración por defecto, que produce los resultados mostrados arriba, tiene este aspecto:</p>
<blockquote>
<div><p>«#ifdef NEWn%b#else /* not NEW <em>/n%a#endif /</em> not NEW <a href="#id23"><span class="problematic" id="id24">*</span></a>/n»</p>
<div><p>«#ifdef NEWn%b#else /* not NEW <em>/n%a#endif /</em> not NEW <a href="#id29"><span class="problematic" id="id30">*</span></a>/n»</p>
</div></blockquote>
</section>
<section id="puntos-mas-delicados-de-emerge">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -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">

View file

@ -37,7 +37,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">

View file

@ -416,6 +416,8 @@ Usamos el término *argumento prefijo* para enfatizar que estos argumentos se es
En las pantallas gráficas, :kbd:`Ctrl`-:kbd:`0` (``C-0``), :kbd:`Ctrl`-:kbd:`1` (``C-1``), etc. actúan igual que :kbd:`Alt`-:kbd:`0` (``M-0``), :kbd:`Alt`-:kbd:`1` (``M-1``), etc.
.. _8.11:
8.11 Repetición de una orden
----------------------------

View file

@ -105,4 +105,3 @@ Copyright © 1985-1987, 1993-2023 Free Software Foundation, Inc.
CapConSecciones/55_ComoObtnrAyuda.rst
CapConSecciones/ApendiceC.rst
CapConSecciones/ApendiceD.rst

View file

@ -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">

View file

@ -35,7 +35,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">

View file

@ -37,7 +37,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">

View file

@ -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">

Binary file not shown.

View file

@ -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="#" method="get">

File diff suppressed because one or more lines are too long