Compare commits

...

2 Commits

Author SHA1 Message Date
tanomarcelo cf3152776f magit; sphinx GNU/Emacs 29.1
Confirmación (commit) tanomarcelo-git
2024-03-14 21:11:43 -03:00
tanomarcelo 725c857bdc magit; sphinx GNU/Emacs 29.1
Confirmación (commit) tanomarcelo-git
2024-03-12 10:22:30 -03:00
72 changed files with 346 additions and 343 deletions

Binary file not shown.

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.51
Traducción Revisón: 1.56
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@ -195,7 +195,7 @@
<p><em>minor</em> es una lista de algunos de los modos menores habilitados, que son modos de edición opcionales que proporcionan características adicionales además del modo mayor. Ver <a class="reference internal" href="CapConSecciones/24_ModosMayores-Y-Menores.html#id3"><span class="std std-ref">24.2 Modos Menores</span></a>.</p>
<p>Algunas funciones aparecen junto con los modos secundarios cuando están activados, aunque no sean realmente modos secundarios. <code class="docutils literal notranslate"><span class="pre">Narrow</span></code> (Estrechamiento) significa que el búfer que se está visualizando tiene la edición restringida sólo a una parte de su texto (vea <a class="reference internal" href="CapConSecciones/15_ControlDisplay.html#id5"><span class="std std-ref">15.5 Estrechamiento</span></a>). <code class="docutils literal notranslate"><span class="pre">Def</span></code> significa que se está definiendo una macro de teclado (ver <a class="reference internal" href="CapConSecciones/18_MacrosDeTeclado.html#id1"><span class="std std-ref">18 Macros de Teclado</span></a>).</p>
<p>Además, si Emacs está dentro de un nivel de edición recursivo, aparecen corchetes (<code class="docutils literal notranslate"><span class="pre">[...]</span></code>) alrededor de los paréntesis que rodean los modos. Si Emacs está en un nivel de edición recursiva dentro de otro, aparecen corchetes dobles, y así sucesivamente. Como los niveles de edición recursiva afectan a Emacs globalmente, tales corchetes aparecen en la línea de modo de cada ventana. Ver <a class="reference internal" href="CapConSecciones/46_NivelsEdicRecursv.html#id1"><span class="std std-ref">46 Niveles de Edición Recursiva</span></a>.</p>
<p>Puede cambiar la apariencia de la línea de modo así como el formato de su contenido. Vea _ref_`22.5`. Además, la línea de modo es sensible al ratón; al hacer clic en diferentes partes de la línea de modo se ejecutan varios comandos. Consulte <a class="reference internal" href="CapConSecciones/22_MarcosPantallasGraf.html#id4"><span class="std std-ref">22.5 Comandos del Ratón en la Línea de Modo</span></a>. Además, al pasar el puntero del ratón por encima de las partes de la línea de modo sensibles al ratón, se muestra información sobre herramientas (consulte <a class="reference internal" href="CapConSecciones/22_MarcosPantallasGraf.html#id16"><span class="std std-ref">22.19 Sugerencias sobre Herramientas (Tooltips)</span></a>) con información sobre los comandos que puede invocar haciendo clic en la línea de modo.</p>
<p>Puede cambiar la apariencia de la línea de modo así como el formato de su contenido. Vea _ref_`22.5`. Además, la línea de modo es sensible al ratón; al hacer clic en diferentes partes de la línea de modo se ejecutan varios comandos. Consulte <a class="reference internal" href="CapConSecciones/22_MarcosPantallasGraf.html#id4"><span class="std std-ref">22.5 Comandos del Ratón en la Línea de Modo</span></a>. Además, al pasar el puntero del ratón por encima de las partes de la línea de modo sensibles al ratón, se muestra información sobre herramientas (consulte <a class="reference internal" href="CapConSecciones/22_MarcosPantallasGraf.html#id18"><span class="std std-ref">22.19 Sugerencias sobre Herramientas (Tooltips)</span></a>) con información sobre los comandos que puede invocar haciendo clic en la línea de modo.</p>
</section>
<section id="la-barra-de-menus">
<h2>1.4 La Barra de Menús<a class="headerlink" href="#la-barra-de-menus" title="Link to this heading"></a></h2>

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.51
Traducción Revisón: 1.56
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@ -140,7 +140,7 @@
<p>La entrada del teclado en Emacs se basa en una versión muy extendida de ASCII. Los caracteres simples, como <code class="docutils literal notranslate"><span class="pre">a</span></code>, <code class="docutils literal notranslate"><span class="pre">B</span></code>, <code class="docutils literal notranslate"><span class="pre">3</span></code>, <code class="docutils literal notranslate"><span class="pre">=</span></code>, y el carácter de espacio (denotado como <code class="docutils literal notranslate"><span class="pre">SPC</span></code>), se introducen tecleando la tecla correspondiente. Los <em>caracteres de control</em>, como <code class="docutils literal notranslate"><span class="pre">RET</span></code>, <code class="docutils literal notranslate"><span class="pre">TAB</span></code>, <code class="docutils literal notranslate"><span class="pre">DEL</span></code>, <code class="docutils literal notranslate"><span class="pre">ESC</span></code>, <code class="docutils literal notranslate"><span class="pre">F1</span></code>, <code class="docutils literal notranslate"><span class="pre">Inicio</span></code> e <code class="docutils literal notranslate"><span class="pre">IZQUIERDA</span></code>, también se introducen de esta forma, al igual que algunos caracteres que se encuentran en teclados no ingleses (véase <a class="reference internal" href="CapConSecciones/23_SoporteJuegoCaracIntern.html#id1"><span class="std std-ref">23 Soporte de Juego de Caracteres Internacional</span></a>).</p>
<p>Emacs también reconoce los caracteres de control que se introducen usando <em>teclas modificadoras</em>. Dos teclas modificadoras de uso común son <code class="docutils literal notranslate"><span class="pre">Control</span></code> (<kbd class="kbd docutils literal notranslate">Ctrl</kbd> normalmente denominada <code class="docutils literal notranslate"><span class="pre">Ctrl</span></code>) y <code class="docutils literal notranslate"><span class="pre">Meta</span></code> (<kbd class="kbd docutils literal notranslate">Alt</kbd> normalmente denominada <code class="docutils literal notranslate"><span class="pre">Alt</span></code>) <a class="footnote-reference brackets" href="#id2" id="id1" role="doc-noteref"><span class="fn-bracket">[</span>3<span class="fn-bracket">]</span></a>. Por ejemplo, <code class="docutils literal notranslate"><span class="pre">Control-a</span></code> se introduce manteniendo pulsada la tecla <kbd class="kbd docutils literal notranslate">Ctrl</kbd> (<code class="docutils literal notranslate"><span class="pre">Ctrl</span></code>) mientras se pulsa <kbd class="kbd docutils literal notranslate">a</kbd> (<code class="docutils literal notranslate"><span class="pre">a</span></code>); nos referiremos a esto como <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">a</kbd> (<code class="docutils literal notranslate"><span class="pre">C-a</span></code>) para abreviar. Del mismo modo, <code class="docutils literal notranslate"><span class="pre">Meta-a</span></code>, o <code class="docutils literal notranslate"><span class="pre">M-a</span></code> para abreviar, se introduce manteniendo pulsada la tecla <kbd class="kbd docutils literal notranslate">Alt</kbd> (<code class="docutils literal notranslate"><span class="pre">Alt</span></code>) y pulsando <kbd class="kbd docutils literal notranslate">a</kbd> (<code class="docutils literal notranslate"><span class="pre">a</span></code>). Las teclas modificadoras también pueden aplicarse a caracteres no alfanuméricos, por ejemplo, <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">F1</kbd> (<code class="docutils literal notranslate"><span class="pre">C-F1</span></code>) o <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate"></kbd> (<code class="docutils literal notranslate"><span class="pre">M-LEFT</span></code>).</p>
<p>También puede escribir caracteres Meta usando secuencias de dos caracteres empezando por <code class="docutils literal notranslate"><span class="pre">ESC</span></code>. Así, puede introducir <code class="docutils literal notranslate"><span class="pre">M-a</span></code> escribiendo <kbd class="kbd docutils literal notranslate">ESC</kbd>-<kbd class="kbd docutils literal notranslate">a</kbd>. Puede introducir <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">a</kbd> (<code class="docutils literal notranslate"><span class="pre">C-M-a</span></code>) (manteniendo pulsadas las teclas <kbd class="kbd docutils literal notranslate">Ctrl</kbd> (<code class="docutils literal notranslate"><span class="pre">Ctrl</span></code>) y <kbd class="kbd docutils literal notranslate">Alt</kbd> (<code class="docutils literal notranslate"><span class="pre">Alt</span></code>), y pulsando <kbd class="kbd docutils literal notranslate">a</kbd> (<code class="docutils literal notranslate"><span class="pre">a</span></code>)) escribiendo <kbd class="kbd docutils literal notranslate">ESC</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">a</kbd> (<code class="docutils literal notranslate"><span class="pre">ESC</span> <span class="pre">C-a</span></code>). A diferencia de <code class="docutils literal notranslate"><span class="pre">Meta</span></code>, <code class="docutils literal notranslate"><span class="pre">ESC</span></code> se introduce como un carácter independiente. No debe mantener pulsado <kbd class="kbd docutils literal notranslate">ESC</kbd> (<code class="docutils literal notranslate"><span class="pre">ESC</span></code>) mientras escribe el siguiente carácter; en su lugar, pulse <kbd class="kbd docutils literal notranslate">ESC</kbd> (<code class="docutils literal notranslate"><span class="pre">ESC</span></code>) y suéltelo, después introduzca el siguiente carácter. Esta función es útil en algunos terminales de texto en los que la tecla <kbd class="kbd docutils literal notranslate">Alt</kbd> (<code class="docutils literal notranslate"><span class="pre">Meta</span></code>) no funciona de forma fiable.</p>
<p>Emacs soporta 3 teclas modificadoras adicionales, ver <a class="reference internal" href="CapConSecciones/50_Personlzc.html#id18"><span class="std std-ref">50.3.7. Teclas Modificadoras</span></a>.</p>
<p>Emacs soporta 3 teclas modificadoras adicionales, ver <a class="reference internal" href="CapConSecciones/50_Personlzc.html#id19"><span class="std std-ref">50.3.7. Teclas Modificadoras</span></a>.</p>
<p>Emacs tiene un amplio soporte para el uso de botones y rueda de ratón, y otros dispositivos señaladores como touchpads y pantallas táctiles. Ver <a class="reference internal" href="04_EntrDelRaton.html#id1"><span class="std std-ref">4 Entrada del Ratón</span></a> para más detalles.</p>
<p>En ciertos entornos, el gestor de ventanas puede bloquear algunas entradas de teclado, incluyendo <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">TAB</kbd> (<code class="docutils literal notranslate"><span class="pre">M-TAB</span></code>), <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">SPACE</kbd> (<code class="docutils literal notranslate"><span class="pre">M-SPC</span></code>), <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">d</kbd> (<code class="docutils literal notranslate"><span class="pre">C-M-d</span></code>) y <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">l</kbd> (<code class="docutils literal notranslate"><span class="pre">C-M-l</span></code>). Si tiene este problema, puede personalizar su gestor de ventanas para que no bloquee esas teclas, o volver a enlazar los comandos Emacs afectados (vea <a class="reference internal" href="CapConSecciones/50_Personlzc.html#id1"><span class="std std-ref">50 Personalización</span></a>).</p>
<p>Los caracteres simples y los caracteres de control, así como ciertas entradas que no son de teclado, como los clics del ratón, se denominan colectivamente eventos de entrada. Para más detalles sobre cómo Emacs maneja internamente los eventos de entrada, <strong>vea Eventos de Entrada</strong> en el Manual de Referencia de Emacs Lisp.</p>

File diff suppressed because one or more lines are too long

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.51
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.51
Traducción Revisón: 1.56
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@ -138,7 +138,7 @@
<span id="id1"></span><h1>5 Teclas y Comandos<a class="headerlink" href="#teclas-y-comandos" title="Link to this heading"></a></h1>
<p>Este manual está lleno de pasajes que le dicen lo que hacen determinadas teclas. Pero Emacs no asigna significados a las teclas directamente. En su lugar, asigna significados a <em>comandos</em> con nombre, y luego da a las teclas sus significados <em>vinculándolas</em> a comandos.</p>
<p>Cada comando tiene un nombre elegido por el programador. El nombre suele estar formado por unas pocas palabras en inglés separadas por guiones; por ejemplo, <code class="docutils literal notranslate"><span class="pre">next-line</span></code> (siguiente-línea) o <code class="docutils literal notranslate"><span class="pre">forward-word</span></code> (palabra-anterior). Internamente, cada comando es un tipo especial de <em>función</em> Lisp, y las acciones asociadas al comando se realizan ejecutando la función. <strong>Vea Qué es una Función</strong> en el Manual de Referencia de Emacs Lisp.</p>
<p>Los enlaces entre teclas y comandos se registran en tablas llamadas <em>mapas de teclas</em>. Ver <a class="reference internal" href="CapConSecciones/50_Personlzc.html#id15"><span class="std std-ref">50.3.1 Mapas de teclas</span></a>.</p>
<p>Los enlaces entre teclas y comandos se registran en tablas llamadas <em>mapas de teclas</em>. Ver <a class="reference internal" href="CapConSecciones/50_Personlzc.html#id16"><span class="std std-ref">50.3.1 Mapas de teclas</span></a>.</p>
<p>Cuando decimos que «<code class="docutils literal notranslate"><span class="pre">C-n</span></code> se mueve verticalmente una línea hacia abajo» estamos pasando por alto una sutil distinción que es irrelevante en el uso ordinario, pero vital para la personalización de Emacs. El comando <code class="docutils literal notranslate"><span class="pre">next-line</span></code> hace un movimiento vertical hacia abajo. <code class="docutils literal notranslate"><span class="pre">C-n</span></code> tiene este efecto porque está ligado a <code class="docutils literal notranslate"><span class="pre">next-line</span></code>. Si redefine la vinculación <code class="docutils literal notranslate"><span class="pre">C-n</span></code> al comando <code class="docutils literal notranslate"><span class="pre">forward-word</span></code>, <code class="docutils literal notranslate"><span class="pre">C-n</span></code> se moverá una palabra hacia delante.</p>
<p>En este manual, hablaremos a menudo de teclas como <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-n</span></code>) como comandos, aunque estrictamente hablando la tecla o combinación de ellas esté asociada a un comando. Normalmente, indicamos el nombre del comando que realmente hace el trabajo entre paréntesis después de mencionar la tecla que lo ejecuta. Por ejemplo, diremos que «El ncomando <code class="docutils literal notranslate"><span class="pre">C-n</span></code> (<code class="docutils literal notranslate"><span class="pre">next-line</span></code>, línea siguiente) mueve el punto verticalmente hacia abajo», lo que significa que el comando <code class="docutils literal notranslate"><span class="pre">next-line</span></code> se mueve verticalmente hacia abajo, y la tecla <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-n</span></code>) normalmente está vinculada a él.</p>
<p>Ya que estamos hablando de personalización, deberíamos hablarle de <em>variables</em>. A menudo la descripción de un comando dirá: «Para cambiar esto, establezca la variable <code class="docutils literal notranslate"><span class="pre">mumble-foo</span></code>. Una variable es un nombre usado para almacenar un valor. La mayoría de las variables documentadas en este manual están pensadas para la personalización: algún comando u otra parte de Emacs examina la variable y se comporta de forma diferente según el valor que establezca. Puede ignorar la información sobre variables hasta que esté interesado en personalizarlas. Entonces lea la información básica sobre variables (vea <a class="reference internal" href="CapConSecciones/50_Personlzc.html#id5"><span class="std std-ref">50.2 Variables</span></a>) y la información sobre variables específicas tendrá sentido.</p>

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.51
Traducción Revisón: 1.56
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@ -142,7 +142,7 @@
<p>Generalmente, es innecesario y un desperdicio iniciar Emacs de nuevo cada vez que quiera editar un fichero. La forma recomendada de usar Emacs es iniciarlo una sola vez, justo después de iniciar sesión, y hacer toda la edición en la misma sesión de Emacs. Ver <a class="reference internal" href="CapConSecciones/19_ManejoArchivos.html#id1"><span class="std std-ref">19 Manejo de Archivos</span></a>, para información sobre visitar más de un archivo. Si usa Emacs de esta manera, la sesión Emacs acumula un contexto valioso, como el anillo de destrucción, registros, historial de deshacer, y datos del anillo de marcas, que juntos hacen la edición más conveniente. Estas características se describen más adelante en el manual.</p>
<p>Para editar un fichero desde otro programa mientras Emacs se está ejecutando, puede usar el programa de ayuda <code class="docutils literal notranslate"><span class="pre">emacsclient</span></code> para abrir un fichero en la sesión Emacs existente. Ver <a class="reference internal" href="CapConSecciones/40_EmacsComoServ.html#id1"><span class="std std-ref">40 Usar Emacs Como Servidor</span></a>.</p>
<p>Emacs acepta otros argumentos de línea de comandos que le dicen que cargue ciertos archivos Lisp, dónde poner el marco inicial, etc. Ver <a class="reference internal" href="CapConSecciones/ApendiceC.html#apendicec"><span class="std std-ref">Apéndice C Argumentos de línea de órdenes para la invocación de Emacs</span></a> Argumentos de Línea de Comandos para la Invocación de Emacs.</p>
<p>Si la variable <code class="docutils literal notranslate"><span class="pre">inhibit-startup-screen</span></code> no es nula, Emacs no muestra la pantalla de inicio. En ese caso, si uno o más ficheros fueron especificados en la línea de comandos, Emacs simplemente muestra esos ficheros; de lo contrario, muestra un buffer llamado <code class="docutils literal notranslate"><span class="pre">*scratch*</span></code>, que puede ser usado para evaluar expresiones Emacs Lisp interactivamente. Ver <a class="reference internal" href="CapConSecciones/28_CompProbProg.html#id10"><span class="std std-ref">28.10. Búferes de Interacción Lisp</span></a>. Puede establecer la variable <code class="docutils literal notranslate"><span class="pre">inhibit-startup-screen</span></code> usando la herramienta de personalización (vea <a class="reference internal" href="CapConSecciones/50_Personlzc.html#id2"><span class="std std-ref">50.1 Interfaz de Personalización Fácil</span></a>), o editando su fichero de inicialización (vea <a class="reference internal" href="CapConSecciones/50_Personlzc.html#id23"><span class="std std-ref">50.4. El Archivo de Inicialización de Emacs</span></a>). <a class="footnote-reference brackets" href="#id2" id="id1" role="doc-noteref"><span class="fn-bracket">[</span>4<span class="fn-bracket">]</span></a></p>
<p>Si la variable <code class="docutils literal notranslate"><span class="pre">inhibit-startup-screen</span></code> no es nula, Emacs no muestra la pantalla de inicio. En ese caso, si uno o más ficheros fueron especificados en la línea de comandos, Emacs simplemente muestra esos ficheros; de lo contrario, muestra un buffer llamado <code class="docutils literal notranslate"><span class="pre">*scratch*</span></code>, que puede ser usado para evaluar expresiones Emacs Lisp interactivamente. Ver <a class="reference internal" href="CapConSecciones/28_CompProbProg.html#id11"><span class="std std-ref">28.10. Búferes de Interacción Lisp</span></a>. Puede establecer la variable <code class="docutils literal notranslate"><span class="pre">inhibit-startup-screen</span></code> usando la herramienta de personalización (vea <a class="reference internal" href="CapConSecciones/50_Personlzc.html#id2"><span class="std std-ref">50.1 Interfaz de Personalización Fácil</span></a>), o editando su fichero de inicialización (vea <a class="reference internal" href="CapConSecciones/50_Personlzc.html#id24"><span class="std std-ref">50.4. El Archivo de Inicialización de Emacs</span></a>). <a class="footnote-reference brackets" href="#id2" id="id1" role="doc-noteref"><span class="fn-bracket">[</span>4<span class="fn-bracket">]</span></a></p>
<p>También puede forzar a Emacs a mostrar un fichero o directorio al arrancar estableciendo la variable <code class="docutils literal notranslate"><span class="pre">initial-buffer-choice</span></code> a una cadena que nombre ese fichero o directorio. El valor de <code class="docutils literal notranslate"><span class="pre">initial-buffer-choice</span></code> también puede ser una función (sin argumentos) que debe devolver un buffer que luego se muestra. Si <code class="docutils literal notranslate"><span class="pre">initial-buffer-choice</span></code> es distinto de nil, entonces si especifica algún fichero en la línea de órdenes, Emacs lo visitará, pero no lo mostrará inicialmente.</p>
<aside class="footnote-list brackets">
<aside class="footnote brackets" id="id2" role="doc-footnote">

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.51
Traducción Revisón: 1.56
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@ -152,7 +152,7 @@
<p>Para personalizar aún más lo que ocurre cuando Emacs está saliendo, <strong>vea Matando Emacs</strong> en El Manual de Referencia GNU Emacs Lisp.</p>
<p>Para matar Emacs sin que se le pida que guarde, 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">kill-emacs</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">kill-emacs</span></code>).</p>
<p><kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">z</kbd> (<code class="docutils literal notranslate"><span class="pre">C-z</span></code>) ejecuta el comando <code class="docutils literal notranslate"><span class="pre">suspend-frame</span></code> (suspender-marco). En una pantalla gráfica, este comando <em>minimiza</em> (o <em>iconifica</em>) el marco de Emacs seleccionado, ocultándolo de forma que pueda recuperarlo más tarde (la forma exacta en que se produce este ocultamiento depende del sistema de ventanas). En un terminal de texto, el comando <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">z</kbd> (<code class="docutils literal notranslate"><span class="pre">C-z</span></code>) <em>suspende</em> Emacs, deteniendo el programa temporalmente y devolviendo el control al proceso padre (normalmente un shell); en la mayoría de los shells, puede reanudar Emacs después de suspenderlo con el comando de shell <code class="docutils literal notranslate"><span class="pre">%emacs</span></code>.</p>
<p>Los terminales de texto suelen prestar atención a ciertos caracteres especiales cuyo significado es matar o suspender el programa que se está ejecutando. <strong>Esta característica del terminal está desactivada mientras está en el Editor</strong>. Los significados de <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">z</kbd> (<code class="docutils literal notranslate"><span class="pre">C-z</span></code>) y <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">c</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-c</span></code>) como teclas de Emacs se inspiraron en el uso de <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">z</kbd> y <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-z</span></code> y <code class="docutils literal notranslate"><span class="pre">C-c</span></code>) en varios sistemas operativos como caracteres para detener o matar un programa, pero esa es su única relación con el sistema operativo. Puede personalizar estas teclas para ejecutar cualquier comando de su elección (vea <a class="reference internal" href="CapConSecciones/50_Personlzc.html#id15"><span class="std std-ref">50.3.1 Mapas de teclas</span></a>).</p>
<p>Los terminales de texto suelen prestar atención a ciertos caracteres especiales cuyo significado es matar o suspender el programa que se está ejecutando. <strong>Esta característica del terminal está desactivada mientras está en el Editor</strong>. Los significados de <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">z</kbd> (<code class="docutils literal notranslate"><span class="pre">C-z</span></code>) y <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">c</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-c</span></code>) como teclas de Emacs se inspiraron en el uso de <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">z</kbd> y <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-z</span></code> y <code class="docutils literal notranslate"><span class="pre">C-c</span></code>) en varios sistemas operativos como caracteres para detener o matar un programa, pero esa es su única relación con el sistema operativo. Puede personalizar estas teclas para ejecutar cualquier comando de su elección (vea <a class="reference internal" href="CapConSecciones/50_Personlzc.html#id16"><span class="std std-ref">50.3.1 Mapas de teclas</span></a>).</p>
</section>

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.51
Traducción Revisón: 1.56
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -195,7 +195,7 @@ A-[ (if the Alt key works)
</div></blockquote>
<p><kbd class="kbd docutils literal notranslate"></kbd> (<code class="docutils literal notranslate"><span class="pre">right</span></code>)</p>
<blockquote>
<div><p>Este comando (<code class="docutils literal notranslate"><span class="pre">right-char</span></code>) se comporta como <code class="docutils literal notranslate"><span class="pre">C-f</span></code>, excepto cuando el punto está en un párrafo de derecha a izquierda (véase <a class="reference internal" href="23_SoporteJuegoCaracIntern.html#id21"><span class="std std-ref">23.20 Edición Bidireccional</span></a>).</p>
<div><p>Este comando (<code class="docutils literal notranslate"><span class="pre">right-char</span></code>) se comporta como <code class="docutils literal notranslate"><span class="pre">C-f</span></code>, excepto cuando el punto está en un párrafo de derecha a izquierda (véase <a class="reference internal" href="23_SoporteJuegoCaracIntern.html#id22"><span class="std std-ref">23.20 Edición Bidireccional</span></a>).</p>
</div></blockquote>
<p><kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">b</kbd> (<code class="docutils literal notranslate"><span class="pre">Ctrl-b</span></code>)</p>
<blockquote>
@ -203,7 +203,7 @@ A-[ (if the Alt key works)
</div></blockquote>
<p><kbd class="kbd docutils literal notranslate"></kbd> (<code class="docutils literal notranslate"><span class="pre">left</span></code>)</p>
<blockquote>
<div><p>Este comando (<code class="docutils literal notranslate"><span class="pre">left-char</span></code>) se comporta como <code class="docutils literal notranslate"><span class="pre">C-b</span></code>, excepto si el párrafo actual es de derecha a izquierda (véase <a class="reference internal" href="23_SoporteJuegoCaracIntern.html#id21"><span class="std std-ref">23.20 Edición Bidireccional</span></a>).</p>
<div><p>Este comando (<code class="docutils literal notranslate"><span class="pre">left-char</span></code>) se comporta como <code class="docutils literal notranslate"><span class="pre">C-b</span></code>, excepto si el párrafo actual es de derecha a izquierda (véase <a class="reference internal" href="23_SoporteJuegoCaracIntern.html#id22"><span class="std std-ref">23.20 Edición Bidireccional</span></a>).</p>
</div></blockquote>
<div class="line-block">
<div class="line"><kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">n</kbd> (<code class="docutils literal notranslate"><span class="pre">Ctrl-n</span></code>)</div>
@ -243,7 +243,7 @@ mueve a la mitad de la siguiente.</p>
<div class="line"><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate"></kbd> (<code class="docutils literal notranslate"><span class="pre">M-right</span></code>)</div>
</div>
<blockquote>
<div><p>Este comando (<code class="docutils literal notranslate"><span class="pre">right-word</span></code>) se comporta como <code class="docutils literal notranslate"><span class="pre">M-f</span></code>, excepto que retrocede una palabra si el párrafo actual es de derecha a izquierda. Véase <a class="reference internal" href="23_SoporteJuegoCaracIntern.html#id21"><span class="std std-ref">23.20 Edición Bidireccional</span></a>.</p>
<div><p>Este comando (<code class="docutils literal notranslate"><span class="pre">right-word</span></code>) se comporta como <code class="docutils literal notranslate"><span class="pre">M-f</span></code>, excepto que retrocede una palabra si el párrafo actual es de derecha a izquierda. Véase <a class="reference internal" href="23_SoporteJuegoCaracIntern.html#id22"><span class="std std-ref">23.20 Edición Bidireccional</span></a>.</p>
</div></blockquote>
<p><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">b</kbd> (<code class="docutils literal notranslate"><span class="pre">M-b</span></code>)</p>
<blockquote>
@ -254,7 +254,7 @@ mueve a la mitad de la siguiente.</p>
<div class="line"><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate"></kbd> (<code class="docutils literal notranslate"><span class="pre">M-right</span></code>)</div>
</div>
<blockquote>
<div><p>Este comando (<code class="docutils literal notranslate"><span class="pre">left-word</span></code>) se comporta como <code class="docutils literal notranslate"><span class="pre">M-b</span></code>, excepto que <em>avanza</em> una palabra si el párrafo actual es de derecha a izquierda. Véase <a class="reference internal" href="23_SoporteJuegoCaracIntern.html#id21"><span class="std std-ref">23.20 Edición Bidireccional</span></a>.</p>
<div><p>Este comando (<code class="docutils literal notranslate"><span class="pre">left-word</span></code>) se comporta como <code class="docutils literal notranslate"><span class="pre">M-b</span></code>, excepto que <em>avanza</em> una palabra si el párrafo actual es de derecha a izquierda. Véase <a class="reference internal" href="23_SoporteJuegoCaracIntern.html#id22"><span class="std std-ref">23.20 Edición Bidireccional</span></a>.</p>
</div></blockquote>
<p><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>)</p>
<blockquote>
@ -303,7 +303,7 @@ valor por defecto para <em>n</em>. Sólo tiene que escribir <kbd class="kbd docu
el buffer, ese es el valor por defecto para <em>n</em>. Simplemente teclee <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">RET</span></code>) en el minibuffer para usarlo. También puede especificar <em>n</em> dándole a <code class="docutils literal notranslate"><span class="pre">M-g</span> <span class="pre">M-g</span></code> un
argumento de prefijo numérico. Ver <a class="reference internal" href="20_UsarVariosBuferes.html#id2"><span class="std std-ref">20.1 Creación y Selección de Búferes</span></a>, para el comportamiento de <code class="docutils literal notranslate"><span class="pre">M-g</span> <span class="pre">M-g</span></code> cuando le da un argumento de prefijo simple. Alternativamente, puede usar el
comando <code class="docutils literal notranslate"><span class="pre">goto-line-relative</span></code> para mover el punto a la línea relativa a la porción accesible del buffer reducido.</p>
<p><code class="docutils literal notranslate"><span class="pre">goto-line</span></code> tiene su propia lista de historial (ver <a class="reference internal" href="09_ElMinibufer.html#id8"><span class="std std-ref">9.5 Historial del Minibúfer</span></a>). Puede tener una única lista compartida entre todos los buffers (por defecto) o una lista separada
<p><code class="docutils literal notranslate"><span class="pre">goto-line</span></code> tiene su propia lista de historial (ver <a class="reference internal" href="09_ElMinibufer.html#id9"><span class="std std-ref">9.5 Historial del Minibúfer</span></a>). Puede tener una única lista compartida entre todos los buffers (por defecto) o una lista separada
para cada buffer, personalizando la opción de usuario <code class="docutils literal notranslate"><span class="pre">goto-line-history-local</span></code>.</p>
</div></blockquote>
<p><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">g</kbd> <kbd class="kbd docutils literal notranslate">TAB</kbd> (<code class="docutils literal notranslate"><span class="pre">M-g</span> <span class="pre">TAB</span></code>)</p>
@ -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.51
Traducción Revisón: 1.56
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -170,18 +170,18 @@
</pre></div>
</div>
<p>Aquí, <code class="docutils literal notranslate"><span class="pre">Find</span> <span class="pre">file</span></code> (Buscar archivo): es el prompt y <code class="docutils literal notranslate"><span class="pre">/u2/emacs/src/</span></code> es el directorio por defecto. Si ahora escribe <code class="docutils literal notranslate"><span class="pre">buffer.c</span></code> como entrada, eso especifica el archivo <code class="docutils literal notranslate"><span class="pre">/u2/emacs/src/buffer.c</span></code>. Vea <a class="reference internal" href="19_ManejoArchivos.html#id2"><span class="std std-ref">19.1 Nombres de Archivos</span></a>, para información sobre el directorio por defecto.</p>
<p>Los valores por defecto alternativos para el nombre de archivo que puede necesitar están disponibles tecleando (<code class="docutils literal notranslate"><span class="pre">M-n</span></code>), vea <a class="reference internal" href="#id8"><span class="std std-ref">9.5 Historial del Minibúfer</span></a>.</p>
<p>Los valores por defecto alternativos para el nombre de archivo que puede necesitar están disponibles tecleando (<code class="docutils literal notranslate"><span class="pre">M-n</span></code>), vea <a class="reference internal" href="#id9"><span class="std std-ref">9.5 Historial del Minibúfer</span></a>.</p>
<p>Puede especificar un archivo en el directorio padre con <code class="docutils literal notranslate"><span class="pre">..:</span> <span class="pre">/a/b/../foo.el</span></code> es equivalente a <code class="docutils literal notranslate"><span class="pre">/a/foo.el</span></code>. Alternativamente, puede usar <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">DEL</kbd> (<code class="docutils literal notranslate"><span class="pre">M-DEL</span></code>) para matar nombres de directorio al revés (vea <a class="reference internal" href="26_ComandsLengsHuma.html#id2"><span class="std std-ref">26.1 Palabras</span></a>).</p>
<p>Para especificar un archivo en un directorio completamente diferente, puede eliminar todo el valor predeterminado con <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">a</kbd> <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-a</span> <span class="pre">C-k</span></code>) (consulte <a class="reference internal" href="#id3"><span class="std std-ref">9.3 Edición en el minibuffer</span></a>). Alternativamente, puede ignorar el valor por defecto, e introducir un nombre de fichero absoluto que empiece con una barra o una tilde después del directorio por defecto. Por ejemplo, puede especificar <code class="docutils literal notranslate"><span class="pre">/etc/termcap</span></code> como sigue:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Find</span> <span class="n">file</span><span class="p">:</span> <span class="o">/</span><span class="n">u2</span><span class="o">/</span><span class="n">emacs</span><span class="o">/</span><span class="n">src</span><span class="o">//</span><span class="n">etc</span><span class="o">/</span><span class="n">termcap</span>
</pre></div>
</div>
<p>Una doble barra hace que Emacs ignore todo lo que hay antes de la segunda barra del par. En el ejemplo anterior, <code class="docutils literal notranslate"><span class="pre">/u2/emacs/src/</span></code> es ignorado, por lo que el argumento suministrado es <code class="docutils literal notranslate"><span class="pre">/etc/termcap</span></code>. La parte ignorada del nombre del fichero se atenúa si el terminal lo permite. (Para desactivar este atenuación, desactive el modo File Name Shadow con 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">file-name-shadow-mode</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span></code> <code class="docutils literal notranslate"><span class="pre">file-name-shadow-mode</span></code>)).</p>
<p>Cuando se completan nombres de ficheros remotos (ver <a class="reference internal" href="19_ManejoArchivos.html#id7"><span class="std std-ref">19.5 Reversión Automática: Mantener los Búferes Actualizados Automáticamente</span></a>), una doble barra se comporta de forma ligeramente diferente: hace que Emacs ignore sólo la parte del nombre del fichero, dejando el resto (método, host y nombre de usuario, etc.) intacto. Escribir tres barras seguidas ignora todo en los nombres de ficheros remotos. <strong>Ver Completar Nombre de Fichero</strong> en el Manual de Tramp.</p>
<p>Cuando se completan nombres de ficheros remotos (ver <a class="reference internal" href="19_ManejoArchivos.html#id12"><span class="std std-ref">19.5 Reversión Automática: Mantener los Búferes Actualizados Automáticamente</span></a>), una doble barra se comporta de forma ligeramente diferente: hace que Emacs ignore sólo la parte del nombre del fichero, dejando el resto (método, host y nombre de usuario, etc.) intacto. Escribir tres barras seguidas ignora todo en los nombres de ficheros remotos. <strong>Ver Completar Nombre de Fichero</strong> en el Manual de Tramp.</p>
<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#id8"><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>
@ -206,7 +206,7 @@
<p>A menudo puede usar una característica llamada <em>completado</em> para ayudar a introducir argumentos. Esto significa que después de teclear parte del argumento, Emacs puede rellenar el resto, o parte de él, basándose en lo tecleado hasta el momento.</p>
<p>Cuando el completado está disponible, ciertas teclas (normalmente <kbd class="kbd docutils literal notranslate">TAB</kbd> (<code class="docutils literal notranslate"><span class="pre">TAB</span></code>), <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">RET</span></code>), y <kbd class="kbd docutils literal notranslate">SPACE</kbd> (<code class="docutils literal notranslate"><span class="pre">SPC</span></code>)) son redirigidas en el minibuffer a comandos
especiales de completado ver <a class="reference internal" href="#id5"><span class="std std-ref">9.4.2 Comandos de Completado</span></a>). Estos comandos intentan completar el texto en el minibuffer, basándose en un conjunto de <em>alternativas de completado</em> proporcionadas por el comando que solicitó el argumento. Normalmente puede teclear <kbd class="kbd docutils literal notranslate">?</kbd> (<code class="docutils literal notranslate"><span class="pre">?</span></code>) para ver una lista de alternativas de completado.</p>
<p>Aunque el completado normalmente se lleva a cabo en el minibuffer, a veces esta función también está disponible en los buffers normales. Véase <a class="reference internal" href="27_EdDePrograms.html#id15"><span class="std std-ref">27.8 Completado de Nombres de Símbolos</span></a>.</p>
<p>Aunque el completado normalmente se lleva a cabo en el minibuffer, a veces esta función también está disponible en los buffers normales. Véase <a class="reference internal" href="27_EdDePrograms.html#id16"><span class="std std-ref">27.8 Completado de Nombres de Símbolos</span></a>.</p>
<section id="ejemplos-de-completado">
<h3>9.4.1 Ejemplos de Completado<a class="headerlink" href="#ejemplos-de-completado" title="Link to this heading"></a></h3>
<p>Un simple ejemplo puede ser de ayuda. <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> (<code class="docutils literal notranslate"><span class="pre">M-x</span></code>) usa el minibuffer para leer el nombre de un comando, por lo que el completado funciona comparando el texto del minibuffer con los nombres de los comandos Emacs existentes. Suponga que desea ejecutar el comando auto-fill-mode. Puede hacerlo tecleando <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-fill-mode</span></code> <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">M-x</span></code> <code class="docutils literal notranslate"><span class="pre">auto-fill-mode</span></code> <code class="docutils literal notranslate"><span class="pre">RET</span></code>), pero es más fácil usar el completado.</p>
@ -341,7 +341,7 @@ ejemplo, puede considerar que <code class="docutils literal notranslate"><span c
<p>Puede usar diferentes estilos de completado en diferentes situaciones, configurando la variable <code class="docutils literal notranslate"><span class="pre">completion-category-overrides</span></code>. Por ejemplo, la configuración por defecto dice que sólo se utilice la terminación básica y de subcadena para los nombres de los búferes.</p>
</section>
<section id="opciones-de-completado">
<h3>9.4.5 Opciones de Completado<a class="headerlink" href="#opciones-de-completado" title="Link to this heading"></a></h3>
<span id="id8"></span><h3>9.4.5 Opciones de Completado<a class="headerlink" href="#opciones-de-completado" title="Link to this heading"></a></h3>
<p>El uso de mayúsculas y minúsculas es importante cuando se completan argumentos que distinguen entre mayúsculas y minúsculas, como los nombres de comandos. Por ejemplo, al completar nombres de comandos, <code class="docutils literal notranslate"><span class="pre">AU</span></code> no se completa con <code class="docutils literal notranslate"><span class="pre">auto-fill-mode</span></code>. Las diferencias entre mayúsculas y minúsculas se ignoran al completar argumentos en los que las mayúsculas y minúsculas no importan.</p>
<p>Al completar los nombres de archivo, se ignoran las diferencias entre mayúsculas y minúsculas si la variable <code class="docutils literal notranslate"><span class="pre">read-file-name-completion-ignore-case</span></code> es distinta de <code class="docutils literal notranslate"><span class="pre">nil</span></code> (nulo). El valor por defecto es <code class="docutils literal notranslate"><span class="pre">nil</span></code> en sistemas que distinguen entre mayúsculas y minúsculas, como GNU/Linux; es no-<code class="docutils literal notranslate"><span class="pre">nil</span></code> en sistemas que no distinguen entre mayúsculas y minúsculas, como Microsoft Windows. Cuando se completan nombres de búferes, se ignoran las diferencias entre mayúsculas y minúsculas si la variable <code class="docutils literal notranslate"><span class="pre">read-buffer-completion-ignore-case</span></code> no es <code class="docutils literal notranslate"><span class="pre">nil</span></code>; por defecto es <code class="docutils literal notranslate"><span class="pre">nil</span></code>.</p>
<p>Cuando se completan nombres de archivos, Emacs normalmente omite ciertas alternativas que se consideran poco probables de ser elegidas, tal y como determina la variable de lista <code class="docutils literal notranslate"><span class="pre">completion-ignored-extensions</span></code>. Cada elemento de la lista debe ser una cadena; cualquier nombre de fichero que termine en tal cadena se ignora como alternativa de completado. Cualquier elemento que termine en una barra (<code class="docutils literal notranslate"><span class="pre">/</span></code>) representa un nombre de subdirectorio. El valor estándar de <code class="docutils literal notranslate"><span class="pre">completion-ignored-extensions</span></code> tiene varios elementos, incluidos <code class="docutils literal notranslate"><span class="pre">.o</span></code>, <code class="docutils literal notranslate"><span class="pre">.elc</span></code> y <code class="docutils literal notranslate"><span class="pre">~</span></code>. Por ejemplo, si un directorio contiene <code class="docutils literal notranslate"><span class="pre">foo.c</span></code> y <code class="docutils literal notranslate"><span class="pre">foo.elc</span></code>, <code class="docutils literal notranslate"><span class="pre">foo</span></code> se completa en <code class="docutils literal notranslate"><span class="pre">foo.c</span></code>. Sin embargo, si todas las terminaciones posibles terminan en cadenas omitidas, no se ignoran: en el ejemplo anterior, <code class="docutils literal notranslate"><span class="pre">foo.e</span></code> termina en <code class="docutils literal notranslate"><span class="pre">foo.elc</span></code>. Emacs no tiene en cuenta las extensiones ignoradas al mostrar las alternativas de completado en la lista de completado.</p>
@ -358,7 +358,7 @@ ejemplo, puede considerar que <code class="docutils literal notranslate"><span c
</section>
</section>
<section id="historial-del-minibufer">
<span id="id8"></span><h2>9.5 Historial del Minibúfer<a class="headerlink" href="#historial-del-minibufer" title="Link to this heading"></a></h2>
<span id="id9"></span><h2>9.5 Historial del Minibúfer<a class="headerlink" href="#historial-del-minibufer" title="Link to this heading"></a></h2>
<p>Todo lo que escriba en el minibúfer se guarda en una lista del <em>historial del minibufer</em> para que pueda volver a usarlo fácilmente más tarde. Esto incluye candidatos a completado (como nombres de archivos, nombres de búfer, nombres de comandos, etc.) y cualquier otro tipo de entrada en el minibúfer. Puede usar los siguientes comandos para obtener rápidamente una respuesta anterior o alternativa en el minibúfer:</p>
<p><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">p</kbd> (<code class="docutils literal notranslate"><span class="pre">M-p</span></code>)</p>
<blockquote>
@ -396,7 +396,7 @@ historial (<code class="docutils literal notranslate"><span class="pre">previous
<p>La variable <code class="docutils literal notranslate"><span class="pre">history-delete-duplicates</span></code> especifica si se borran los duplicados del historial. Si no es nula, al añadir un nuevo elemento se eliminan de la lista todos los elementos que sean iguales a él. Por defecto es nulo.</p>
</section>
<section id="repeticion-de-comandos-del-minibufer">
<span id="id9"></span><h2>9.6 Repetición de Comandos del Minibúfer<a class="headerlink" href="#repeticion-de-comandos-del-minibufer" title="Link to this heading"></a></h2>
<span id="id10"></span><h2>9.6 Repetición de Comandos del Minibúfer<a class="headerlink" href="#repeticion-de-comandos-del-minibufer" title="Link to this heading"></a></h2>
<p>Cada orden que usa el minibúfer una vez se registra en una lista especial del historial, el <em>historial de comandos</em>, junto con los valores de sus argumentos, para que pueda repetir la orden completa. En particular, cada uso de <code class="docutils literal notranslate"><span class="pre">M-x</span></code> se registra allí, ya que este usa el minibúfer para leer el nombre del comando.</p>
<p><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>)</p>
<blockquote>
@ -408,13 +408,13 @@ historial (<code class="docutils literal notranslate"><span class="pre">previous
</div></blockquote>
<p><code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">ESC</span> <span class="pre">ESC</span></code> vuelve a ejecutar un comando reciente que usó el minibúfer. Sin argumento, repite la última orden. Un argumento numérico especifica qué comando repetir; 1 significa el último, 2 el anterior, y así sucesivamente.</p>
<p><code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">ESC</span> <span class="pre">ESC</span></code> funciona convirtiendo la orden anterior en una expresión Lisp y entrando en un minibúfer inicializado con el texto de esa expresión. Incluso si no conoce Lisp, probablemente será obvio qué comando se muestra para la repetición. Si escribe sólo <kbd class="kbd docutils literal notranslate">RETURN</kbd>, el comando se repetirá sin cambios. También puede cambiar el comando editando la expresión Lisp antes de ejecutarla. El comando ejecutado se añade al principio del historial de comandos a menos que sea idéntico al elemento más reciente.</p>
<p>Una vez dentro del minibúfer de <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">ESC</span> <span class="pre">ESC</span></code>, puede usar los comandos habituales del historial del minibúfer (véase <a class="reference internal" href="#id8"><span class="std std-ref">9.5 Historial del Minibúfer</span></a>) para moverse por la lista del historial. Después de encontrar el comando anterior deseado, puede editar su expresión como de costumbre y luego ejecutarlo tecleando <kbd class="kbd docutils literal notranslate">RETURN</kbd>.</p>
<p>Una vez dentro del minibúfer de <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">ESC</span> <span class="pre">ESC</span></code>, puede usar los comandos habituales del historial del minibúfer (véase <a class="reference internal" href="#id9"><span class="std std-ref">9.5 Historial del Minibúfer</span></a>) para moverse por la lista del historial. Después de encontrar el comando anterior deseado, puede editar su expresión como de costumbre y luego ejecutarlo tecleando <kbd class="kbd docutils literal notranslate">RETURN</kbd>.</p>
<p>La búsqueda incremental no usa, estrictamente hablando, el minibúfer. Por lo tanto, aunque se comporta como un comando complejo, normalmente no aparece en la lista del historial de <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">ESC</span> <span class="pre">ESC</span></code>. Puede hacer que los comandos de búsqueda incremental aparezcan en el historial estableciendo <code class="docutils literal notranslate"><span class="pre">isearch-resume-in-command-history</span></code> a un valor no nulo. Véase <a class="reference internal" href="16_BusqReemp.html#id2"><span class="std std-ref">16.1 Búsqueda Incremental</span></a>.</p>
<p>La lista de comandos anteriores que usan minibúfer se almacena como una lista Lisp en la variable command-history. Cada elemento es una expresión Lisp que describe una orden y sus argumentos. Los programas Lisp pueden volver a ejecutar una orden llamando a eval con el elemento <code class="docutils literal notranslate"><span class="pre">command-history</span></code>.</p>
</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#id8"><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.51
Traducción Revisón: 1.56
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -136,7 +136,7 @@
<section id="ejecutar-comandos-por-nombre">
<h1>10 Ejecutar Comandos por Nombre<a class="headerlink" href="#ejecutar-comandos-por-nombre" title="Link to this heading"></a></h1>
<p>Cada comando de Emacs tiene un nombre que puede usar para lanzarlo. Por conveniencia, muchos comandos también tienen teclas. Puede ejecutar esos comandos pulsando las teclas, o ejecutarlos por su nombre. La mayoría de los comandos de Emacs no tienen atajos de teclado, así que la única forma de ejecutarlos es por nombre. (Ver <a class="reference internal" href="50_Personlzc.html#id14"><span class="std std-ref">50.3 Personalizar las Combinaciones de Teclas</span></a>, para saber cómo configurarlas).</p>
<p>Cada comando de Emacs tiene un nombre que puede usar para lanzarlo. Por conveniencia, muchos comandos también tienen teclas. Puede ejecutar esos comandos pulsando las teclas, o ejecutarlos por su nombre. La mayoría de los comandos de Emacs no tienen atajos de teclado, así que la única forma de ejecutarlos es por nombre. (Ver <a class="reference internal" href="50_Personlzc.html#id15"><span class="std std-ref">50.3 Personalizar las Combinaciones de Teclas</span></a>, para saber cómo configurarlas).</p>
<p>Por convención, un nombre de comando consiste en una o más palabras, separadas por guiones; por ejemplo, <code class="docutils literal notranslate"><span class="pre">auto-fill-mode</span></code> o <code class="docutils literal notranslate"><span class="pre">manual-entry</span></code>. Los nombres de comandos suelen usar palabras completas en inglés para que sean más fáciles de recordar.</p>
<p>Para ejecutar un comando por nombre, inicie con <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> (<code class="docutils literal notranslate"><span class="pre">M-x</span></code>), escriba el nombre del comando y termine con <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">RET</span></code>). <code class="docutils literal notranslate"><span class="pre">M-x</span></code> usa el minibuffer para leer el nombre de la orden. La cadena <code class="docutils literal notranslate"><span class="pre">M-x</span></code> aparece al principio del minibuffer como <em>prompt</em> para recordarle que introduzca el nombre de la orden a ejecutar. <code class="docutils literal notranslate"><span class="pre">RET</span></code> sale del minibuffer y ejecuta el comando. Para más información sobre el minibuffer, véase <a class="reference internal" href="09_ElMinibufer.html#id1"><span class="std std-ref">9 El Minibúfer</span></a>.</p>
<p>Puede usar el completado para introducir el nombre del comando. Por ejemplo, para invocar el comando <code class="docutils literal notranslate"><span class="pre">forward-char</span></code>, puede escribir</p>

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.51
Traducción Revisón: 1.56
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -477,7 +477,7 @@ describir, por defecto.</p>
<p>Si ocurre algo inesperado y no está seguro de lo que ha tecleado, utilice <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">h</kbd> <kbd class="kbd docutils literal notranslate">l</kbd> (<code class="docutils literal notranslate"><span class="pre">C-h</span> <span class="pre">l</span></code>, <code class="docutils literal notranslate"><span class="pre">view-lossage</span></code>). <code class="docutils literal notranslate"><span class="pre">C-h</span> <span class="pre">l</span></code> muestra sus últimas pulsaciones de teclas y los comandos que invocaron. Por defecto, Emacs almacena las últimas 300 pulsaciones; si lo desea, puede cambiar este número con el comando <code class="docutils literal notranslate"><span class="pre">lossage-size</span></code>. Si ve comandos con los que no está familiarizado, puede usar <code class="docutils literal notranslate"><span class="pre">C-h</span> <span class="pre">k</span></code> o <code class="docutils literal notranslate"><span class="pre">C-h</span> <span class="pre">f</span></code> para averiguar qué hacen.</p>
<p>Para revisar los mensajes recientes del área de eco, utilice <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">h</kbd> <kbd class="kbd docutils literal notranslate">e</kbd> (<code class="docutils literal notranslate"><span class="pre">C-h</span> <span class="pre">e</span></code>, <code class="docutils literal notranslate"><span class="pre">view-echo-area-messages</span></code>). Esto muestra el buffer <code class="docutils literal notranslate"><span class="pre">*Messages*</span></code>, donde se guardan esos mensajes.</p>
<p>Cada modo principal de Emacs normalmente redefine algunas teclas y realiza otros cambios en el funcionamiento de la edición. <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">h</kbd> <kbd class="kbd docutils literal notranslate">m</kbd> (<code class="docutils literal notranslate"><span class="pre">C-h</span> <span class="pre">m</span></code>, <code class="docutils literal notranslate"><span class="pre">describe-mode</span></code>) muestra documentación sobre el modo principal actual, que normalmente describe los comandos y características que cambian en este modo, y también sus atajos de teclado.</p>
<p><kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">h</kbd> <kbd class="kbd docutils literal notranslate">b</kbd> (<code class="docutils literal notranslate"><span class="pre">C-h</span> <span class="pre">b</span></code>, <code class="docutils literal notranslate"><span class="pre">describe-bindings</span></code>) y <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">h</kbd> <kbd class="kbd docutils literal notranslate">s</kbd> (<code class="docutils literal notranslate"><span class="pre">C-h</span> <span class="pre">s</span></code>, <code class="docutils literal notranslate"><span class="pre">describe-syntax</span></code>) muestran otra información sobre el entorno actual dentro de Emacs. <code class="docutils literal notranslate"><span class="pre">C-h</span> <span class="pre">b</span></code> muestra una lista de todas las combinaciones de teclas ahora en efecto: primero las combinaciones locales de los modos menores actuales, luego las combinaciones locales definidas por el modo mayor actual, y finalmente las combinaciones globales (ver <a class="reference internal" href="50_Personlzc.html#id14"><span class="std std-ref">50.3 Personalizar las Combinaciones de Teclas</span></a>). <code class="docutils literal notranslate"><span class="pre">C-h</span> <span class="pre">s</span></code> muestra el contenido de la tabla de sintaxis, con explicaciones de la sintaxis de cada carácter (<strong>véase Tablas de Sintaxis</strong> en el Manual de Referencia de Emacs Lisp).</p>
<p><kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">h</kbd> <kbd class="kbd docutils literal notranslate">b</kbd> (<code class="docutils literal notranslate"><span class="pre">C-h</span> <span class="pre">b</span></code>, <code class="docutils literal notranslate"><span class="pre">describe-bindings</span></code>) y <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">h</kbd> <kbd class="kbd docutils literal notranslate">s</kbd> (<code class="docutils literal notranslate"><span class="pre">C-h</span> <span class="pre">s</span></code>, <code class="docutils literal notranslate"><span class="pre">describe-syntax</span></code>) muestran otra información sobre el entorno actual dentro de Emacs. <code class="docutils literal notranslate"><span class="pre">C-h</span> <span class="pre">b</span></code> muestra una lista de todas las combinaciones de teclas ahora en efecto: primero las combinaciones locales de los modos menores actuales, luego las combinaciones locales definidas por el modo mayor actual, y finalmente las combinaciones globales (ver <a class="reference internal" href="50_Personlzc.html#id15"><span class="std std-ref">50.3 Personalizar las Combinaciones de Teclas</span></a>). <code class="docutils literal notranslate"><span class="pre">C-h</span> <span class="pre">s</span></code> muestra el contenido de la tabla de sintaxis, con explicaciones de la sintaxis de cada carácter (<strong>véase Tablas de Sintaxis</strong> en el Manual de Referencia de Emacs Lisp).</p>
<p>Puede obtener una lista de subcomandos para una tecla prefijo en particular tecleando <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>), <kbd class="kbd docutils literal notranslate">?</kbd> (<code class="docutils literal notranslate"><span class="pre">?</span></code>), o <kbd class="kbd docutils literal notranslate">F1</kbd> (<code class="docutils literal notranslate"><span class="pre">F1</span></code>, <code class="docutils literal notranslate"><span class="pre">describe-prefix-bindings</span></code>) después de la tecla prefijo. (Hay algunas teclas de prefijo para las que no funcionan todas estas teclas, las que proporcionan sus propias combinaciones para esa tecla. Una de estas teclas de prefijo es <kbd class="kbd docutils literal notranslate">ESC</kbd> (<code class="docutils literal notranslate"><span class="pre">ESC</span></code>), porque <kbd class="kbd docutils literal notranslate">ESC</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">h</kbd> (<code class="docutils literal notranslate"><span class="pre">ESC</span> <span class="pre">C-h</span></code>) y <kbd class="kbd docutils literal notranslate">ESC</kbd> <kbd class="kbd docutils literal notranslate">?</kbd> (<code class="docutils literal notranslate"><span class="pre">ESC</span> <span class="pre">?</span></code>) son en realidad <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">h</kbd> (<code class="docutils literal notranslate"><span class="pre">C-M-h</span></code>, <code class="docutils literal notranslate"><span class="pre">mark-defun</span></code>) y <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">?</kbd> (<code class="docutils literal notranslate"><span class="pre">M-?</span></code>, <code class="docutils literal notranslate"><span class="pre">xref-find-references</span></code>), respectivamente. Sin embargo, <kbd class="kbd docutils literal notranslate">ESC</kbd> <kbd class="kbd docutils literal notranslate">F1</kbd> (<code class="docutils literal notranslate"><span class="pre">ESC</span> <span class="pre">F1</span></code>) funciona bien).</p>
<p>Finalmente, <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">describe-keymap</span></code> pide el nombre de un mapa de teclado, con finalización (o completado), y muestra un listado de todas las combinaciones de teclas en ese mapa de teclado.</p>
</section>
@ -531,7 +531,7 @@ describir, por defecto.</p>
</section>
<section id="ayuda-sobre-texto-activo-y-tooltips">
<span id="id9"></span><h2>11.10 Ayuda sobre Texto Activo y Tooltips<a class="headerlink" href="#ayuda-sobre-texto-activo-y-tooltips" title="Link to this heading"></a></h2>
<p>En Emacs, los tramos de <em>texto activo</em> (texto que hace algo especial en respuesta a clics del ratón o <code class="docutils literal notranslate"><span class="pre">RET</span></code>) a menudo tienen texto de ayuda asociado. Esto incluye hipervínculos en los buffers de Emacs, así como partes de la línea de modo. En las pantallas gráficas, así como en algunos terminales de texto que soportan el seguimiento del ratón, al mover el ratón sobre el texto activo se muestra el texto de ayuda en forma de <em>Sugerencia sobre Herramientas</em> (tooltip). Véase <a class="reference internal" href="22_MarcosPantallasGraf.html#id16"><span class="std std-ref">22.19 Sugerencias sobre Herramientas (Tooltips)</span></a>.</p>
<p>En Emacs, los tramos de <em>texto activo</em> (texto que hace algo especial en respuesta a clics del ratón o <code class="docutils literal notranslate"><span class="pre">RET</span></code>) a menudo tienen texto de ayuda asociado. Esto incluye hipervínculos en los buffers de Emacs, así como partes de la línea de modo. En las pantallas gráficas, así como en algunos terminales de texto que soportan el seguimiento del ratón, al mover el ratón sobre el texto activo se muestra el texto de ayuda en forma de <em>Sugerencia sobre Herramientas</em> (tooltip). Véase <a class="reference internal" href="22_MarcosPantallasGraf.html#id18"><span class="std std-ref">22.19 Sugerencias sobre Herramientas (Tooltips)</span></a>.</p>
<p>En terminales que no soportan el seguimiento del ratón, puede mostrar el texto de ayuda para el texto activo del búfer en el punto tecleando (<code class="docutils literal notranslate"><span class="pre">C-h</span> <span class="pre">.</span></code>, <code class="docutils literal notranslate"><span class="pre">display-local-help</span></code>). Esto muestra el texto de ayuda en el área de eco. Para mostrar el texto de ayuda automáticamente siempre que esté disponible en el punto, establezca la variable <code class="docutils literal notranslate"><span class="pre">help-at-pt-display-when-idle</span></code> a <code class="docutils literal notranslate"><span class="pre">t</span></code>.</p>
</section>
</section>

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.51
Traducción Revisón: 1.56
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -223,7 +223,7 @@
</div></blockquote>
<p><code class="docutils literal notranslate"><span class="pre">M-&#64;</span></code>, (<code class="docutils literal notranslate"><span class="pre">mark-word</span></code>, marcar palabra) coloca la marca al final de la palabra siguiente (véase <a class="reference internal" href="26_ComandsLengsHuma.html#id2"><span class="std std-ref">26.1 Palabras</span></a>, para obtener información sobre las palabras). Las invocaciones repetidas de este comando amplían la región haciendo avanzar la marca una palabra cada vez. Como excepción, si la marca está activa y situada antes del punto, <code class="docutils literal notranslate"><span class="pre">M-&#64;</span></code> desplaza la marca hacia atrás desde su posición actual una palabra cada vez.</p>
<p>Este comando también acepta un argumento numérico <em>n</em>, que le indica que avance la marca <em>n</em> palabras. Un argumento negativo <em>-n</em> hace retroceder la marca <em>n</em> palabras.</p>
<p>Del mismo modo, <code class="docutils literal notranslate"><span class="pre">C-M-&#64;</span></code> (<code class="docutils literal notranslate"><span class="pre">marca-sexp</span></code>) coloca la marca al final de la siguiente expresión equilibrada (véase <a class="reference internal" href="27_EdDePrograms.html#id5"><span class="std std-ref">27.4.1 Expresiones con Paréntesis Equilibrados</span></a>). Las invocaciones repetidas extienden la región a expresiones posteriores, mientras que los argumentos numéricos positivos o negativos desplazan la marca hacia delante o hacia atrás el número de expresiones especificado.</p>
<p>Del mismo modo, <code class="docutils literal notranslate"><span class="pre">C-M-&#64;</span></code> (<code class="docutils literal notranslate"><span class="pre">marca-sexp</span></code>) coloca la marca al final de la siguiente expresión equilibrada (véase <a class="reference internal" href="27_EdDePrograms.html#id6"><span class="std std-ref">27.4.1 Expresiones con Paréntesis Equilibrados</span></a>). Las invocaciones repetidas extienden la región a expresiones posteriores, mientras que los argumentos numéricos positivos o negativos desplazan la marca hacia delante o hacia atrás el número de expresiones especificado.</p>
<p>Los demás comandos de la lista anterior establecen tanto el punto como la marca, para delimitar un objeto en el búfer. <code class="docutils literal notranslate"><span class="pre">M-h</span></code> (<code class="docutils literal notranslate"><span class="pre">mark-paragraph</span></code>) marca párrafos (véase véase <a class="reference internal" href="26_ComandsLengsHuma.html#id5"><span class="std std-ref">26.4 Páginas</span></a>), <code class="docutils literal notranslate"><span class="pre">C-M-h</span></code> (<code class="docutils literal notranslate"><span class="pre">mark-defun</span></code>) marca definiciones de nivel superior (véase <a class="reference internal" href="27_EdDePrograms.html#id2"><span class="std std-ref">27.2 Definiciones de Nivel Superior, o Defuns</span></a>), y <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-p</span></code> (<code class="docutils literal notranslate"><span class="pre">mark-page</span></code>) marca páginas. Las invocaciones repetidas juegan de nuevo el mismo papel, extendiendo la región a objetos consecutivos; de forma similar, los argumentos numéricos especifican por cuántos objetos mover la marca.</p>
<p><code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">h</span></code> (<code class="docutils literal notranslate"><span class="pre">mark-whole-buffer</span></code>) establece todo el buffer como región, poniendo el punto al principio y la marca al final.</p>
</section>
@ -240,7 +240,7 @@
<li><p>Aplicar sangría con <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">TAB</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">TAB</span></code>) o <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">\</kbd> (<code class="docutils literal notranslate"><span class="pre">C-M-\</span></code> , ver <a class="reference internal" href="25_Indentacion.html#id1"><span class="std std-ref">25 Indentación</span></a>).</p></li>
<li><p>Rellenar como texto con <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> (<code class="docutils literal notranslate"><span class="pre">M-x</span></code>) <code class="docutils literal notranslate"><span class="pre">fill-region</span></code> (véase <a class="reference internal" href="26_ComandsLengsHuma.html#id7"><span class="std std-ref">26.6 Rellenar Texto</span></a>).</p></li>
<li><p>Comprobar la ortografía de las palabras que contiene con <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">$</kbd> (<code class="docutils literal notranslate"><span class="pre">M-$</span></code>, consulte <a class="reference internal" href="17_CmdCorrecErrsTipogr.html#id5"><span class="std std-ref">17.4 Comprobar y Corregir la Ortografía</span></a>).</p></li>
<li><p>Evaluar como código Lisp con <code class="docutils literal notranslate"><span class="pre">M-x</span></code> <code class="docutils literal notranslate"><span class="pre">eval-region</span></code> (vea <a class="reference internal" href="28_CompProbProg.html#id9"><span class="std std-ref">28.9. Evaluación de Expresiones Emacs Lisp</span></a>).</p></li>
<li><p>Evaluar como código Lisp con <code class="docutils literal notranslate"><span class="pre">M-x</span></code> <code class="docutils literal notranslate"><span class="pre">eval-region</span></code> (vea <a class="reference internal" href="28_CompProbProg.html#id10"><span class="std std-ref">28.9. Evaluación de Expresiones Emacs Lisp</span></a>).</p></li>
<li><p>Guardar en un registro con <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">r</kbd><kbd class="kbd docutils literal notranslate">s</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">r</span> <span class="pre">s</span></code>, vea <a class="reference internal" href="14_Registros.html#id1"><span class="std std-ref">14 Registros</span></a>).</p></li>
<li><p>Guardarlo en un buffer o en un fichero (vea <a class="reference internal" href="13_MatarMoverTxt.html#id12"><span class="std std-ref">13.4 Acumular Texto</span></a>).</p></li>
</ul>

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.51
Traducción Revisón: 1.56
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -256,7 +256,7 @@
</div></blockquote>
<p><kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">k</kbd> (<code class="docutils literal notranslate"><span class="pre">C-M-k</span></code>)</p>
<blockquote>
<div><p>Mata la siguiente expresión equilibrada (<code class="docutils literal notranslate"><span class="pre">kill-sexp</span></code>). Véase <a class="reference internal" href="27_EdDePrograms.html#id5"><span class="std std-ref">27.4.1 Expresiones con Paréntesis Equilibrados</span></a>.</p>
<div><p>Mata la siguiente expresión equilibrada (<code class="docutils literal notranslate"><span class="pre">kill-sexp</span></code>). Véase <a class="reference internal" href="27_EdDePrograms.html#id6"><span class="std std-ref">27.4.1 Expresiones con Paréntesis Equilibrados</span></a>.</p>
</div></blockquote>
<p><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">z</kbd> <em>caracter</em> (<code class="docutils literal notranslate"><span class="pre">M-z</span></code> <em>caracter</em>)</p>
<blockquote>
@ -265,7 +265,7 @@
<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">zap-up-to-char</span></code> <em>caracter</em> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">zap-up-to-char</span></code> <em>caracter</em>)</p>
<p>20 Mata hasta, pero sin incluir, la siguiente aparición de <em>caracter</em>.</p>
<p>Uno de los comandos de eliminación más usados es <code class="docutils literal notranslate"><span class="pre">C-w</span></code> (<code class="docutils literal notranslate"><span class="pre">kill-region</span></code>), que elimina el texto de la región (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>). Del mismo modo, <code class="docutils literal notranslate"><span class="pre">M-w</span></code> (<code class="docutils literal notranslate"><span class="pre">kill-ring-save</span></code>) copia el texto de la región en el anillo de muertes sin eliminarlo del búfer. Si la marca está inactiva cuando teclea <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">w</kbd> (<code class="docutils literal notranslate"><span class="pre">C-w</span></code>) o <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">w</kbd> (<code class="docutils literal notranslate"><span class="pre">M-w</span></code>), el comando actúa sobre el texto entre el punto y donde puso la marca por última vez (ver <a class="reference internal" href="12_LaMarca-y-LaRegion.html#id6"><span class="std std-ref">12.3 Operar en la Región</span></a>).</p>
<p>Emacs también proporciona comandos para matar unidades sintácticas específicas: palabras, con <code class="docutils literal notranslate"><span class="pre">M-DEL</span></code> y <code class="docutils literal notranslate"><span class="pre">M-d</span></code> (vea <a class="reference internal" href="26_ComandsLengsHuma.html#id2"><span class="std std-ref">26.1 Palabras</span></a>); expresiones compuestas, con <code class="docutils literal notranslate"><span class="pre">C-M-k</span></code> (vea <a class="reference internal" href="27_EdDePrograms.html#id5"><span class="std std-ref">27.4.1 Expresiones con Paréntesis Equilibrados</span></a>); y frases, con <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">DEL</span></code> y <code class="docutils literal notranslate"><span class="pre">M-k</span></code> (vea <a class="reference internal" href="26_ComandsLengsHuma.html#id3"><span class="std std-ref">26.2 Frases</span></a>).</p>
<p>Emacs también proporciona comandos para matar unidades sintácticas específicas: palabras, con <code class="docutils literal notranslate"><span class="pre">M-DEL</span></code> y <code class="docutils literal notranslate"><span class="pre">M-d</span></code> (vea <a class="reference internal" href="26_ComandsLengsHuma.html#id2"><span class="std std-ref">26.1 Palabras</span></a>); expresiones compuestas, con <code class="docutils literal notranslate"><span class="pre">C-M-k</span></code> (vea <a class="reference internal" href="27_EdDePrograms.html#id6"><span class="std std-ref">27.4.1 Expresiones con Paréntesis Equilibrados</span></a>); y frases, con <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">DEL</span></code> y <code class="docutils literal notranslate"><span class="pre">M-k</span></code> (vea <a class="reference internal" href="26_ComandsLengsHuma.html#id3"><span class="std std-ref">26.2 Frases</span></a>).</p>
<p>El comando <code class="docutils literal notranslate"><span class="pre">M-z</span></code> (<code class="docutils literal notranslate"><span class="pre">zap-to-char</span></code>) combina matar con buscar: lee un carácter y mata desde el punto hasta (e incluyendo) la siguiente aparición de ese carácter en el búfer. Un argumento numérico actúa como contador de repeticiones; un argumento negativo significa buscar hacia atrás y matar el texto anterior al punto. Se mantiene un historial de los caracteres usados anteriormente, al que se puede acceder mediante las teclas <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">p</kbd> / <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-p</span></code>/<code class="docutils literal notranslate"><span class="pre">M-n</span></code>). Esto es útil sobre todo si el carácter que se va a utilizar tiene que introducirse mediante un método de entrada complicado. Un comando similar <code class="docutils literal notranslate"><span class="pre">zap-up-to-char</span></code> mata desde el punto hasta, pero sin incluir, la siguiente aparición de un carácter, con un argumento numérico que actúa como contador de repeticiones.</p>
</section>
<section id="opciones-de-matado">
@ -314,7 +314,7 @@
<p>Cuando se utiliza después de <code class="docutils literal notranslate"><span class="pre">C-y</span></code> o <code class="docutils literal notranslate"><span class="pre">M-y</span></code>, <code class="docutils literal notranslate"><span class="pre">M-y</span></code> puede recibir un argumento numérico, que le indica cuántas entradas debe avanzar el puntero a partir del último texto que se ha tirado o jalado desde el anillo de muertes (desde el último yank). Un argumento negativo mueve el puntero hacia la parte delantera del anillo; desde el frente del anillo, se mueve alrededor de la última entrada y continúa hacia adelante desde allí.</p>
<p>Una vez que el texto que está buscando es traído al búfer, puede dejar de ejecutar comandos <code class="docutils literal notranslate"><span class="pre">M-y</span></code> y el último texto jalado permanecerá allí. Es sólo una copia de la entrada del anillo de matar, por lo que editarlo en el búfer no cambia lo que hay en el anillo. Mientras no se realice una nueva muerte, el puntero de la última permanece en el mismo lugar en el anillo de muertes, por lo que repetir <code class="docutils literal notranslate"><span class="pre">C-y</span></code> arrancará (jalará, tirará) otra copia de la misma muerte anterior.</p>
<p>Cuando se llama a <code class="docutils literal notranslate"><span class="pre">C-y</span></code> con un argumento numérico, también se establece el puntero del último tirón a la entrada que se tira.</p>
<p>También puede invocar <code class="docutils literal notranslate"><span class="pre">M-y</span></code> después de un comando que no sea un comando yank. En ese caso, <code class="docutils literal notranslate"><span class="pre">M-y</span></code> le pregunta en el minibúfer por uno de las muertes anteriores. Puede usar los comandos de historial del minibúfer (ver <a class="reference internal" href="09_ElMinibufer.html#id8"><span class="std std-ref">9.5 Historial del Minibúfer</span></a>) para navegar o buscar entre las entradas del anillo de muertes hasta que encuentre la que desea reinsertar. O puede usar los comandos de completado (ver <a class="reference internal" href="09_ElMinibufer.html#id5"><span class="std std-ref">9.4.2 Comandos de Completado</span></a>) para completar una entrada de la lista de entradas del anillo de muerte o hacer aparecer el búfer <code class="docutils literal notranslate"><span class="pre">Completions</span></code> (Completado) con las entradas candidatas entre las que puede elegir. Después de seleccionar la entrada del anillo de muertes, puede editarla opcionalmente en el minibúfer. Por último, escriba <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">RET</span></code>) para salir del minibúfer e insertar el texto del anillo de muertes seleccionado. Como en el caso de <code class="docutils literal notranslate"><span class="pre">M-y</span></code> después de otro comando yank, el puntero del último yank (tirón) queda apuntando al texto que acaba de extraer o jalar, ya sea uno de las muertes anteriores o una entrada del anillo de muertes que editó antes de insertarlo. (En este último caso, la entrada editada se añade al principio del anillo de muertes). Así que aquí, también, tecleando <code class="docutils literal notranslate"><span class="pre">C-y</span></code> sacará otra copia del texto que acaba de insertar.</p>
<p>También puede invocar <code class="docutils literal notranslate"><span class="pre">M-y</span></code> después de un comando que no sea un comando yank. En ese caso, <code class="docutils literal notranslate"><span class="pre">M-y</span></code> le pregunta en el minibúfer por uno de las muertes anteriores. Puede usar los comandos de historial del minibúfer (ver <a class="reference internal" href="09_ElMinibufer.html#id9"><span class="std std-ref">9.5 Historial del Minibúfer</span></a>) para navegar o buscar entre las entradas del anillo de muertes hasta que encuentre la que desea reinsertar. O puede usar los comandos de completado (ver <a class="reference internal" href="09_ElMinibufer.html#id5"><span class="std std-ref">9.4.2 Comandos de Completado</span></a>) para completar una entrada de la lista de entradas del anillo de muerte o hacer aparecer el búfer <code class="docutils literal notranslate"><span class="pre">Completions</span></code> (Completado) con las entradas candidatas entre las que puede elegir. Después de seleccionar la entrada del anillo de muertes, puede editarla opcionalmente en el minibúfer. Por último, escriba <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">RET</span></code>) para salir del minibúfer e insertar el texto del anillo de muertes seleccionado. Como en el caso de <code class="docutils literal notranslate"><span class="pre">M-y</span></code> después de otro comando yank, el puntero del último yank (tirón) queda apuntando al texto que acaba de extraer o jalar, ya sea uno de las muertes anteriores o una entrada del anillo de muertes que editó antes de insertarlo. (En este último caso, la entrada editada se añade al principio del anillo de muertes). Así que aquí, también, tecleando <code class="docutils literal notranslate"><span class="pre">C-y</span></code> sacará otra copia del texto que acaba de insertar.</p>
<p>Cuando se invoca con un argumento de prefijo simple <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">u</kbd> <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">y</kbd> (<code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">M-y</span></code>) después de un comando que no es un comando yank, <code class="docutils literal notranslate"><span class="pre">M-y</span></code> deja el cursor delante del texto insertado, y pone la marca al final, como hace <code class="docutils literal notranslate"><span class="pre">C-y</span></code>.</p>
</section>
<section id="anadir-muertes">

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.51
Traducción Revisón: 1.56
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -262,7 +262,7 @@ comando <code class="docutils literal notranslate"><span class="pre">C-x</span>
</section>
<section id="registros-de-macros-de-teclado">
<h2>14.7 Registros de Macros de Teclado<a class="headerlink" href="#registros-de-macros-de-teclado" title="Link to this heading"></a></h2>
<p>Si necesita ejecutar una macro de teclado (véase <a class="reference internal" href="18_MacrosDeTeclado.html#id1"><span class="std std-ref">18 Macros de Teclado</span></a>) con frecuencia, es más conveniente ponerla en un registro o guardarla (véase <a class="reference internal" href="18_MacrosDeTeclado.html#id2"><span class="std std-ref">18.5 Nombrar y Guardar Macros de Teclado</span></a>). (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-k</span> <span class="pre">x</span> <span class="pre">r</span></code>, <code class="docutils literal notranslate"><span class="pre">kmacro-to-register</span></code>) almacena la última macro de teclado en el registro <em>r</em>.</p>
<p>Si necesita ejecutar una macro de teclado (véase <a class="reference internal" href="18_MacrosDeTeclado.html#id1"><span class="std std-ref">18 Macros de Teclado</span></a>) con frecuencia, es más conveniente ponerla en un registro o guardarla (véase <a class="reference internal" href="18_MacrosDeTeclado.html#id3"><span class="std std-ref">18.5 Nombrar y Guardar Macros de Teclado</span></a>). (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-k</span> <span class="pre">x</span> <span class="pre">r</span></code>, <code class="docutils literal notranslate"><span class="pre">kmacro-to-register</span></code>) almacena la última macro de teclado en el registro <em>r</em>.</p>
<p>Para ejecutar la macro de teclado en el registro <em>r</em>, escriba <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">r</kbd><kbd class="kbd docutils literal notranslate">j</kbd><kbd class="kbd docutils literal notranslate">r</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">r</span> <span class="pre">j</span> <span class="pre">r</span></code>). (Es el mismo comando que se usa para saltar a una posición o restaurar un conjunto de marcos).</p>
</section>
<section id="marcadores">

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.51
Traducción Revisón: 1.56
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -201,7 +201,7 @@
<p>A veces, particularmente cuando mantenemos pulsadas teclas como <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-v</span></code>) y <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">v</kbd> (<code class="docutils literal notranslate"><span class="pre">M-v</span></code>), activando la auto-repetición de teclado, Emacs no consigue mantener el ritmo rápido de desplazamiento solicitado; la pantalla no se actualiza y el Editor puede dejar de responder a las entradas durante bastante tiempo. Podemos contrarrestar esta lentitud estableciendo la variable <code class="docutils literal notranslate"><span class="pre">fast-but-imprecise-scrolling</span></code> a un valor no nulo. Esto indica a los comandos de desplazamiento que no tipifiquen (ver <a class="reference internal" href="#id11"><span class="std std-ref">15.13 Modo de Bloqueo de Fuente</span></a>) cualquier texto no tipificado sobre el que se desplacen, asumiendo en su lugar que tiene la fuente por defecto. Esto puede hacer que Emacs se desplace a posiciones de búfer algo erróneas cuando las caras en uso no son todas del mismo tamaño, incluso con operaciones de desplazamiento simples (es decir, sin repetición automática).</p>
<p>Como alternativa a configurar el desplazamiento rápido-pero-impreciso (<code class="docutils literal notranslate"><span class="pre">fast-but-imprecise-scrolling</span></code>), puede que prefiera activar la fontificación diferida de <code class="docutils literal notranslate"><span class="pre">jit-lock</span></code> (vea <a class="reference internal" href="#id11"><span class="std std-ref">15.13 Modo de Bloqueo de Fuente</span></a>). Para ello, personalice <code class="docutils literal notranslate"><span class="pre">jit-lock-defer-time</span></code> a un pequeño número positivo como 0.25, o incluso 0.1 si escribe rápido. De este modo, el desplazamiento será menos brusco cuando mantenga pulsada la tecla <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-v</span></code>), pero el contenido de la ventana después de cualquier acción que se desplace a una nueva porción del búfer estará momentáneamente sin fuente.</p>
<p>Por último, una tercera alternativa a estas variables es <code class="docutils literal notranslate"><span class="pre">redisplay-skip-fontification-on-input</span></code>. Si esta variable no es nula, salta algunas fontificaciones si hay entrada pendiente. Esto normalmente no afecta a la visualización porque la redisplay se salta completamente de todos modos si había entrada pendiente, pero puede hacer que el desplazamiento sea más suave al evitar la fontificación innecesaria.</p>
<p>Los comandos <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <code class="docutils literal notranslate"><span class="pre">scroll-up</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">scroll-up</span></code>) y <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <code class="docutils literal notranslate"><span class="pre">scroll-down</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">scroll-down</span></code>) se comportan de forma similar a <code class="docutils literal notranslate"><span class="pre">scroll-up-command</span></code> y <code class="docutils literal notranslate"><span class="pre">scroll-down-command</span></code>, excepto que no obedecen a <code class="docutils literal notranslate"><span class="pre">scroll-error-top-bottom</span></code>. Antes de Emacs 24, estos eran los comandos por defecto para desplazarse arriba y abajo. Los comandos <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <code class="docutils literal notranslate"><span class="pre">scroll-up-line</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">scroll-up-line</span></code>) y <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <code class="docutils literal notranslate"><span class="pre">scroll-down-line</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">scroll-down-line</span></code>) desplazan la ventana actual una línea cada vez. Si tiene intención de usar cualquiera de estos comandos, puede que quiera asignarles teclas (vea <a class="reference internal" href="50_Personlzc.html#id17"><span class="std std-ref">50.3.6. Reasignación de Teclas en el Archivo de Inicio</span></a>).</p>
<p>Los comandos <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <code class="docutils literal notranslate"><span class="pre">scroll-up</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">scroll-up</span></code>) y <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <code class="docutils literal notranslate"><span class="pre">scroll-down</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">scroll-down</span></code>) se comportan de forma similar a <code class="docutils literal notranslate"><span class="pre">scroll-up-command</span></code> y <code class="docutils literal notranslate"><span class="pre">scroll-down-command</span></code>, excepto que no obedecen a <code class="docutils literal notranslate"><span class="pre">scroll-error-top-bottom</span></code>. Antes de Emacs 24, estos eran los comandos por defecto para desplazarse arriba y abajo. Los comandos <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <code class="docutils literal notranslate"><span class="pre">scroll-up-line</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">scroll-up-line</span></code>) y <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <code class="docutils literal notranslate"><span class="pre">scroll-down-line</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">scroll-down-line</span></code>) desplazan la ventana actual una línea cada vez. Si tiene intención de usar cualquiera de estos comandos, puede que quiera asignarles teclas (vea <a class="reference internal" href="50_Personlzc.html#id18"><span class="std std-ref">50.3.6. Reasignación de Teclas en el Archivo de Inicio</span></a>).</p>
</section>
<section id="recentrado">
<h2>15.2 Recentrado<a class="headerlink" href="#recentrado" title="Link to this heading"></a></h2>
@ -284,7 +284,7 @@ línea superior, la inferior y así sucesivamente en orden cíclico. Es posible
<p>Como alternativa, use <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">n</span> <span class="pre">p</span></code> (<code class="docutils literal notranslate"><span class="pre">narrow-to-page</span></code>, reducir la página) para reducir a la página actual. Véase <a class="reference internal" href="26_ComandsLengsHuma.html#id5"><span class="std std-ref">26.4 Páginas</span></a>, para la definición de una página. <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">n</span> <span class="pre">d</span></code> (<code class="docutils literal notranslate"><span class="pre">narrow-to-defun</span></code>) se limita a la definición que contiene el punto (consulte <a class="reference internal" href="27_EdDePrograms.html#id2"><span class="std std-ref">27.2 Definiciones de Nivel Superior, o Defuns</span></a>).</p>
<p>La forma de cancelar el acotamiento (o estrechamiento) es ampliar con <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">n</span> <span class="pre">w</span></code> (<code class="docutils literal notranslate"><span class="pre">widen</span></code>). Esto hace que todo el texto del búfer sea accesible de nuevo.</p>
<p>Puede obtener información sobre a qué parte del buffer se ha estrechado usando el comando <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">=</span></code>. Véase <a class="reference internal" href="08_ComBasicEdic.html#id8"><span class="std std-ref">8.9 Información sobre la posición del cursor</span></a>.</p>
<p>Debido a que el estrechamiento puede confundir fácilmente a los Usuarios que no lo entienden, <code class="docutils literal notranslate"><span class="pre">narrow-to-region</span></code> es normalmente un comando desactivado. Al intentar usar este comando se pide confirmación y se da la opción de habilitarlo; si habilita el comando, ya no se pedirá confirmación para él. Consulte <a class="reference internal" href="50_Personlzc.html#id20"><span class="std std-ref">50.3.11 Deshabilitar Comandos</span></a>.</p>
<p>Debido a que el estrechamiento puede confundir fácilmente a los Usuarios que no lo entienden, <code class="docutils literal notranslate"><span class="pre">narrow-to-region</span></code> es normalmente un comando desactivado. Al intentar usar este comando se pide confirmación y se da la opción de habilitarlo; si habilita el comando, ya no se pedirá confirmación para él. Consulte <a class="reference internal" href="50_Personlzc.html#id21"><span class="std std-ref">50.3.11 Deshabilitar Comandos</span></a>.</p>
</section>
<section id="modo-vista">
<span id="id6"></span><h2>15.6 Modo Vista<a class="headerlink" href="#modo-vista" title="Link to this heading"></a></h2>
@ -390,7 +390,7 @@ líneas de modo de todas las ventanas.</p>
<dt><code class="docutils literal notranslate"><span class="pre">mode-line-inactive</span></code></dt><dd><p>Como <code class="docutils literal notranslate"><span class="pre">mode-line</span></code>, pero se utiliza para las líneas de modo de las ventanas distintas de la seleccionada (si <code class="docutils literal notranslate"><span class="pre">mode-line-in-non-selected-windows</span></code> es distinto de <code class="docutils literal notranslate"><span class="pre">nil</span></code>). Esta cara
hereda de <code class="docutils literal notranslate"><span class="pre">mode-line</span></code>, por lo que los cambios en esa cara afectan a las líneas de modo de todas las ventanas.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">mode-line-highlight</span></code></dt><dd><p>Como <code class="docutils literal notranslate"><span class="pre">highlight</span></code>, pero se usa para porciones de texto sensibles al ratón en líneas de modo. Estas porciones de texto suelen mostrar información sobre herramientas (véase <a class="reference internal" href="22_MarcosPantallasGraf.html#id16"><span class="std std-ref">22.19 Sugerencias sobre Herramientas (Tooltips)</span></a>) cuando el puntero del ratón pasa por encima de ellas.</p>
<dt><code class="docutils literal notranslate"><span class="pre">mode-line-highlight</span></code></dt><dd><p>Como <code class="docutils literal notranslate"><span class="pre">highlight</span></code>, pero se usa para porciones de texto sensibles al ratón en líneas de modo. Estas porciones de texto suelen mostrar información sobre herramientas (véase <a class="reference internal" href="22_MarcosPantallasGraf.html#id18"><span class="std std-ref">22.19 Sugerencias sobre Herramientas (Tooltips)</span></a>) cuando el puntero del ratón pasa por encima de ellas.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">mode-line-buffer-id</span></code></dt><dd><p>Esta cara se usa para las partes de identificación del búfer en la línea de modo.</p>
</dd>
@ -410,7 +410,7 @@ una cara independiente porque la cara de la línea de encabezado puede personali
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">cursor</span></code></dt><dd><p>El atributo <code class="docutils literal notranslate"><span class="pre">background</span></code> de esta cara especifica el color del cursor de texto. Véase <a class="reference internal" href="#id18"><span class="std std-ref">15.21 Visualización del Cursor</span></a>.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">tooltip</span></code></dt><dd><p>Esta cara se usa para el texto de la información sobre herramientas. Por defecto, si Emacs está construido con soporte GTK+, los tooltips se dibujan vía GTK+ y esta cara no tiene efecto. Ver <a class="reference internal" href="22_MarcosPantallasGraf.html#id16"><span class="std std-ref">22.19 Sugerencias sobre Herramientas (Tooltips)</span></a>.</p>
<dt><code class="docutils literal notranslate"><span class="pre">tooltip</span></code></dt><dd><p>Esta cara se usa para el texto de la información sobre herramientas. Por defecto, si Emacs está construido con soporte GTK+, los tooltips se dibujan vía GTK+ y esta cara no tiene efecto. Ver <a class="reference internal" href="22_MarcosPantallasGraf.html#id18"><span class="std std-ref">22.19 Sugerencias sobre Herramientas (Tooltips)</span></a>.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">mouse</span></code></dt><dd><p>Esta cara determina el color del puntero del ratón.</p>
</dd>
@ -419,11 +419,11 @@ una cara independiente porque la cara de la línea de encabezado puede personali
<dl class="simple">
<dt><code class="docutils literal notranslate"><span class="pre">scroll-bar</span></code></dt><dd><p>Esta cara determina el aspecto visual de la barra de desplazamiento. Véase <a class="reference internal" href="22_MarcosPantallasGraf.html#id12"><span class="std std-ref">22.12. Barras de Desplazamiento</span></a>.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">tool-bar</span></code></dt><dd><p>Esta cara determina el color de los iconos de la barra de herramientas. Véase <a class="reference internal" href="22_MarcosPantallasGraf.html#id14"><span class="std std-ref">22.16. Barras de Herramientas</span></a>.</p>
<dt><code class="docutils literal notranslate"><span class="pre">tool-bar</span></code></dt><dd><p>Esta cara determina el color de los iconos de la barra de herramientas. Véase <a class="reference internal" href="22_MarcosPantallasGraf.html#id15"><span class="std std-ref">22.16. Barras de Herramientas</span></a>.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">tab-bar</span></code></dt><dd><p>Esta cara determina el color de los iconos de la barra de pestañas. Véase <a class="reference internal" href="22_MarcosPantallasGraf.html#id15"><span class="std std-ref">22.17 Barras de Pestañas</span></a>.</p>
<dt><code class="docutils literal notranslate"><span class="pre">tab-bar</span></code></dt><dd><p>Esta cara determina el color de los iconos de la barra de pestañas. Véase <a class="reference internal" href="22_MarcosPantallasGraf.html#id16"><span class="std std-ref">22.17 Barras de Pestañas</span></a>.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">menu</span></code></dt><dd><p>Esta cara determina los colores y la fuente de los menús de Emacs. Ver <a class="reference internal" href="22_MarcosPantallasGraf.html#id13"><span class="std std-ref">22.15 Barras de Menús</span></a>.</p>
<dt><code class="docutils literal notranslate"><span class="pre">menu</span></code></dt><dd><p>Esta cara determina los colores y la fuente de los menús de Emacs. Ver <a class="reference internal" href="22_MarcosPantallasGraf.html#id14"><span class="std std-ref">22.15 Barras de Menús</span></a>.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">tty-menu-enable-face</span></code></dt><dd><p>Esta cara se usa para mostrar los elementos de menú activados en terminales de modo texto.</p>
</dd>
@ -604,11 +604,11 @@ directamente, independientemente del valor de esta variable.</p>
<section id="bordes-de-ventana">
<span id="id13"></span><h2>15.15 Bordes de ventana<a class="headerlink" href="#bordes-de-ventana" title="Link to this heading"></a></h2>
<p>En las pantallas gráficas, cada ventana de Emacs tiene normalmente <em>franjas</em> estrechas en los bordes izquierdo y derecho. Las franjas se usan para mostrar símbolos que proporcionan información sobre el texto de la ventana. Puede escribir <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">fringe-mode</span></code> para alternar la visualización de dichas franjas o para modificar su anchura. Este comando afecta a las franjas de todos los cuadros; para modificar las franjas sólo en el cuadro seleccionado, utilice <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">set-fringe-style</span></code>. Puede hacer que sus cambios en las franjas sean permanentes personalizando la variable <code class="docutils literal notranslate"><span class="pre">fringe-mode</span></code>.</p>
<p>El uso más común de las franjas es indicar una línea de continuación (véase <a class="reference internal" href="08_ComBasicEdic.html#id7"><span class="std std-ref">8.8 Líneas de Continuación</span></a>). Cuando una línea de texto se divide en varias líneas de pantalla, la franja izquierda muestra una flecha curva para cada línea de pantalla excepto la primera, lo que indica que no es el comienzo real. La franja derecha muestra una flecha curva para cada línea de pantalla excepto la última, indicando que no es el final real. Si la dirección de la línea es de derecha a izquierda (véase <a class="reference internal" href="23_SoporteJuegoCaracIntern.html#id21"><span class="std std-ref">23.20 Edición Bidireccional</span></a>), los significados de las flechas curvas en las franjas se intercambian.</p>
<p>El uso más común de las franjas es indicar una línea de continuación (véase <a class="reference internal" href="08_ComBasicEdic.html#id7"><span class="std std-ref">8.8 Líneas de Continuación</span></a>). Cuando una línea de texto se divide en varias líneas de pantalla, la franja izquierda muestra una flecha curva para cada línea de pantalla excepto la primera, lo que indica que no es el comienzo real. La franja derecha muestra una flecha curva para cada línea de pantalla excepto la última, indicando que no es el final real. Si la dirección de la línea es de derecha a izquierda (véase <a class="reference internal" href="23_SoporteJuegoCaracIntern.html#id22"><span class="std std-ref">23.20 Edición Bidireccional</span></a>), los significados de las flechas curvas en las franjas se intercambian.</p>
<p>Las franjas indican cuando hay truncamiento de línea (ver <a class="reference internal" href="#id19"><span class="std std-ref">15.22 Truncado de Línea</span></a>) con flechas horizontales cortas que significan que hay más texto en esta línea que se desplaza horizontalmente fuera de la vista. Al hacer clic con el ratón en una de las flechas, la pantalla se desplaza horizontalmente en la dirección de la flecha.</p>
<p>Las franjas también pueden indicar otras cosas, como los límites del búfer (ver Visualizar <a class="reference internal" href="#id14"><span class="std std-ref">15.16 Mostrar Límites</span></a>), líneas no usadas cerca del final de la ventana (ver 4º párrafo de <a class="reference internal" href="#id15"><span class="std std-ref">15.17 Espacios en Blanco Innecesarios</span></a>), y dónde se está ejecutando un programa que estás depurando (ver <a class="reference internal" href="28_CompProbProg.html#id6"><span class="std std-ref">28.6. Ejecutar Depuradores en Emacs</span></a>).</p>
<p>La franja también se usa para dibujar el cursor, si la línea actual es exactamente tan ancha como la ventana y el punto está al final de la línea. Para desactivar esto, cambie la variable <code class="docutils literal notranslate"><span class="pre">overflow-newline-into-fringe</span></code> a <code class="docutils literal notranslate"><span class="pre">nil</span></code>; esto hace que Emacs continúe o trunque las líneas que son exactamente tan anchas como la ventana.</p>
<p>Si personaliza el modo franja (fringe-mode) para eliminar las franjas en uno o ambos lados de la ventana de visualización, las características que se muestran en la franja no están disponibles. Los indicadores de continuación y truncamiento de línea son una excepción: cuando las franjas no están disponibles, Emacs usa las celdas de caracteres más a la izquierda y más a la derecha para indicar la continuación y el truncamiento con caracteres ASCII especiales, véase <a class="reference internal" href="08_ComBasicEdic.html#id7"><span class="std std-ref">8.8 Líneas de Continuación</span></a> y <a class="reference internal" href="#id19"><span class="std std-ref">15.22 Truncado de Línea</span></a>. Esto reduce el ancho disponible para mostrar texto en cada línea, porque las celdas de caracteres usadas para los indicadores de truncamiento y continuación están reservadas para ese propósito. Dado que el texto del búfer puede incluir texto bidireccional y, por tanto, párrafos tanto de izquierda a derecha como de derecha a izquierda (véase <a class="reference internal" href="23_SoporteJuegoCaracIntern.html#id21"><span class="std std-ref">23.20 Edición Bidireccional</span></a>), al eliminar sólo una de las franjas se siguen reservando dos celdas de caracteres, una a cada lado de la ventana, para los indicadores de truncamiento y continuación, ya que estos indicadores se muestran en lados opuestos de la ventana en los párrafos de derecha a izquierda.</p>
<p>Si personaliza el modo franja (fringe-mode) para eliminar las franjas en uno o ambos lados de la ventana de visualización, las características que se muestran en la franja no están disponibles. Los indicadores de continuación y truncamiento de línea son una excepción: cuando las franjas no están disponibles, Emacs usa las celdas de caracteres más a la izquierda y más a la derecha para indicar la continuación y el truncamiento con caracteres ASCII especiales, véase <a class="reference internal" href="08_ComBasicEdic.html#id7"><span class="std std-ref">8.8 Líneas de Continuación</span></a> y <a class="reference internal" href="#id19"><span class="std std-ref">15.22 Truncado de Línea</span></a>. Esto reduce el ancho disponible para mostrar texto en cada línea, porque las celdas de caracteres usadas para los indicadores de truncamiento y continuación están reservadas para ese propósito. Dado que el texto del búfer puede incluir texto bidireccional y, por tanto, párrafos tanto de izquierda a derecha como de derecha a izquierda (véase <a class="reference internal" href="23_SoporteJuegoCaracIntern.html#id22"><span class="std std-ref">23.20 Edición Bidireccional</span></a>), al eliminar sólo una de las franjas se siguen reservando dos celdas de caracteres, una a cada lado de la ventana, para los indicadores de truncamiento y continuación, ya que estos indicadores se muestran en lados opuestos de la ventana en los párrafos de derecha a izquierda.</p>
</section>
<section id="mostrar-limites">
<span id="id14"></span><h2>15.16 Mostrar Límites<a class="headerlink" href="#mostrar-limites" title="Link to this heading"></a></h2>
@ -714,7 +714,7 @@ cambiar esto, personalice la expresión regular <code class="docutils literal no
<p>Los bytes en bruto con los códigos U+0080 (octal 200) a U+009F (octal 237) se muestran como <em>secuencias de escape octales</em>, con la cara <code class="docutils literal notranslate"><span class="pre">escape-glyph</span></code>. Por ejemplo, el código de carácter U+0098 (octal 230) se muestra como <code class="docutils literal notranslate"><span class="pre">\230</span></code>. Si cambia la variable local del búfer <code class="docutils literal notranslate"><span class="pre">ctl-arrow</span></code> a <code class="docutils literal notranslate"><span class="pre">nil</span></code>, los caracteres de control ASCII también se muestran como secuencias de escape octales en lugar de secuencias de escape caret. (También puede solicitar que los bytes sin procesar se muestren en hexadecimal, consulte <a class="reference internal" href="#id21"><span class="std std-ref">15.24 Personalización de la Pantalla</span></a>).</p>
<p>Algunos caracteres no ASCII tienen la misma apariencia que un espacio ASCII o un guión (menos). Tales caracteres pueden causar problemas si se introducen en un búfer sin que se dé cuenta, por ejemplo, tirando; por ejemplo, los compiladores de código fuente normalmente no tratan los espacios no ASCII como caracteres de espacio en blanco. Para solucionar este problema, Emacs muestra estos caracteres de forma especial: muestra U+00A0 NO-BREAK SPACE y otros caracteres de la clase de espacio horizontal Unicode con la cara <code class="docutils literal notranslate"><span class="pre">nobreak-space</span></code>, y muestra U+00AD SOFT HYPHEN, U+2010 HYPHEN, y U+2011 NON-BREAKING HYPHEN con la cara <code class="docutils literal notranslate"><span class="pre">nobreak-hyphen</span></code>. Para desactivarlo, cambie la variable <code class="docutils literal notranslate"><span class="pre">nobreak-char-display</span></code> a <code class="docutils literal notranslate"><span class="pre">nil</span></code>. Si le da a esta variable un valor que no sea <code class="docutils literal notranslate"><span class="pre">nil</span></code> ni <code class="docutils literal notranslate"><span class="pre">t</span></code>, Emacs mostrará dichos caracteres como una barra invertida resaltada seguida de un espacio o guión.</p>
<p>Puede personalizar la forma en que se muestra cualquier código de carácter concreto mediante una tabla de visualización. Ver <strong>Tablas de Visualización</strong> en el Manual de Referencia de Emacs Lisp.</p>
<p>En pantallas gráficas, algunos caracteres pueden no tener glifos en ninguna de las fuentes disponibles para Emacs. Estos <em>caracteres sin glifos</em> se muestran normalmente como cuadros que contienen el código hexadecimal del carácter. De forma similar, en los terminales de texto, los caracteres que no pueden mostrarse usando la codificación del terminal (ver <a class="reference internal" href="23_SoporteJuegoCaracIntern.html#id12"><span class="std std-ref">23.13 Sistemas de Codificación para E/S de Terminal</span></a>) se muestran normalmente como signos de interrogación. Puede controlar el método de visualización personalizando la variable <code class="docutils literal notranslate"><span class="pre">glyphless-char-display-control</span></code>. También puede personalizar la variable de cara <code class="docutils literal notranslate"><span class="pre">glyphless-char</span></code> para hacer que estos caracteres destaquen más en pantalla. Vea <strong>Visualización de Caracteres sin Glifos</strong> en el Manual de Referencia de Emacs Lisp, para más detalles.</p>
<p>En pantallas gráficas, algunos caracteres pueden no tener glifos en ninguna de las fuentes disponibles para Emacs. Estos <em>caracteres sin glifos</em> se muestran normalmente como cuadros que contienen el código hexadecimal del carácter. De forma similar, en los terminales de texto, los caracteres que no pueden mostrarse usando la codificación del terminal (ver <a class="reference internal" href="23_SoporteJuegoCaracIntern.html#id13"><span class="std std-ref">23.13 Sistemas de Codificación para E/S de Terminal</span></a>) se muestran normalmente como signos de interrogación. Puede controlar el método de visualización personalizando la variable <code class="docutils literal notranslate"><span class="pre">glyphless-char-display-control</span></code>. También puede personalizar la variable de cara <code class="docutils literal notranslate"><span class="pre">glyphless-char</span></code> para hacer que estos caracteres destaquen más en pantalla. Vea <strong>Visualización de Caracteres sin Glifos</strong> en el Manual de Referencia de Emacs Lisp, para más detalles.</p>
<p>El modo menor <code class="docutils literal notranslate"><span class="pre">glyphless-display-mode</span></code> puede usarse para alternar la visualización de caracteres sin glifos en el búfer actual. Los caracteres sin glifo se mostrarán como cajas con acrónimos de sus nombres dentro.</p>
<p>Emacs intenta determinar si las comillas curvas <code class="docutils literal notranslate"><span class="pre"></span></code> y <code class="docutils literal notranslate"><span class="pre"></span></code> pueden mostrarse en la pantalla actual. Por defecto, si esto parece ser así, entonces Emacs traducirá las comillas ASCII (<code class="docutils literal notranslate"><span class="pre">`</span></code> y <code class="docutils literal notranslate"><span class="pre">'</span></code>), cuando aparezcan en mensajes y textos de ayuda, a estas comillas curvas. Puede influir o inhibir esta traducción personalizando la opción de Usuario <code class="docutils literal notranslate"><span class="pre">text-quoting-style</span></code> (ver <strong>Teclas en Documentación</strong> en El Manual de Referencia de Emacs Lisp).</p>
<p>Si se sabe que las comillas curvas <code class="docutils literal notranslate"><span class="pre"></span></code>, <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> se parecen a los caracteres ASCII, se muestran con la cara del homoglifo. Las comillas curvas que se sabe que no son visualizables se muestran como sus aproximaciones ASCII <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">&quot;</span></code> la cara del homoglifo.</p>
@ -745,7 +745,7 @@ cambiar esto, personalice la expresión regular <code class="docutils literal no
<p>El ajuste de palabras se activa mediante el modo Línea Visual (Visual Line), un modo secundario opcional. Para activar este modo en el búfer actual, escriba <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">visual-line-mode</span></code>; repitiendo este comando se desactiva. También puede activar el modo Visual Line mediante la barra de menús: en el menú <code class="docutils literal notranslate"><span class="pre">Options</span></code> (Opciones), seleccione el submenú <code class="docutils literal notranslate"><span class="pre">Line</span> <span class="pre">Wrapping</span> <span class="pre">in</span> <span class="pre">this</span> <span class="pre">Buffer</span></code> (Ajuste de línea en este búfer), seguido del elemento de menú <code class="docutils literal notranslate"><span class="pre">modo</span> <span class="pre">Visual</span> <span class="pre">Line</span></code> (Ajuste de línea). Mientras el modo Visual Line está activado, la línea de modo muestra la cadena <code class="docutils literal notranslate"><span class="pre">wrap</span></code> en la pantalla de modo. El comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">global-visual-line-mode</span></code> activa el modo Visual Line en todos búferes.</p>
<p>Dado que el ajuste de línea y el truncamiento de línea (descritos en la sección anterior) son contradictorios, al activar el modo de línea visual (<code class="docutils literal notranslate"><span class="pre">visual-line-mode</span></code>) se desactiva el truncamiento de línea.</p>
<p>En el modo de línea visual, algunos comandos de edición funcionan en líneas de pantalla en lugar de líneas lógicas: <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">a</kbd> (<code class="docutils literal notranslate"><span class="pre">C-a</span></code>, <code class="docutils literal notranslate"><span class="pre">beginning</span> <span class="pre">of</span> <span class="pre">visual-line</span></code>) se mueve al principio de la línea de la pantalla, <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-e</span></code>, <code class="docutils literal notranslate"><span class="pre">end-of-visual-line</span></code>) se mueve al final de la línea de la pantalla, y <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>, <code class="docutils literal notranslate"><span class="pre">kill-visual-line</span></code>) mata el texto al final de la línea de la pantalla.</p>
<p>Para desplazarse por líneas lógicas, utilice los comandos <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">next-logical-line</span></code> y <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">previous-logical-line</span></code>. Estos comandos mueven el punto a la siguiente línea lógica y a la línea lógica anterior, respectivamente, independientemente de si está activado el modo Visual Line. Si usa estos comandos con frecuencia, puede ser conveniente asignarles combinaciones de teclas. Consulte <a class="reference internal" href="50_Personlzc.html#id17"><span class="std std-ref">50.3.6. Reasignación de Teclas en el Archivo de Inicio</span></a>.</p>
<p>Para desplazarse por líneas lógicas, utilice los comandos <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">next-logical-line</span></code> y <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">previous-logical-line</span></code>. Estos comandos mueven el punto a la siguiente línea lógica y a la línea lógica anterior, respectivamente, independientemente de si está activado el modo Visual Line. Si usa estos comandos con frecuencia, puede ser conveniente asignarles combinaciones de teclas. Consulte <a class="reference internal" href="50_Personlzc.html#id18"><span class="std std-ref">50.3.6. Reasignación de Teclas en el Archivo de Inicio</span></a>.</p>
<p>De forma predeterminada, las líneas envueltas en palabras no muestran indicadores de franja. El modo Visual Line se usa a menudo para editar archivos que contienen muchas líneas lógicas largas, por lo que tener un indicador de franja (o margen) para cada línea ajustada sería una distracción visual. Puede cambiar esto personalizando la variable <code class="docutils literal notranslate"><span class="pre">visual-line-fringe-indicators</span></code>.</p>
<p>Por defecto, Emacs sólo interrumpe líneas después de caracteres de espacio en blanco como <code class="docutils literal notranslate"><span class="pre">SPC</span></code> y <code class="docutils literal notranslate"><span class="pre">TAB</span></code>, pero no interrumpe después de caracteres de espacio en blanco como <code class="docutils literal notranslate"><span class="pre">EN</span> <span class="pre">QUAD</span></code> (AL CUADRADO). Emacs proporciona un modo menor llamado <code class="docutils literal notranslate"><span class="pre">word-wrap-whitespace-mode</span></code> que activa el ajuste de palabras en el modo actual, y establece en qué caracteres ajustar las líneas basándose en la opción de usuario <code class="docutils literal notranslate"><span class="pre">word-wrap-whitespace-characters</span></code>. También hay una versión globalizada de ese modo llamada <code class="docutils literal notranslate"><span class="pre">global-word-wrap-whitespace-mode</span></code>.</p>
<p>Romper sólo después de un carácter de espacio en blanco produce resultados incorrectos cuando se mezclan texto CJK y latino (porque los caracteres CJK no usan espacios en blanco para separar palabras). Puede personalizar la opción <code class="docutils literal notranslate"><span class="pre">word-wrap-by-category</span></code> para permitir que Emacs rompa las líneas después de cualquier carácter con categoría <code class="docutils literal notranslate"><span class="pre">|</span></code> (vea <strong>Categorías</strong> en el Manual de Referencia de Emacs Lisp), lo que proporciona un mejor soporte para los caracteres CJK. Además, si esta variable se establece usando Personalizar (Customize), Emacs carga automáticamente <code class="docutils literal notranslate"><span class="pre">kinsoku.el</span></code>. Cuando se carga <code class="docutils literal notranslate"><span class="pre">kinsoku.el</span></code>, 30Emacs respeta las reglas kinsoku al romper líneas. Eso significa que los caracteres con la categoría <code class="docutils literal notranslate"><span class="pre">&gt;</span></code> no aparecen al principio de una línea (por ejemplo, U+FF0C FULLWIDTH COMMA), y los caracteres con la categoría <code class="docutils literal notranslate"><span class="pre">&lt;</span></code> no aparecen al final de una línea (por ejemplo, U+300A LEFT DOUBLE ANGLE BRACKET). Puede ver el conjunto de categorías de un carácter usando los comandos <code class="docutils literal notranslate"><span class="pre">char-category-set</span></code> y <code class="docutils literal notranslate"><span class="pre">category-set-mnemonics</span></code>, o tecleando <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">=</kbd> (<code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">C-x</span> <span class="pre">=</span></code>) con punto sobre el carácter y mirando la sección «categoría» en el informe. Puede añadir categorías a un carácter usando el comando <code class="docutils literal notranslate"><span class="pre">modify-category-entry</span></code>.</p>

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.51
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#id8"><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#id8"><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>
@ -266,9 +266,9 @@ carácter especificado a la cadena de búsqueda, de forma similar al comando hab
<p>También puede incluir secuencias Emoji en la cadena de búsqueda. Escriba <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">8</kbd><kbd class="kbd docutils literal notranslate">e</kbd><kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">8</span> <span class="pre">e</span> <span class="pre">RET</span></code>, <code class="docutils literal notranslate"><span class="pre">isearch-emoji-by-name</span></code>), seguido del nombre Unicode de un Emoji (por ejemplo, <code class="docutils literal notranslate"><span class="pre">smiling</span> <span class="pre">face</span></code> (cara sonriente) o <code class="docutils literal notranslate"><span class="pre">heart</span> <span class="pre">whith</span> <span class="pre">arrow</span></code> (corazón con flecha)). Esto añade el Emoji especificado a la cadena de búsqueda. Si no conoce el nombre del Emoji que desea buscar, puede usar <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd><kbd class="kbd docutils literal notranslate">8</kbd><kbd class="kbd docutils literal notranslate">e</kbd><kbd class="kbd docutils literal notranslate">l</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">8</span> <span class="pre">e</span> <span class="pre">l</span></code>, <code class="docutils literal notranslate"><span class="pre">emoji-list</span></code>) y <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">8</kbd><kbd class="kbd docutils literal notranslate">e</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">8</span> <span class="pre">e</span> <span class="pre">d</span></code>, <code class="docutils literal notranslate"><span class="pre">emoji-describe</span></code>) (consulte <a class="reference internal" href="23_SoporteJuegoCaracIntern.html#id6"><span class="std std-ref">23.3 Métodos de Entrada</span></a>).</p>
<p>Si se teclea <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">s</kbd> <kbd class="kbd docutils literal notranslate">o</kbd> (<code class="docutils literal notranslate"><span class="pre">M-s</span> <span class="pre">o</span></code>) en la búsqueda incremental, se invoca <code class="docutils literal notranslate"><span class="pre">isearch-occur</span></code>, que ejecuta occur con la cadena de búsqueda actual. Véase <a class="reference internal" href="#id19"><span class="std std-ref">16.11. Otros Comandos de Búsqueda y Bucle</span></a>.</p>
<p>Si se escribe <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">%</kbd> (<code class="docutils literal notranslate"><span class="pre">M-%</span></code>, <code class="docutils literal notranslate"><span class="pre">isearch-query-replace</span></code>) en la búsqueda incremental, se invoca <code class="docutils literal notranslate"><span class="pre">query-replace</span></code> o <code class="docutils literal notranslate"><span class="pre">query-replace-regexp</span></code> (dependiendo del modo de búsqueda) y se usa la cadena de búsqueda actual como cadena a reemplazar. Un argumento de prefijo negativo significa reemplazar hacia atrás. Véase <a class="reference internal" href="#id18"><span class="std std-ref">16.10.4 Sustitución de Consultas</span></a>. Si se escribe <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">%</kbd> (<code class="docutils literal notranslate"><span class="pre">C-M-%</span></code>, <code class="docutils literal notranslate"><span class="pre">isearch-query-replace-regexp</span></code>), se invoca <code class="docutils literal notranslate"><span class="pre">query-replace-regexp</span></code> con la cadena de búsqueda actual usada como expreg para reemplazar.</p>
<p>Al escribir <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">TAB</kbd> (<code class="docutils literal notranslate"><span class="pre">M-TAB</span></code>) en la búsqueda incremental se invoca <code class="docutils literal notranslate"><span class="pre">isearch-complete</span></code>, que intenta completar la cadena de búsqueda utilizando el anillo de búsqueda (las cadenas de búsqueda anteriores que utilizó) como una lista de alternativas de finalización. Véase <a class="reference internal" href="09_ElMinibufer.html#id4"><span class="std std-ref">9.4 Completado</span></a>. En muchos sistemas operativos, la secuencia de teclas <code class="docutils literal notranslate"><span class="pre">M-TAB</span></code> es capturada por el gestor de ventanas, por lo que deberá volver a enlazar <code class="docutils literal notranslate"><span class="pre">isearch-completar</span></code> a otra secuencia de teclas si desea utilizarla (consulte <a class="reference internal" href="50_Personlzc.html#id16"><span class="std std-ref">50.3.5. Cambiar las combinaciones de teclas interactivamente</span></a>).</p>
<p>Al escribir <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">TAB</kbd> (<code class="docutils literal notranslate"><span class="pre">M-TAB</span></code>) en la búsqueda incremental se invoca <code class="docutils literal notranslate"><span class="pre">isearch-complete</span></code>, que intenta completar la cadena de búsqueda utilizando el anillo de búsqueda (las cadenas de búsqueda anteriores que utilizó) como una lista de alternativas de finalización. Véase <a class="reference internal" href="09_ElMinibufer.html#id4"><span class="std std-ref">9.4 Completado</span></a>. En muchos sistemas operativos, la secuencia de teclas <code class="docutils literal notranslate"><span class="pre">M-TAB</span></code> es capturada por el gestor de ventanas, por lo que deberá volver a enlazar <code class="docutils literal notranslate"><span class="pre">isearch-completar</span></code> a otra secuencia de teclas si desea utilizarla (consulte <a class="reference internal" href="50_Personlzc.html#id17"><span class="std std-ref">50.3.5. Cambiar las combinaciones de teclas interactivamente</span></a>).</p>
<p>Puede salir de la búsqueda dejando las coincidencias resaltadas escribiendo <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">s</kbd> <kbd class="kbd docutils literal notranslate">h</kbd><kbd class="kbd docutils literal notranslate">r</kbd> (<code class="docutils literal notranslate"><span class="pre">M-s</span> <span class="pre">h</span> <span class="pre">r</span></code>, <code class="docutils literal notranslate"><span class="pre">isearch-highlight-regexp</span></code>). Esto ejecuta <code class="docutils literal notranslate"><span class="pre">highlight-regexp</span></code> (véase <a class="reference internal" href="15_ControlDisplay.html#id12"><span class="std std-ref">15.14 Resaltado Interactivo</span></a>), pasándole la regexp (expresión regular) derivada de la cadena de búsqueda y pidiéndole la cara a utilizar para resaltar. Para resaltar líneas enteras que contengan coincidencias (en lugar de sólo las coincidencias), escriba <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">s</kbd> <kbd class="kbd docutils literal notranslate">h</kbd><kbd class="kbd docutils literal notranslate">l</kbd> (<code class="docutils literal notranslate"><span class="pre">M-s</span> <span class="pre">h</span> <span class="pre">l</span></code>, <code class="docutils literal notranslate"><span class="pre">isearch-highlight-lines-matching-regexp</span></code>). En ambos casos, para eliminar el resaltado, escriba <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">s</kbd> <kbd class="kbd docutils literal notranslate">h</kbd><kbd class="kbd docutils literal notranslate">u</kbd> (<code class="docutils literal notranslate"><span class="pre">M-s</span> <span class="pre">h</span> <span class="pre">u</span></code>, <code class="docutils literal notranslate"><span class="pre">unhighlight-regexp</span></code>).</p>
<p>Cuando la búsqueda incremental está activa, puede escribir <kbd class="kbd docutils literal notranslate">Ctrl</kbd><kbd class="kbd docutils literal notranslate">h</kbd> <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> <span class="pre">C-h</span></code>, <code class="docutils literal notranslate"><span class="pre">isearch-help-map</span></code>) para acceder a las opciones de ayuda interactiva, incluida una lista de combinaciones de teclas especiales. Estas combinaciones de teclas forman parte del mapa de teclas <code class="docutils literal notranslate"><span class="pre">isearch-mode-map</span></code> (véase <a class="reference internal" href="50_Personlzc.html#id15"><span class="std std-ref">50.3.1 Mapas de teclas</span></a>).</p>
<p>Cuando la búsqueda incremental está activa, puede escribir <kbd class="kbd docutils literal notranslate">Ctrl</kbd><kbd class="kbd docutils literal notranslate">h</kbd> <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> <span class="pre">C-h</span></code>, <code class="docutils literal notranslate"><span class="pre">isearch-help-map</span></code>) para acceder a las opciones de ayuda interactiva, incluida una lista de combinaciones de teclas especiales. Estas combinaciones de teclas forman parte del mapa de teclas <code class="docutils literal notranslate"><span class="pre">isearch-mode-map</span></code> (véase <a class="reference internal" href="50_Personlzc.html#id16"><span class="std std-ref">50.3.1 Mapas de teclas</span></a>).</p>
<p>Cuando la búsqueda incremental está activada, al teclear <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">s</kbd> <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">&gt;</kbd> (<code class="docutils literal notranslate"><span class="pre">M-s</span> <span class="pre">M-&gt;</span></code>) se irá a la última aparición de la cadena de búsqueda, y <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">s</kbd> <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">&lt;</kbd> (<code class="docutils literal notranslate"><span class="pre">M-s</span> <span class="pre">M-&lt;</span></code>) se irá a la primera aparición. Con un argumento numérico de prefijo <em>n</em>, estos comandos irán a la enésima aparición de la cadena de búsqueda contando desde el principio o el final del búfer, respectivamente.</p>
</section>
<section id="no-salir-de-la-busqueda-incremental">
@ -313,7 +313,7 @@ aplica a determinados comandos de movimiento que tienen la propiedad <code class
<section id="buscar-en-el-minibuffer">
<span id="id9"></span><h3>16.1.7. Buscar en el Minibuffer<a class="headerlink" href="#buscar-en-el-minibuffer" title="Link to this heading"></a></h3>
<p>Si inicia una búsqueda incremental mientras el minibúfer está activo, Emacs busca en el contenido de este. A diferencia de la búsqueda en un búfer ordinario, la cadena de búsqueda no se muestra en el área de eco, porque ésta se usa para mostrar el minibúfer.</p>
<p>Si falla una búsqueda incremental en el minibúfer, intente buscar en el historial del propio minibúfer. Véase <a class="reference internal" href="09_ElMinibufer.html#id8"><span class="std std-ref">9.5 Historial del Minibúfer</span></a>. Puede visualizar el minibúfer y su historial como una serie de páginas, con el primer elemento del historial en la primera página y el contenido del minibúfer actual en la última. Una búsqueda hacia adelante, <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-s</span></code>), busca hacia páginas posteriores; una búsqueda hacia atrás, <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-r</span></code>), busca hacia páginas anteriores. Al igual que en la búsqueda normal en el búfer, una búsqueda fallida puede envolverse, yendo de la última página a la primera o viceversa.</p>
<p>Si falla una búsqueda incremental en el minibúfer, intente buscar en el historial del propio minibúfer. Véase <a class="reference internal" href="09_ElMinibufer.html#id9"><span class="std std-ref">9.5 Historial del Minibúfer</span></a>. Puede visualizar el minibúfer y su historial como una serie de páginas, con el primer elemento del historial en la primera página y el contenido del minibúfer actual en la última. Una búsqueda hacia adelante, <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-s</span></code>), busca hacia páginas posteriores; una búsqueda hacia atrás, <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-r</span></code>), busca hacia páginas anteriores. Al igual que en la búsqueda normal en el búfer, una búsqueda fallida puede envolverse, yendo de la última página a la primera o viceversa.</p>
<p>Cuando la coincidencia actual se encuentra en un elemento del historial, dicho elemento se introduce en el minibúfer. Si sale de la búsqueda incremental normalmente (por ejemplo, tecleando <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">RET</span></code>)), permanece en el minibúfer. Al cancelar la búsqueda, con <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>), se restaura el contenido del minibúfer cuando se inició la búsqueda.</p>
</section>
</section>
@ -582,7 +582,7 @@ de Usuario <code class="docutils literal notranslate"><span class="pre">search-w
<p>La separación de mayúsculas y minúsculas (<em>case folding</em>) es el proceso de hacer que dos textos que sólo difieren en mayúsculas y minúsculas sean idénticos a efectos de comparación, es decir, con el fin de hacer coincidir cadenas. Esto es distinto del mapeo de mayúsculas y minúsculas, que está pensado principalmente para fines de visualización.</p>
</div>
<p>Una letra mayúscula en cualquier lugar de la cadena de búsqueda hace que ésta distinga entre mayúsculas y minúsculas. Así, la búsqueda de <code class="docutils literal notranslate"><span class="pre">Foo</span></code> no encuentra <code class="docutils literal notranslate"><span class="pre">foo</span></code> ni <code class="docutils literal notranslate"><span class="pre">FOO</span></code>. Esto se aplica tanto a la búsqueda por expresión regular como a la búsqueda por cadena literal. El efecto cesa si se suprime la letra mayúscula de la cadena de búsqueda. La variable <code class="docutils literal notranslate"><span class="pre">search-upper-case</span></code> controla esto: si es distinta de <code class="docutils literal notranslate"><span class="pre">nil</span></code>, un carácter en mayúsculas en la cadena de búsqueda hace que la búsqueda distinga entre mayúsculas y minúsculas; si se establece en <code class="docutils literal notranslate"><span class="pre">nil</span></code>, se desactiva este efecto de los caracteres en mayúsculas. El valor por defecto de esta variable es <code class="docutils literal notranslate"><span class="pre">not-yanks</span></code>, que hace que la búsqueda distinga entre mayúsculas y minúsculas si hay letras mayúsculas en la cadena de búsqueda, y también hace que el texto traído desde el anillo de muertes en la cadena de búsqueda (véase <a class="reference internal" href="#id5"><span class="std std-ref">16.1.3 Búsqueda de Texto traído del Anillo de Muertes (Yanking)</span></a>) se escriba en minúsculas, de modo que tales búsquedas no distinguen entre mayúsculas y minúsculas por defecto.</p>
<p>Si establece la variable <code class="docutils literal notranslate"><span class="pre">case-fold-search</span></code> en <code class="docutils literal notranslate"><span class="pre">nil</span></code>, todas las letras deben coincidir exactamente, incluidas las mayúsculas y minúsculas. Esta es una variable por búfer; alterar la variable normalmente afecta sólo al búfer actual, a menos que cambie su valor por defecto. Véase <a class="reference internal" href="50_Personlzc.html#id7"><span class="std std-ref">50.2.3 Variables Locales</span></a>. Esta variable también se aplica a las búsquedas no incrementales, incluidas las realizadas por los comandos de reemplazo (consulte <a class="reference internal" href="#id15"><span class="std std-ref">16.10. Comandos de Reemplazo</span></a>) y los comandos de comparación del historial del minibúfer (consulte <a class="reference internal" href="09_ElMinibufer.html#id8"><span class="std std-ref">9.5 Historial del Minibúfer</span></a>).</p>
<p>Si establece la variable <code class="docutils literal notranslate"><span class="pre">case-fold-search</span></code> en <code class="docutils literal notranslate"><span class="pre">nil</span></code>, todas las letras deben coincidir exactamente, incluidas las mayúsculas y minúsculas. Esta es una variable por búfer; alterar la variable normalmente afecta sólo al búfer actual, a menos que cambie su valor por defecto. Véase <a class="reference internal" href="50_Personlzc.html#id7"><span class="std std-ref">50.2.3 Variables Locales</span></a>. Esta variable también se aplica a las búsquedas no incrementales, incluidas las realizadas por los comandos de reemplazo (consulte <a class="reference internal" href="#id15"><span class="std std-ref">16.10. Comandos de Reemplazo</span></a>) y los comandos de comparación del historial del minibúfer (consulte <a class="reference internal" href="09_ElMinibufer.html#id9"><span class="std std-ref">9.5 Historial del Minibúfer</span></a>).</p>
<p>Si se escribe o <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">c</kbd> 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-c</span></code> o <code class="docutils literal notranslate"><span class="pre">M-s</span> <span class="pre">c</span></code>, <code class="docutils literal notranslate"><span class="pre">isearch-toggle-case-fold</span></code>) dentro de una búsqueda incremental, se cambia la sensibilidad a mayúsculas/minúsculas de esa búsqueda. El efecto no se extiende más allá de la búsqueda incremental actual, pero anula el efecto de añadir o eliminar una letra mayúscula en la búsqueda actual.</p>
<p>Algunas variables relacionadas controlan la distinción entre mayúsculas y minúsculas en la búsqueda y la coincidencia de comandos o actividades específicos. Por ejemplo, <code class="docutils literal notranslate"><span class="pre">tags-case-fold-search</span></code> controla la sensibilidad a mayúsculas y minúsculas para <code class="docutils literal notranslate"><span class="pre">find-tag</span></code>. Para encontrar estas variables, 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">apropos-variable</span></code> <kbd class="kbd docutils literal notranslate">RETURN</kbd> <code class="docutils literal notranslate"><span class="pre">case-fold-search</span></code> <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">apropos-variable</span> <span class="pre">RET</span> <span class="pre">case-fold-search</span> <span class="pre">RET</span></code>).</p>
<p>La distinción entre mayúsculas y minúsculas no tiene en cuenta las diferencias entre caracteres, por lo que los caracteres en mayúsculas coinciden con las variantes en minúsculas y viceversa. Una generalización de la distinción entre mayúsculas y minúsculas es el <em>desdoblamiento de caracteres</em>, que no tiene en cuenta clases más amplias de distinciones entre caracteres similares. Por ejemplo, la letra <code class="docutils literal notranslate"><span class="pre">a</span></code> coincide con todos sus primos acentuados, como <code class="docutils literal notranslate"><span class="pre">ä</span></code> y <code class="docutils literal notranslate"><span class="pre">á</span></code>, sin tener en cuenta los signos diacríticos que distinguen estas variantes. Además, la <code class="docutils literal notranslate"><span class="pre">a</span></code> coincide con otros caracteres que se le parecen o que la tienen como parte de su representación gráfica, como U+00AA INDICADOR ORDINAL FEMENINO y U+24D0 LETRA BAJA LATÍN CIRCULADA A (que parece una <code class="docutils literal notranslate"><span class="pre">a</span></code> minúscula dentro de un círculo). Del mismo modo, el carácter ASCII de comillas dobles <code class="docutils literal notranslate"><span class="pre">&quot;</span></code> coincide con todas las demás variantes de comillas dobles definidas por el estándar Unicode. Por último, el plegado de caracteres puede hacer que una secuencia de uno o más caracteres coincida con otra secuencia de longitud diferente: por ejemplo, la secuencia de dos caracteres <code class="docutils literal notranslate"><span class="pre">ff</span></code> coincide con U+FB00 LIGATURA PEQUEÑA LATINA FF y la secuencia <code class="docutils literal notranslate"><span class="pre">(a)</span></code> coincide con U+249C LETRA PEQUEÑA LATINA A ENENTONADA. Las secuencias de caracteres que no son idénticas, pero coinciden en el plegado de caracteres, se conocen como <em>secuencias de caracteres equivalentes</em>.</p>
@ -700,7 +700,7 @@ de Usuario <code class="docutils literal notranslate"><span class="pre">search-w
<code class="docutils literal notranslate"><span class="pre">DEL</span></code> y <code class="docutils literal notranslate"><span class="pre">SPC</span></code> son equivalentes en esta situación; ambos se mueven a la siguiente ocurrencia.</p>
<p>Puede teclear <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-r</span></code>) en este punto (ver más abajo) para alterar el texto reemplazado. También puede deshacer el reemplazo con el comando deshacer (por ejemplo,
teclee <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">u</kbd> ((<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">u</span></code>); vea <a class="reference internal" href="17_CmdCorrecErrsTipogr.html#id2"><span class="std std-ref">17.1 Deshacer</span></a>); esto sale de la consulta-reemplazo (termina el comando <code class="docutils literal notranslate"><span class="pre">query-replace</span></code>), así que si quiere hacer más reemplazos
debe usar <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><kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">ESC</span> <span class="pre">ESC</span> <span class="pre">RET</span></code>) para reiniciar (vea <a class="reference internal" href="09_ElMinibufer.html#id9"><span class="std std-ref">9.6 Repetición de Comandos del Minibúfer</span></a>).</p>
debe usar <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><kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">ESC</span> <span class="pre">ESC</span> <span class="pre">RET</span></code>) para reiniciar (vea <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>
</div></blockquote>
<div class="line-block">
<div class="line"><kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">RET</span></code>)</div>
@ -772,9 +772,9 @@ y continúa con el siguiente búfer de la secuencia.</p>
<div><p>Muestra un mensaje que resume estas opciones. A continuación, debe escribir otro carácter para especificar qué hacer con esta ocurrencia.</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#id9"><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>Véase <a class="reference internal" href="31_DiredEditDirect.html#id8"><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#id9"><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>
<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#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>
<section id="otros-comandos-de-busqueda-y-bucle">

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.51
Traducción Revisón: 1.56
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -159,7 +159,7 @@
<p>Cualquier comando que no sea de deshacer rompe la secuencia de comandos de deshacer. A partir de ese momento, toda la secuencia de comandos de deshacer que acaba de realizar se colocan a su vez en el registro de deshacer. Por lo tanto, para volver a aplicar los cambios que ha deshecho, escriba <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>) o cualquier otro comando que rompa inofensivamente la secuencia de deshacer; a continuación, escriba <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>) una o más veces para deshacer algunos de los comandos de deshacer.</p>
<p>Alternativamente, si desea reanudar el deshacer, sin rehacer los comandos de deshacer anteriores, use <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">undo-only</span></code>. Esto es como deshacer, pero no rehará los cambios que acaba de deshacer. Para complementarlo, <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">undo-redo</span></code> deshará los comandos de deshacer anteriores (y no se registrará como un comando que se puede deshacer).</p>
<p>Si nota que un búfer ha sido modificado accidentalmente, la forma más fácil de recuperarlo es 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>) repetidamente hasta que las estrellas desaparezcan de la parte delantera de la línea de modo (véase <a class="reference internal" href="../01_OrgPant.html#id6"><span class="std std-ref">1.3 La línea de Modo</span></a>). Cuando un comando deshacer hace desaparecer las estrellas de la línea de modo, significa que el contenido del búfer es el mismo que la última vez que se leyó o guardó el archivo. Si no recuerda si cambió el buffer deliberadamente, teclee <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>) una vez. Cuando vea deshecho el último cambio que hizo, verá si fue un cambio intencionado. Si fue un accidente, déjalo sin hacer. Si fue deliberado, rehaga el cambio como se ha descrito anteriormente.</p>
<p>Alternativamente, puede descartar todos los cambios desde que el buffer fue visitado o guardado por última vez con <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">revert-buffer</span></code> (ver <a class="reference internal" href="19_ManejoArchivos.html#id6"><span class="std std-ref">19.4 Revertir un Búfer</span></a>).</p>
<p>Alternativamente, puede descartar todos los cambios desde que el buffer fue visitado o guardado por última vez con <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">revert-buffer</span></code> (ver <a class="reference internal" href="19_ManejoArchivos.html#id11"><span class="std std-ref">19.4 Revertir un Búfer</span></a>).</p>
<p>Cuando hay una región activa, cualquier uso de deshacer realiza un <em>deshacer selectivo</em>: deshace el cambio más reciente dentro de la región, en lugar de todo el búfer. Sin embargo, cuando el modo de marcas transitorias está desactivado (véase <a class="reference internal" href="12_LaMarca-y-LaRegion.html#id9"><span class="std std-ref">12.7 Desactivar el Modo de Marca Transitoria</span></a> ), <code class="docutils literal notranslate"><span class="pre">C-/</span></code> siempre actúa sobre todo el búfer, ignorando la región. En este caso, puede realizar un deshacer selectivo proporcionando un argumento de prefijo al comando deshacer: <code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">C-/</span></code>. Para deshacer más cambios en la misma región, repita el comando deshacer (no es necesario el argumento prefijo).</p>
<p>Algunos búferes especializados no hacen registros de deshacer. Los búferes cuyos nombres comienzan con espacios nunca lo hacen; estos, son usados internamente por Emacs para contener texto que los usuarios normalmente no miran o editan.</p>
<p>Cuando la información de deshacer de un búfer se hace demasiado grande, Emacs descarta los registros más antiguos de vez en cuando (durante la <em>recolección de basura</em>). Puede especificar cuánta información de deshacer guardar configurando las variables <code class="docutils literal notranslate"><span class="pre">undo-limit</span></code>, <code class="docutils literal notranslate"><span class="pre">undo-strong-limit</span></code>, y <code class="docutils literal notranslate"><span class="pre">undo-outer-limit</span></code>. Sus valores se expresan en bytes.</p>
@ -204,7 +204,7 @@
</div></blockquote>
<p>El error común de transponer dos caracteres puede solucionarse, cuando son adyacentes, con el comando <code class="docutils literal notranslate"><span class="pre">C-t</span></code> (<code class="docutils literal notranslate"><span class="pre">transpose-chars</span></code>). Normalmente, <code class="docutils literal notranslate"><span class="pre">C-t</span></code> transpone los dos caracteres a ambos lados del punto. Cuando se da al final de una línea, en lugar de transponer el último carácter de la línea con la nueva línea, lo que sería inútil, <code class="docutils literal notranslate"><span class="pre">C-t</span></code> transpone los dos últimos caracteres de la línea. Por lo tanto, si detecta el error de transposición enseguida, puede solucionarlo con <code class="docutils literal notranslate"><span class="pre">C-t</span></code>. Si no lo detecta tan rápido, debe volver a colocar el cursor entre los dos caracteres transpuestos antes de teclear <code class="docutils literal notranslate"><span class="pre">C-t</span></code>. Si ha transpuesto un espacio con el último carácter de la palabra delante, los comandos de movimiento de palabra (<code class="docutils literal notranslate"><span class="pre">M-f</span></code>, <code class="docutils literal notranslate"><span class="pre">M-b</span></code>, etc.) son una buena forma de llegar hasta allí. De lo contrario, una búsqueda inversa (<code class="docutils literal notranslate"><span class="pre">C-r</span></code>) suele ser la mejor manera. Véase <a class="reference internal" href="16_BusqReemp.html#id1"><span class="std std-ref">16 Búsqueda y Reemplazo</span></a>.</p>
<p><code class="docutils literal notranslate"><span class="pre">M-t</span></code> transpone la palabra antes del punto con la palabra después del punto (<code class="docutils literal notranslate"><span class="pre">transpose-words</span></code>). Desplaza el punto hacia delante sobre una palabra, arrastrando también hacia delante la palabra que precede o contiene al punto. Los caracteres de puntuación entre las palabras no se mueven. Por ejemplo, <code class="docutils literal notranslate"><span class="pre">FOO,</span> <span class="pre">BAR</span></code> se transpone a <code class="docutils literal notranslate"><span class="pre">BAR,</span> <span class="pre">FOO</span></code> en lugar de <code class="docutils literal notranslate"><span class="pre">BAR</span> <span class="pre">FOO,</span></code>. Si el punto se encuentra al final de la línea, la palabra anterior al punto se transpondrá con la primera palabra de la línea siguiente.</p>
<p><code class="docutils literal notranslate"><span class="pre">C-M-t</span></code> (<code class="docutils literal notranslate"><span class="pre">transpose-sexps</span></code>) es un comando similar para transponer dos expresiones (véase <a class="reference internal" href="27_EdDePrograms.html#id5"><span class="std std-ref">27.4.1 Expresiones con Paréntesis Equilibrados</span></a>), y <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-t</span></code> (<code class="docutils literal notranslate"><span class="pre">transpose-lines</span></code>) intercambia líneas. <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">transpose-sentences</span></code> y <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">transpose-paragraphs</span></code> transponen frases y párrafos, respectivamente. Estos comandos funcionan como <code class="docutils literal notranslate"><span class="pre">M-t</span></code> excepto en lo que respecta a las unidades de texto que transponen.</p>
<p><code class="docutils literal notranslate"><span class="pre">C-M-t</span></code> (<code class="docutils literal notranslate"><span class="pre">transpose-sexps</span></code>) es un comando similar para transponer dos expresiones (véase <a class="reference internal" href="27_EdDePrograms.html#id6"><span class="std std-ref">27.4.1 Expresiones con Paréntesis Equilibrados</span></a>), y <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-t</span></code> (<code class="docutils literal notranslate"><span class="pre">transpose-lines</span></code>) intercambia líneas. <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">transpose-sentences</span></code> y <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">transpose-paragraphs</span></code> transponen frases y párrafos, respectivamente. Estos comandos funcionan como <code class="docutils literal notranslate"><span class="pre">M-t</span></code> excepto en lo que respecta a las unidades de texto que transponen.</p>
<p>Un argumento numérico para un comando de transposición sirve como recuento de repeticiones: indica al comando de transposición que mueva el carácter (o palabra o expresión o línea) anterior o que contenga el punto a través de varios otros caracteres (o palabras o expresiones o líneas). Por ejemplo, <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">u</kbd> <kbd class="kbd docutils literal notranslate">3</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">t</kbd> (<code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">3</span> <span class="pre">C-t</span></code>) desplaza el carácter anterior al punto hacia adelante a través de otros tres caracteres. Cambiaría <code class="docutils literal notranslate"><span class="pre">foobar</span></code> por <code class="docutils literal notranslate"><span class="pre">oobfar</span></code>. Esto equivale a repetir <code class="docutils literal notranslate"><span class="pre">C-t</span></code> tres veces. <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">u</kbd> <kbd class="kbd docutils literal notranslate">-</kbd> <kbd class="kbd docutils literal notranslate">4</kbd> <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">t</kbd> (<code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">-</span> <span class="pre">4</span> <span class="pre">M-t</span></code>) mueve la palabra anterior al punto anterior a través de cuatro palabras. <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">u</kbd> <kbd class="kbd docutils literal notranslate">-</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">t</kbd> (<code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">-</span> <span class="pre">C-M-t</span></code>) anularía el efecto de <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">t</kbd> (<code class="docutils literal notranslate"><span class="pre">C-M-t</span></code>) simple.</p>
<p>A un argumento numérico de cero se le asigna un significado especial (porque de otro modo un comando con un recuento de repeticiones de cero no haría nada): transponer el carácter (o palabra o expresión o línea) que termina después del punto con el que termina después de la marca.</p>
<p><code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">transpose-regions</span></code> transpone el texto entre el punto y la marca con el texto entre las dos últimas marcas empujado al anillo de la marca (véase <a class="reference internal" href="12_LaMarca-y-LaRegion.html#id2"><span class="std std-ref">12.1 Fijar la Marca</span></a>). Con un argumento de prefijo numérico, transpone el texto entre punto y marca con el texto entre dos marcas sucesivas que muchas entradas atrás en el anillo de marca. Este comando se usa mejor para transponer varios caracteres (o palabras o frases o párrafos) de una sola vez.</p>

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.51
Traducción Revisón: 1.56
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -146,11 +146,11 @@
<section id="macros-de-teclado">
<span id="id1"></span><h1>18 Macros de Teclado<a class="headerlink" href="#macros-de-teclado" title="Link to this heading"></a></h1>
<p>En este capítulo describimos cómo grabar una secuencia de comandos de edición para poder repetirla cómodamente más tarde.</p>
<p>Una macro de teclado es un comando definido por un Usuario de Emacs para sustituir a otra secuencia de teclas. Por ejemplo, si descubre que está a punto de teclear <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">n</kbd> <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">d</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-n</span> <span class="pre">M-d</span> <span class="pre">C-d</span></code>) cuarenta veces, puede acelerar su trabajo definiendo una macro de teclado para hacer <code class="docutils literal notranslate"><span class="pre">C-n</span> <span class="pre">M-d</span> <span class="pre">C-d</span></code>, y luego ejecutarla 39 veces más.</p>
<p>Una <em>macro de teclado</em> se define ejecutando y registrando los comandos que constituyen su definición. Dicho de otro modo, al definir una macro de teclado, la definición se ejecuta por primera vez. De este modo, puede ver los efectos de sus comandos, para no tener que calcularlos mentalmente. Cuando cierra la definición, la macro de teclado está definida y también ha sido, en efecto, ejecutada una vez. A continuación, puede volver a hacer todo de nuevo invocando la macro.</p>
<p>Una <em>macro de teclado</em> es un comando definido por un Usuario de Emacs para sustituir a otra secuencia de teclas. Por ejemplo, si descubre que está a punto de teclear <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">n</kbd> <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">d</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-n</span> <span class="pre">M-d</span> <span class="pre">C-d</span></code>) cuarenta veces, puede acelerar su trabajo definiendo una macro de teclado para hacer <code class="docutils literal notranslate"><span class="pre">C-n</span> <span class="pre">M-d</span> <span class="pre">C-d</span></code>, y luego ejecutarla 39 veces más.</p>
<p>Una macro de teclado se define ejecutando y registrando los comandos que constituyen su definición. Dicho de otro modo, al definir una macro de teclado, la definición se ejecuta por primera vez. De este modo, puede ver los efectos de sus comandos, para no tener que calcularlos mentalmente. Cuando cierra la definición, la macro de teclado está definida y también ha sido, en efecto, ejecutada una vez. A continuación, puede volver a hacer todo de nuevo invocando la macro.</p>
<p>Las macros de teclado difieren de los comandos ordinarios de Emacs en que están escritas en el lenguaje de comandos de Emacs en lugar de en Lisp. Esto hace que sea más fácil para el principiante escribirlas, y las hace más convenientes como hacks temporales. Sin embargo, el lenguaje de comandos de Emacs no es lo suficientemente potente como lenguaje de programación como para ser útil para escribir algo inteligente o general. Para tales cosas, debe utilizarse Lisp.</p>
<section id="uso-basico">
<h2>18.1 Uso básico<a class="headerlink" href="#uso-basico" title="Link to this heading"></a></h2>
<span id="id2"></span><h2>18.1 Uso básico<a class="headerlink" href="#uso-basico" title="Link to this heading"></a></h2>
<p><kbd class="kbd docutils literal notranslate">F3</kbd> (<code class="docutils literal notranslate"><span class="pre">F3</span></code>)</p>
<blockquote>
<div><p>Empieza a definir una macro de teclado (<code class="docutils literal notranslate"><span class="pre">kmacro-start-macro-or-insert-counter</span></code>).</p>
@ -188,7 +188,7 @@
</pre></div>
</div>
<p>define una macro para avanzar una palabra y luego insertar <code class="docutils literal notranslate"><span class="pre">foo</span></code>. Observe que <code class="docutils literal notranslate"><span class="pre">F3</span></code> y <code class="docutils literal notranslate"><span class="pre">F4</span></code> no forman parte de la macro.</p>
<p>Después de definir la macro, puede llamarla con <code class="docutils literal notranslate"><span class="pre">F4</span></code>. Para el ejemplo anterior, esto tiene el mismo efecto que escribir <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">f</kbd> <code class="docutils literal notranslate"><span class="pre">foo</span></code> (<code class="docutils literal notranslate"><span class="pre">M-f</span> <span class="pre">foo</span></code>) de nuevo. (Tenga en cuenta las dos funciones del comando <code class="docutils literal notranslate"><span class="pre">F4</span></code> finaliza la macro si está en proceso de definir una, o llama a la última macro en caso contrario). También puede suministrar a <code class="docutils literal notranslate"><span class="pre">F4</span></code> un argumento prefijo numérico <em>n</em>, que significa invocar la macro <em>n</em> veces. Un argumento de cero repite la macro indefinidamente, hasta que obtiene un error o teclee <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>) (o, en MS-DOS, C-Break).</p>
<p>Después de definir la macro, puede llamarla con <code class="docutils literal notranslate"><span class="pre">F4</span></code>. Para el ejemplo anterior, esto tiene el mismo efecto que escribir <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">f</kbd> <code class="docutils literal notranslate"><span class="pre">foo</span></code> (<code class="docutils literal notranslate"><span class="pre">M-f</span> <span class="pre">foo</span></code>) de nuevo. (Tenga en cuenta las dos funciones del comando <code class="docutils literal notranslate"><span class="pre">F4</span></code> finaliza la macro si está en proceso de definir una, o llama a la última macro en caso contrario). También puede suministrar a <code class="docutils literal notranslate"><span class="pre">F4</span></code> un argumento prefijo numérico <em>n</em>, que significa invocar la macro <em>n</em> veces. Un argumento de cero repite la macro indefinidamente, hasta que obtiene un error o teclee <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>) (o, en MS-DOS, <code class="docutils literal notranslate"><span class="pre">C-Break</span></code>).</p>
<p>El ejemplo anterior demuestra un práctico truco que puede emplear con las macros de teclado: si desea repetir una operación en lugares regularmente espaciados del texto, incluya un comando de movimiento como parte de la macro. En este caso, la repetición de la macro inserta la cadena <code class="docutils literal notranslate"><span class="pre">foo</span></code> después de cada palabra sucesiva.</p>
<p>Tras finalizar la definición de una macro de teclado, puede añadir más pulsaciones a su definición escribiendo <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">u</kbd> <kbd class="kbd docutils literal notranslate">F3</kbd> (<code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">F3</span></code>). Esto equivale a <code class="docutils literal notranslate"><span class="pre">F3</span></code> simple seguido de volver a escribir toda la definición hasta el momento. Como consecuencia, vuelve a ejecutar la macro tal y como estaba definida anteriormente. Si cambia la variable <code class="docutils literal notranslate"><span class="pre">kmacro-execute-before-append</span></code> a <code class="docutils literal notranslate"><span class="pre">nil</span></code>, la macro existente no se reejecutará antes de anexarla (el valor por defecto es <code class="docutils literal notranslate"><span class="pre">t</span></code>). También puede añadir al final de la definición de la última macro de teclado sin reejecutarla tecleando <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">F3</kbd> (<code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">C-u</span> <span class="pre">F3</span></code>).</p>
<p>Cuando un comando lee un argumento con el minibúfer, su entrada en el minibúfer pasa a formar parte de la macro junto con el comando. Así, cuando vuelva a ejecutar la macro, el comando obtendrá el mismo argumento que cuando introdujo la macro. Por ejemplo,</p>
@ -204,10 +204,10 @@
</section>
<section id="el-anillo-de-macros-de-teclado">
<h2>18.2 El Anillo de Macros de Teclado<a class="headerlink" href="#el-anillo-de-macros-de-teclado" title="Link to this heading"></a></h2>
<p>Todas las macros de teclado definidas se graban en el anillo de macros de teclado. Sólo hay un anillo de macros de teclado, compartido por todos los búfers.</p>
<p>Todas las macros de teclado definidas se graban en el <em>anillo de macros de teclado</em>. Sólo hay un anillo de macros de teclado, compartido por todos los búfers.</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">k</kbd> <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-x</span> <span class="pre">C-k</span> <span class="pre">C-k</span></code>)</p>
<blockquote>
<div><p>Ejecuta la macro de teclado en la cabecera del anillo (<code class="docutils literal notranslate"><span class="pre">kmacro-end-or-call-macro-repeat</span></code>).</p>
<div><p>Ejecuta la macro de teclado que esa en la cabecera del anillo (<code class="docutils literal notranslate"><span class="pre">kmacro-end-or-call-macro-repeat</span></code>).</p>
</div></blockquote>
<p><kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd> <kbd class="kbd docutils literal notranslate">k</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-x</span> <span class="pre">C-k</span> <span class="pre">C-n</span></code>)</p>
<blockquote>
@ -224,7 +224,7 @@
<p>girará el anillo de macros del teclado a la segunda macro anterior, ejecutará la macro de cabecera resultante tres veces, girará de nuevo a la macro de cabecera original, la ejecutará una vez, girará a la macro anterior, la ejecutará, y finalmente la borrará del anillo de macros.</p>
<p>El comando <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-k</span> <span class="pre">C-k</span></code> (<code class="docutils literal notranslate"><span class="pre">kmacro-end-or-call-macro-repeat</span></code>) ejecuta la macro de teclado que se encuentra en la cabeza del anillo de macros. Puede repetir la macro inmediatamente escribiendo otra combinación de telcas <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>), o puede girar el anillo de macros inmediatamente escribiendo <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">n</kbd> o <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-n</span></code> o <code class="docutils literal notranslate"><span class="pre">C-p</span></code>).</p>
<p>Cuando se está definiendo una macro de teclado, <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-k</span> <span class="pre">C-k</span></code> se comporta como <code class="docutils literal notranslate"><span class="pre">F4</span></code> excepto que, inmediatamente después, puede usar la mayoría de las combinaciones de teclas de esta sección sin el prefijo <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-k</span></code>. Por ejemplo, otra <code class="docutils literal notranslate"><span class="pre">C-k</span></code> volverá a ejecutar la macro.</p>
<p>Los comandos <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-k</span> <span class="pre">C-n</span></code> (<code class="docutils literal notranslate"><span class="pre">kmacro-cycle-ring-next</span></code>) y <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-k</span> <span class="pre">C-p</span></code> (<code class="docutils literal notranslate"><span class="pre">kmacro-cycle-ring-previous</span></code>) rotan el anillo de macros, llevando la macro de teclado siguiente o anterior a la cabeza del anillo de macros. La definición de la nueva macro de cabecera se muestra en el área de eco. Puede continuar rotando el anillo de macros inmediatamente repitiendo sólo <code class="docutils literal notranslate"><span class="pre">C-n</span></code> y <code class="docutils literal notranslate"><span class="pre">C-p</span></code> hasta que la macro deseada esté en la cabeza del anillo. Para ejecutar la nueva macro cabeza de anillo inmediatamente, simplemente teclee <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>).</p>
<p>Los comandos <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-k</span> <span class="pre">C-n</span></code> (<code class="docutils literal notranslate"><span class="pre">kmacro-cycle-ring-next</span></code>) y <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-k</span> <span class="pre">C-p</span></code> (<code class="docutils literal notranslate"><span class="pre">kmacro-cycle-ring-previous</span></code>) rotan el anillo de macros, llevando la macro de teclado siguiente o anterior a la cabeza del anillo de macros. La definición de la nueva macro de cabecera se muestra en el área de eco. Puede continuar rotando el anillo de macros inmediatamente repitiendo sólo <code class="docutils literal notranslate"><span class="pre">C-n</span></code> y <code class="docutils literal notranslate"><span class="pre">C-p</span></code> hasta que la macro deseada esté en la cabeza del anillo. Para ejecutar la nueva macro que está en la cabeza de anillo inmediatamente, simplemente teclee <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>).</p>
<p>Tenga en cuenta que Emacs trata la cabeza del anillo de macros como la última macro de teclado definida. Por ejemplo, <code class="docutils literal notranslate"><span class="pre">F4</span></code> ejecutará esa macro, y <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-k</span> <span class="pre">n</span></code> le dará un nombre.</p>
<p>El número máximo de macros almacenadas en el anillo de macros del teclado viene determinado por la variable personalizable <code class="docutils literal notranslate"><span class="pre">kmacro-ring-max</span></code>.</p>
</section>
@ -252,7 +252,7 @@
<blockquote>
<div><p>Especifica el formato para insertar el contador de macros de teclado (<code class="docutils literal notranslate"><span class="pre">kmacro-set-format</span></code>).</p>
</div></blockquote>
<p>Cuando está definiendo una macro de teclado, el comando <code class="docutils literal notranslate"><span class="pre">F3</span></code> (<code class="docutils literal notranslate"><span class="pre">kmacro-start-macro-or-insert-counter</span></code>) inserta el valor actual del contador de la macro de teclado en el búfer, e incrementa el contador en 1. (Si no está definiendo una macro, <code class="docutils literal notranslate"><span class="pre">F3</span></code> inicia una definición de macro en su lugar. <strong>Véase Uso Básico</strong>). Puede usar un argumento de prefijo numérico para especificar un incremento diferente. Si sólo especifica un prefijo <code class="docutils literal notranslate"><span class="pre">C-u</span></code>, eso inserta el valor anterior del contador, y no cambia el valor actual.</p>
<p>Cuando está definiendo una macro de teclado, el comando <code class="docutils literal notranslate"><span class="pre">F3</span></code> (<code class="docutils literal notranslate"><span class="pre">kmacro-start-macro-or-insert-counter</span></code>) inserta el valor actual del contador de la macro de teclado en el búfer, e incrementa el contador en 1. (Si no está definiendo una macro, <code class="docutils literal notranslate"><span class="pre">F3</span></code> inicia una definición de macro en su lugar. Véase <a class="reference internal" href="#id2"><span class="std std-ref">18.1 Uso básico</span></a>). Puede usar un argumento de prefijo numérico para especificar un incremento diferente. Si sólo especifica un prefijo <code class="docutils literal notranslate"><span class="pre">C-u</span></code>, eso inserta el valor anterior del contador, y no cambia el valor actual.</p>
<p>A modo de ejemplo, vamos a mostrar cómo se puede usar el contador de macros del teclado para construir una lista numerada. Considere la siguiente secuencia de teclas:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">F3</span> <span class="n">C</span><span class="o">-</span><span class="n">a</span> <span class="n">F3</span> <span class="o">.</span> <span class="n">SPC</span> <span class="n">F4</span>
</pre></div>
@ -264,7 +264,7 @@
<p>El comando <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-k</span> <span class="pre">C-f</span></code> (<code class="docutils literal notranslate"><span class="pre">kmacro-set-format</span></code>) pregunta por el formato a usar al insertar el contador de macros. El formato por defecto es <code class="docutils literal notranslate"><span class="pre">%d</span></code>, que significa insertar el número en decimal sin ningún relleno. Puede salir con el minibúfer vacío para restablecer el formato por defecto. Puede especificar cualquier cadena de formato que la función format acepte y que tenga sentido con un único argumento entero extra (vea <strong>Formato de Cadenas</strong> en el Manual de Referencia de Emacs Lisp). No ponga la cadena de formato dentro de comillas dobles cuando la inserte en el minibúfer.</p>
<p>Si usa este comando mientras no se está definiendo o ejecutando ninguna macro de teclado, el nuevo formato afectará a todas las definiciones de macro posteriores. Las macros existentes siguen usando el formato vigente en el momento de su definición. Si establece el formato mientras define una macro de teclado, esto afecta a la macro que se está definiendo a partir de ese momento, pero no afecta a las macros posteriores. La ejecución de la macro utilizará, en cada paso, el formato vigente en ese paso durante su definición. Los cambios en el formato de la macro durante su ejecución, al igual que los cambios correspondientes durante su definición, no afectan a las macros posteriores.</p>
<p>El formato establecido por <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-k</span> <span class="pre">C-f</span></code> no afecta a la inserción de números almacenados en registros.</p>
<p>Si se usa un registro como contador, incrementándolo en cada repetición de la macro, se consigue lo mismo que con un contador de macros de teclado. Consulte <strong>Mantener Números en Registros</strong>. Para la mayoría de los propósitos, es más sencillo usar un contador de macros de teclado.</p>
<p>Si se usa un registro como contador, incrementándolo en cada repetición de la macro, se consigue lo mismo que con un contador de macros de teclado. Consulte <a class="reference internal" href="14_Registros.html#id5"><span class="std std-ref">14.5 Guardar Números en Registros</span></a>. Para la mayoría de los propósitos, es más sencillo usar un contador de macros de teclado.</p>
</section>
<section id="ejecutar-macros-con-variaciones">
<h2>18.4 Ejecutar Macros con Variaciones<a class="headerlink" href="#ejecutar-macros-con-variaciones" title="Link to this heading"></a></h2>
@ -293,10 +293,10 @@
<kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">c</kbd> (<code class="docutils literal notranslate"><span class="pre">C-M-c</span></code>), se le vuelve a preguntar cómo continuar con la macro de teclado. Si en este momento escribe un <kbd class="kbd docutils literal notranslate">SPACE</kbd> (<code class="docutils literal notranslate"><span class="pre">SPC</span></code>), se ejecutará el resto de la definición de la macro. Depende de Usted dejar el punto y el texto en un estado tal que el resto de la macro haga lo que desea.</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">u</kbd> (<code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">C-x</span> <span class="pre">q</span></code>), que es <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">q</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">q</span></code>) con un argumento prefijo, lleva a cabo una función completamente diferente. Entra en una edición recursiva leyendo la entrada del teclado, tanto cuando la escribe durante la definición de la macro, como cuando se ejecuta desde la macro. Durante la definición, la edición que hace dentro de la edición recursiva no se convierte en parte de la macro. Durante la ejecución de la macro, la edición recursiva le da la
oportunidad de hacer alguna edición particular en cada repetición. Véase <strong>Niveles de Edición Recursiva</strong>.</p>
oportunidad de hacer alguna edición particular en cada repetición. Véase <a class="reference internal" href="46_NivelsEdicRecursv.html#id1"><span class="std std-ref">46 Niveles de Edición Recursiva</span></a>.</p>
</section>
<section id="nombrar-y-guardar-macros-de-teclado">
<span id="id2"></span><h2>18.5 Nombrar y Guardar Macros de Teclado<a class="headerlink" href="#nombrar-y-guardar-macros-de-teclado" title="Link to this heading"></a></h2>
<span id="id3"></span><h2>18.5 Nombrar y Guardar Macros de Teclado<a class="headerlink" href="#nombrar-y-guardar-macros-de-teclado" title="Link to this heading"></a></h2>
<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">k</kbd> <kbd class="kbd docutils literal notranslate">n</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-k</span> <span class="pre">n</span></code>)</p>
<blockquote>
<div><p>Da un nombre de comando (durante toda la sesión de Emacs) a la macro de teclado definida más recientemente (<code class="docutils literal notranslate"><span class="pre">kmacro-name-last-macro</span></code>).</p>
@ -309,7 +309,7 @@ oportunidad de hacer alguna edición particular en cada repetición. Véase <str
<blockquote>
<div><p>Inserta en el búfer la definición de una macro de teclado, como código Lisp.</p>
</div></blockquote>
<p>Si desea guardar una macro de teclado para su posterior uso, puede darle un nombre utilizando <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-k</span> <span class="pre">n</span></code> (<code class="docutils literal notranslate"><span class="pre">kmacro-name-last-macro</span></code>). Esto lee un nombre como argumento usando el minibúfer y define ese nombre para ejecutar la última macro de teclado, en su forma actual. (Si posteriormente añade algo a la definición de esta macro, eso no altera la definición del nombre como macro). El nombre de la macro es un símbolo Lisp, y definirlo de esta forma lo convierte en un nombre de comando válido para llamar con <code class="docutils literal notranslate"><span class="pre">M-x</span></code> o para enlazar una tecla con <code class="docutils literal notranslate"><span class="pre">keymap-global-set</span></code> (ver <strong>Mapas de Teclas</strong>). Si especifica un nombre que tiene una definición anterior que no sea una macro de teclado, se muestra un mensaje de error y no se modifica nada.</p>
<p>Si desea guardar una macro de teclado para su posterior uso, puede darle un nombre utilizando <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-k</span> <span class="pre">n</span></code> (<code class="docutils literal notranslate"><span class="pre">kmacro-name-last-macro</span></code>). Esto lee un nombre como argumento usando el minibúfer y define ese nombre para ejecutar la última macro de teclado, en su forma actual. (Si posteriormente añade algo a la definición de esta macro, eso no altera la definición del nombre como macro). El nombre de la macro es un símbolo Lisp, y definirlo de esta forma lo convierte en un nombre de comando válido para llamar con <code class="docutils literal notranslate"><span class="pre">M-x</span></code> o para enlazar una tecla con <code class="docutils literal notranslate"><span class="pre">keymap-global-set</span></code> (ver <a class="reference internal" href="50_Personlzc.html#id16"><span class="std std-ref">50.3.1 Mapas de teclas</span></a>). Si especifica un nombre que tiene una definición anterior que no sea una macro de teclado, se muestra un mensaje de error y no se modifica nada.</p>
<p>También puede vincular la última macro de teclado (en su forma actual) a una tecla, usando <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-k</span> <span class="pre">b</span></code> (<code class="docutils literal notranslate"><span class="pre">kmacro-bind-to-key</span></code>) seguido de la secuencia de teclas que desea vincular. Puede asociar cualquier secuencia de teclas del mapa de teclas global, pero como la mayoría de las secuencias de teclas ya tienen otras asociaciones, debe seleccionar la secuencia de teclas con cuidado. Si intenta vincular una secuencia de teclas con una combinación existente (en cualquier mapa de teclas), este comando le pedirá confirmación antes de reemplazar la combinación existente.</p>
<p>Para evitar problemas causados por la anulación de combinaciones existentes, las secuencias de teclas <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">k</kbd> <kbd class="kbd docutils literal notranslate">0</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-k</span> <span class="pre">0</span></code>) a <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">k</kbd> <kbd class="kbd docutils literal notranslate">9</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-k</span> <span class="pre">9</span></code>) y <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">k</kbd> <kbd class="kbd docutils literal notranslate">A</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-k</span> <span class="pre">A</span></code>) a <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">x</kbd>-<kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">k</kbd> <kbd class="kbd docutils literal notranslate">Z</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-k</span> <span class="pre">Z</span></code>) están reservadas para sus propias combinaciones de macros de teclado. De hecho, para enlazar con una de estas secuencias de teclas, sólo tiene que escribir el dígito o la letra en lugar de las secuencias de teclas completas. Por ejemplo,</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">C</span><span class="o">-</span><span class="n">x</span> <span class="n">C</span><span class="o">-</span><span class="n">k</span> <span class="n">b</span> <span class="mi">4</span>
@ -320,7 +320,7 @@ oportunidad de hacer alguna edición particular en cada repetición. Véase <str
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">M</span><span class="o">-</span><span class="n">x</span> <span class="n">insert</span><span class="o">-</span><span class="n">kbd</span><span class="o">-</span><span class="n">macro</span> <span class="n">RET</span> <span class="n">nombremacro</span> <span class="n">RET</span>
</pre></div>
</div>
<p>Esto inserta algún código Lisp que, cuando se ejecute más tarde, definirá la misma macro con la misma definición que tiene ahora. (No necesita entender código Lisp para hacer esto, porque <code class="docutils literal notranslate"><span class="pre">insert-kbd-macro</span></code> escribe el código Lisp por Usted). A continuación, guarde el archivo. Puede cargar el archivo más tarde con <code class="docutils literal notranslate"><span class="pre">load-file</span></code> (vea <strong>Bibliotecas de Código Lisp</strong> para Emacs). Si el archivo que guarda es su archivo init <code class="docutils literal notranslate"><span class="pre">~/.emacs</span></code> (vea <strong>El Archivo de Inicialización</strong> de Emacs) entonces la macro será definida cada vez que ejecute Emacs.</p>
<p>Esto inserta algún código Lisp que, cuando se ejecute más tarde, definirá la misma macro con la misma definición que tiene ahora. (No necesita entender código Lisp para hacer esto, porque <code class="docutils literal notranslate"><span class="pre">insert-kbd-macro</span></code> escribe el código Lisp por Usted). A continuación, guarde el archivo. Puede cargar el archivo más tarde con <code class="docutils literal notranslate"><span class="pre">load-file</span></code> (vea <a class="reference internal" href="28_CompProbProg.html#id7"><span class="std std-ref">28.8 Bibliotecas de Código Lisp para Emacs</span></a>). Si el archivo que guarda es su archivo init <code class="docutils literal notranslate"><span class="pre">~/.emacs</span></code> (vea <a class="reference internal" href="50_Personlzc.html#id24"><span class="std std-ref">50.4. El Archivo de Inicialización de Emacs</span></a>) entonces la macro será definida cada vez que ejecute Emacs.</p>
<p>Si le damos un argumento prefijo a <code class="docutils literal notranslate"><span class="pre">insert-kbd-macro</span></code>, hace código Lisp adicional para registrar las teclas (si las hay) que hemos ligado a <em>nombremacro</em>, de forma que a la macro se le reasignarán las mismas teclas cuando carguemos el archivo.</p>
</section>
<section id="edicion-de-una-macro-de-teclado">

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.51
Traducción Revisón: 1.56
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -188,16 +188,16 @@
<p>Además de visitar y guardar ficheros, Emacs puede borrar, copiar, renombrar y añadir a ficheros, mantener múltiples versiones de ellos y operar en directorios de ficheros.</p>
<section id="nombres-de-archivos">
<span id="id2"></span><h2>19.1 Nombres de Archivos<a class="headerlink" href="#nombres-de-archivos" title="Link to this heading"></a></h2>
<p>Muchos comandos de Emacs que operan sobre un archivo requieren que se especifique el mismo utilizando el minibúfer (ver <strong>Minibúfer para Nombres de Archivo</strong>).</p>
<p>Mientras esté en el minibúfer, puede usar los comandos habituales de completado e historial (vea <strong>El Minibúfer</strong>). Tenga en cuenta que el completado de nombres de archivo ignora los nombres de archivo cuyas extensiones aparecen en la variable <code class="docutils literal notranslate"><span class="pre">completion-ignored-extensions</span></code> (vea <strong>Opciones de Completado</strong>). Observe también que la mayoría de los comandos usan completado permisivo con confirmación para leer nombres de archivo: se le permite enviar un nombre de archivo inexistente, pero si teclea <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">RET</span></code>) inmediatamente después de completar hasta un nombre de archivo inexistente, Emacs imprime <code class="docutils literal notranslate"><span class="pre">[Confirm]</span></code> (Confirmar) y debe teclear un segundo <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">RET</span></code>) para confirmar. Ver <strong>Salida del Completado</strong>, para más detalles.</p>
<p>Los comandos de historial del minibúfer ofrecen algunas características especiales para la lectura de nombres de ficheros, véase <strong>Historial del Minibúfer</strong>.</p>
<p>Cada búfer tiene un <em>directorio por defecto</em>, almacenado en la variable local del búfer <code class="docutils literal notranslate"><span class="pre">default-directory</span></code>. Siempre que Emacs lee un nombre de archivo usando el minibúfer, normalmente inserta el directorio por defecto en el minibúfer como contenido inicial. Puede inhibir esta inserción cambiando 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> (vea <strong>Minibúferes para Nombres de Archivo</strong>). En cualquier caso, Emacs siempre asume que cualquier nombre de archivo relativo es relativo al directorio por defecto, por ejemplo, introducir un nombre de archivo sin un directorio especifica un fichero en el directorio por defecto.</p>
<p>Cuando visita un archivo, Emacs establece <code class="docutils literal notranslate"><span class="pre">default-directory</span></code> en el búfer en el que visita al directorio de su archivo. Cuando crea un búfer nuevo que no está visitando un fichero, mediante un comando como <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">b</span></code>, su directorio por defecto es normalmente copiado del búfer que estaba activo en ese momento (vea <strong>Creando y Seleccionando Búferes</strong>). Puede usar el comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">pwd</span></code> para ver el valor de <code class="docutils literal notranslate"><span class="pre">default-directory</span></code> (directorio-por-defecto) en el búfer actual. El comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">cd</span></code> pide el nombre de un directorio, y establece el directorio por defecto del búfer a ese directorio (esto no cambia el nombre de archivo del búfer, si lo hay).</p>
<p>Muchos comandos de Emacs que operan sobre un archivo requieren que se especifique el mismo utilizando el minibúfer (ver <a class="reference internal" href="09_ElMinibufer.html#id2"><span class="std std-ref">9.2 Minibuffers para nombres de ficheros</span></a>).</p>
<p>Mientras esté en el minibúfer, puede usar los comandos habituales de completado e historial (vea <a class="reference internal" href="09_ElMinibufer.html#id1"><span class="std std-ref">9 El Minibúfer</span></a>). Tenga en cuenta que el completado de nombres de archivo ignora los nombres de archivo cuyas extensiones aparecen en la variable <code class="docutils literal notranslate"><span class="pre">completion-ignored-extensions</span></code> (vea <a class="reference internal" href="09_ElMinibufer.html#id8"><span class="std std-ref">9.4.5 Opciones de Completado</span></a>). Observe también que la mayoría de los comandos usan completado permisivo con confirmación para leer nombres de archivo: se le permite enviar un nombre de archivo inexistente, pero si teclea <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">RET</span></code>) inmediatamente después de completar hasta un nombre de archivo inexistente, Emacs imprime <code class="docutils literal notranslate"><span class="pre">[Confirm]</span></code> (Confirmar) y debe teclear un segundo <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">RET</span></code>) para confirmar. Ver <a class="reference internal" href="09_ElMinibufer.html#id6"><span class="std std-ref">9.4.3 Salida del Completado</span></a>, para más detalles.</p>
<p>Los comandos de historial del minibúfer ofrecen algunas características especiales para la lectura de nombres de ficheros, véase <a class="reference internal" href="09_ElMinibufer.html#id9"><span class="std std-ref">9.5 Historial del Minibúfer</span></a>.</p>
<p>Cada búfer tiene un <em>directorio por defecto</em>, almacenado en la variable local del búfer <code class="docutils literal notranslate"><span class="pre">default-directory</span></code>. Siempre que Emacs lee un nombre de archivo usando el minibúfer, normalmente inserta el directorio por defecto en el minibúfer como contenido inicial. Puede inhibir esta inserción cambiando 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> (vea <a class="reference internal" href="09_ElMinibufer.html#id2"><span class="std std-ref">9.2 Minibuffers para nombres de ficheros</span></a>). En cualquier caso, Emacs siempre asume que cualquier nombre de archivo relativo es relativo al directorio por defecto, por ejemplo, introducir un nombre de archivo sin un directorio especifica un fichero en el directorio por defecto.</p>
<p>Cuando visita un archivo, Emacs establece <code class="docutils literal notranslate"><span class="pre">default-directory</span></code> en el búfer en el que visita al directorio de su archivo. Cuando crea un búfer nuevo que no está visitando un fichero, mediante un comando como <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">b</span></code>, su directorio por defecto es normalmente copiado del búfer que estaba activo en ese momento (vea <a class="reference internal" href="20_UsarVariosBuferes.html#id2"><span class="std std-ref">20.1 Creación y Selección de Búferes</span></a>). Puede usar el comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">pwd</span></code> para ver el valor de <code class="docutils literal notranslate"><span class="pre">default-directory</span></code> (directorio-por-defecto) en el búfer actual. El comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">cd</span></code> pide el nombre de un directorio, y establece el directorio por defecto del búfer a ese directorio (esto no cambia el nombre de archivo del búfer, si lo hay).</p>
<p>Por ejemplo, cuando visita el archivo <code class="docutils literal notranslate"><span class="pre">/u/rms/gnu/gnu.tasks</span></code>, el directorio predeterminado se establece en <code class="docutils literal notranslate"><span class="pre">/u/rms/gnu/</span></code>. Si invoca un comando que lee un nombre de archivo, al introducir sólo <code class="docutils literal notranslate"><span class="pre">foo</span></code> en el minibúfer, con un directorio omitido, se especifica el archivo <code class="docutils literal notranslate"><span class="pre">/u/rms/gnu/foo</span></code>; al introducir <code class="docutils literal notranslate"><span class="pre">../.login</span></code> se especifica <code class="docutils literal notranslate"><span class="pre">/u/rms/.login</span></code>; y al introducir <code class="docutils literal notranslate"><span class="pre">new/foo</span></code> se especifica <code class="docutils literal notranslate"><span class="pre">/u/rms/gnu/new/foo</span></code>.</p>
<p>Al escribir un nombre de archivo en el minibúfer, puede hacer uso de un par de atajos: una barra doble ignora todo lo que hay antes de la segunda barra del par, y <code class="docutils literal notranslate"><span class="pre">~/</span></code> es su directorio personal. Vea <strong>Minibuferes para Nombres de Archivos</strong>.</p>
<p>Al escribir un nombre de archivo en el minibúfer, puede hacer uso de un par de atajos: una barra doble ignora todo lo que hay antes de la segunda barra del par, y <code class="docutils literal notranslate"><span class="pre">~/</span></code> es su directorio personal. Vea <a class="reference internal" href="09_ElMinibufer.html#id2"><span class="std std-ref">9.2 Minibuffers para nombres de ficheros</span></a>.</p>
<p>El carácter <code class="docutils literal notranslate"><span class="pre">$</span></code> se usa para sustituir una variable de entorno en un nombre de fichero. El nombre de la variable de entorno consiste en todos los caracteres alfanuméricos después del <code class="docutils literal notranslate"><span class="pre">$</span></code>; alternativamente, se puede encerrar entre llaves después del <code class="docutils literal notranslate"><span class="pre">$</span></code>. Por ejemplo, si ha utilizado el comando de shell <code class="docutils literal notranslate"><span class="pre">export</span> <span class="pre">FOO=rms/hacks</span></code> para establecer una variable de entorno llamada <code class="docutils literal notranslate"><span class="pre">FOO</span></code>, entonces tanto <code class="docutils literal notranslate"><span class="pre">/u/$FOO/test.c</span></code> como <code class="docutils literal notranslate"><span class="pre">/u/${FOO}/test.c</span></code> son abreviaturas de <code class="docutils literal notranslate"><span class="pre">/u/rms/hacks/test.c</span></code>. Si la variable de entorno no está definida, no se produce ninguna sustitución, de modo que el carácter <code class="docutils literal notranslate"><span class="pre">$</span></code> se representa a sí mismo. Tenga en cuenta que las variables de entorno establecidas fuera de Emacs sólo afectan a Emacs si se aplican antes de que se inicie Emacs.</p>
<p>Para acceder a un fichero con <code class="docutils literal notranslate"><span class="pre">$</span></code> en su nombre, si el <code class="docutils literal notranslate"><span class="pre">$</span></code> causa expansión, teclee <kbd class="kbd docutils literal notranslate">$</kbd><kbd class="kbd docutils literal notranslate">$</kbd> (<code class="docutils literal notranslate"><span class="pre">$$</span></code>). Este par se convierte en un único <code class="docutils literal notranslate"><span class="pre">$</span></code> al mismo tiempo que se realiza la sustitución de variables para un único <code class="docutils literal notranslate"><span class="pre">$</span></code>. También puede entrecomillar todo el nombre del archivo con <code class="docutils literal notranslate"><span class="pre">/:</span></code> (consulte <strong>Nombres de Archivos Entrecomillados</strong>). Los nombres de archivo que comienzan con un literal <code class="docutils literal notranslate"><span class="pre">~</span></code> también deben entrecomillarse con <code class="docutils literal notranslate"><span class="pre">/:</span></code>.</p>
<p>Puede incluir caracteres no ASCII en los nombres de archivo. Consulte <strong>Sistemas de Codificación para Nombres de Archivos</strong>.</p>
<p>Para acceder a un fichero con <code class="docutils literal notranslate"><span class="pre">$</span></code> en su nombre, si el <code class="docutils literal notranslate"><span class="pre">$</span></code> causa expansión, teclee <kbd class="kbd docutils literal notranslate">$</kbd><kbd class="kbd docutils literal notranslate">$</kbd> (<code class="docutils literal notranslate"><span class="pre">$$</span></code>). Este par se convierte en un único <code class="docutils literal notranslate"><span class="pre">$</span></code> al mismo tiempo que se realiza la sustitución de variables para un único <code class="docutils literal notranslate"><span class="pre">$</span></code>. También puede entrecomillar todo el nombre del archivo con <code class="docutils literal notranslate"><span class="pre">/:</span></code> (consulte <a class="reference internal" href="#id13"><span class="std std-ref">19.6 Guardado Automático: Protección Frente a Desastres</span></a>). Los nombres de archivo que comienzan con un literal <code class="docutils literal notranslate"><span class="pre">~</span></code> también deben entrecomillarse con <code class="docutils literal notranslate"><span class="pre">/:</span></code>.</p>
<p>Puede incluir caracteres no ASCII en los nombres de archivo. Consulte <a class="reference internal" href="23_SoporteJuegoCaracIntern.html#id12"><span class="std std-ref">23.11 Sistemas de Codificación de Nombres de Archivos</span></a>.</p>
</section>
<section id="visitar-archivos">
<span id="id3"></span><h2>19.2 Visitar Archivos<a class="headerlink" href="#visitar-archivos" title="Link to this heading"></a></h2>
@ -226,34 +226,34 @@
<div><p>Visita un archivo sin conversión del contenido.</p>
</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 <strong>Nombres de Archivos</strong>, 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 <strong>Archivos Remotos</strong>). 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 <strong>La Línea de Modo</strong>). 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 <strong>Cómo Hacer que los Nombres de los Búferes sean Únicos</strong>.</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">(</span> <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 <strong>Guardando Archivos</strong>). 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>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#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 <strong>Usando Búferes Múltiples</strong>). 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 <strong>Modos Mayores</strong>) 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 <strong>Nombres de Archivos Entrecomillados</strong>, 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 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="#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 <strong>Dired, el Editor de Directorios</strong>. 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 <strong>Archivos de Ficheros</strong>, 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 <strong>Diversas Operaciones con el Buffer</strong>.</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="#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 <strong>Ventanas Múltiples</strong>.</p>
<p><code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">5</span> <span class="pre">f</span></code> (<code class="docutils literal notranslate"><span class="pre">find-file-other-frame</span></code>) es similar, pero abre un nuevo marco, o selecciona cualquier marco existente que muestre el archivo especificado. Véase <strong>Marcos y Pantallas Gráficas</strong>.</p>
<p>En pantallas gráficas, hay dos métodos adicionales para visitar archivos. En primer lugar, cuando Emacs se construye con un conjunto de herramientas GUI adecuado, los comandos invocados con el ratón (pulsando en la barra de menús o en la barra de herramientas) usan el diálogo de selección de archivos estándar del conjunto de herramientas en lugar de pedir el nombre del archivo en el minibúfer. En GNU/Linux y plataformas Unix, Emacs hace esto cuando se construye con los toolkits GTK+, LessTif y Motif; en MS-Windows y Mac, la versión GUI lo hace por defecto. Para más información sobre cómo personalizarlo, véase <strong>Uso de Cuadros de Diálogo</strong>.</p>
<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 <strong>Arrastrar y Soltar</strong>, y <strong>Otras Características de Dired</strong>.</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> (Archivo Nuevo).</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 <strong>Sistemas de Codificación</strong>.</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 <strong>Sistemas de Codificación</strong>), o descompresión automática (vea <strong>Acceso a Archivos Comprimidos</strong>), 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 <strong>Personalizando el Guardado de Archivos</strong>). 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><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>
<p><code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">5</span> <span class="pre">f</span></code> (<code class="docutils literal notranslate"><span class="pre">find-file-other-frame</span></code>) es similar, pero abre un nuevo marco, o selecciona cualquier marco existente que muestre el archivo especificado. Véase <a class="reference internal" href="22_MarcosPantallasGraf.html#id1"><span class="std std-ref">22 Marcos y Pantallas Gráficas</span></a>.</p>
<p>En pantallas gráficas, hay dos métodos adicionales para visitar archivos. En primer lugar, cuando Emacs se construye con un conjunto de herramientas GUI adecuado, los comandos invocados con el ratón (pulsando en la barra de menús o en la barra de herramientas) usan el diálogo de selección de archivos estándar del conjunto de herramientas en lugar de pedir el nombre del archivo en el minibúfer. En GNU/Linux y plataformas Unix, Emacs hace esto cuando se construye con los toolkits GTK+, LessTif y Motif; en MS-Windows y Mac, la versión GUI lo hace por defecto. Para más información sobre cómo personalizarlo, véase <a class="reference internal" href="22_MarcosPantallasGraf.html#id17"><span class="std std-ref">22.18 Uso de Cuadros de Diálogo</span></a>.</p>
<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="#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>
<span class="s1">&#39;((&quot;</span><span class="se">\\</span><span class="s1">([^/]+</span><span class="se">\\</span><span class="s1">)</span><span class="se">\\</span><span class="s1">.c</span><span class="se">\\</span><span class="s1">&#39;</span><span class="s2">&quot; &quot;</span>\\<span class="mf">1.</span><span class="n">h</span><span class="s2">&quot;)))</span>
</pre></div>
</div>
<p>(<code class="docutils literal notranslate"><span class="pre">ff-find-related-file</span></code> ofrece una funcionalidad similar especialmente orientada a archivos C, vea <strong>Otros Comandos para Modo C</strong>).</p>
<p>(<code class="docutils literal notranslate"><span class="pre">ff-find-related-file</span></code> ofrece una funcionalidad similar especialmente orientada a archivos C, vea <a class="reference internal" href="27_EdDePrograms.html#id19"><span class="std std-ref">27.12.4 Otros comandos para el Modo C</span></a>).</p>
<p>O, si quiere considerar todos los ficheros bajo <code class="docutils literal notranslate"><span class="pre">&quot;src/emacs/DIR/nombre-archivo&quot;</span></code> como hermanos de otros <em>directorios</em>, se podría escribir:</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>
<span class="s1">&#39;((&quot;src/emacs/[^/]+/</span><span class="se">\\</span><span class="s1">(.*</span><span class="se">\\</span><span class="s1">)</span><span class="se">\\</span><span class="s1">&#39;</span><span class="s2">&quot; &quot;</span><span class="n">src</span><span class="o">/</span><span class="n">emacs</span><span class="o">/.*/</span>\\<span class="mi">1</span><span class="s2">&quot;)))</span>
@ -261,11 +261,11 @@
</div>
<p>Como puede ver, se trata de una lista de elementos (<em>MATCH EXPANSION…</em>). La <em>coincidencia</em> es una expresión regular que se corresponde con el nombre del archivo visitado, y cada expansión puede referirse a grupos de coincidencias utilizando <code class="docutils literal notranslate"><span class="pre">\\1</span></code> y así sucesivamente. La cadena de expansión resultante se aplica entonces al sistema de archivos para ver si algún archivo coincide con esta expansión (interpretada como una expreg).</p>
<p>Dos variables gancho especiales permiten a las extensiones modificar el funcionamiento de la visita de archivos. Al visitar un archivo que no existe, se ejecutan las funciones de <code class="docutils literal notranslate"><span class="pre">find-file-not-found-functions</span></code>; esta variable contiene una lista de funciones, que se llaman una a una (sin argumentos) hasta que una de ellas devuelve un valor no nulo. No se trata de un gancho normal, y el nombre termina en <code class="docutils literal notranslate"><span class="pre">-functions</span></code> en lugar de <code class="docutils literal notranslate"><span class="pre">-hook</span></code> para indicarlo.</p>
<p>La visita exitosa de cualquier archivo, existente o no, llama a las funciones en <code class="docutils literal notranslate"><span class="pre">find-file-hook</span></code>, sin argumentos. Esta variable es un gancho normal. En el caso de un archivo inexistente, se ejecutan primero las funciones <code class="docutils literal notranslate"><span class="pre">find-file-not-found</span></code>. Véase <strong>Ganchos</strong>.</p>
<p>Hay varias formas de especificar automáticamente el modo principal para editar el archivo (véase <strong>Elegir Modos de Archivo</strong>), y de especificar variables locales definidas para ese archivo (véase <strong>Variables Locales en Archivos</strong>).</p>
<p>La visita exitosa de cualquier archivo, existente o no, llama a las funciones en <code class="docutils literal notranslate"><span class="pre">find-file-hook</span></code>, sin argumentos. Esta variable es un gancho normal. En el caso de un archivo inexistente, se ejecutan primero las funciones <code class="docutils literal notranslate"><span class="pre">find-file-not-found</span></code>. Véase <a class="reference internal" href="50_Personlzc.html#id6"><span class="std std-ref">50.2.2 Ganchos (Hooks)</span></a>.</p>
<p>Hay varias formas de especificar automáticamente el modo principal para editar el archivo (véase <a class="reference internal" href="24_ModosMayores-Y-Menores.html#id8"><span class="std std-ref">24.3 Elección de los Modos de Archivo</span></a>), y de especificar variables locales definidas para ese archivo (véase <a class="reference internal" href="50_Personlzc.html#id8"><span class="std std-ref">50.2.4. Variables locales en Archivos</span></a>).</p>
</section>
<section id="guardar-archivos">
<h2>19.3 Guardar Archivos<a class="headerlink" href="#guardar-archivos" title="Link to this heading"></a></h2>
<span id="id4"></span><h2>19.3 Guardar Archivos<a class="headerlink" href="#guardar-archivos" title="Link to this heading"></a></h2>
<p><em>Guardar</em> un búfer en Emacs significa volver a escribir su contenido en el archivo que se visitó en dicho búfer.</p>
<section id="comandos-para-guardar-archivos">
<h3>19.3.1 Comandos para Guardar Archivos<a class="headerlink" href="#comandos-para-guardar-archivos" title="Link to this heading"></a></h3>
@ -282,7 +282,7 @@
<blockquote>
<div><p>Olvida que el búfer actual ha sido modificado (<code class="docutils literal notranslate"><span class="pre">not-modified</span></code>). Con argumento prefijo (<code class="docutils literal notranslate"><span class="pre">C-u</span></code>), marca el búfer actual como modificado.</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">Ctrl</kbd>-:kbd.`w` (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-w</span></code>)</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">w</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-w</span></code>)</p>
<blockquote>
<div><p>Guarda el búfer actual con un nombre de archivo especificado (<code class="docutils literal notranslate"><span class="pre">write-file</span></code>).</p>
</div></blockquote>
@ -303,7 +303,7 @@
</pre></div>
</div>
<p>(No es necesario guardar ningún cambio)</p>
<p>Con un argumento prefijo, <code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">C-x</span> <span class="pre">C-s</span></code>, Emacs también marca el búfer para hacer una copia de seguridad cuando se haga el siguiente guardado. Ver <strong>Archivos de Copia de Seguridad</strong>.</p>
<p>Con un argumento prefijo, <code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">C-x</span> <span class="pre">C-s</span></code>, Emacs también marca el búfer para hacer una copia de seguridad cuando se haga el siguiente guardado. Ver <a class="reference internal" href="#id5"><span class="std std-ref">19.3.2 Archivos de Copia de Seguridad</span></a>.</p>
<p>El comando <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">s</span></code> (<code class="docutils literal notranslate"><span class="pre">save-some-buffers</span></code>, guardar-algunos-búferes) ofrece guardar cualquiera o todos los búferes modificados. Le pregunta qué hacer con cada búfer. Las respuestas posibles son análogas a las de <code class="docutils literal notranslate"><span class="pre">query-replace</span></code>:</p>
<div class="line-block">
<div class="line"><kbd class="kbd docutils literal notranslate">y</kbd> (<code class="docutils literal notranslate"><span class="pre">y</span></code>)</div>
@ -344,8 +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 <strong>Comparación de
Archivos</strong>).</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>
@ -353,42 +352,37 @@ Archivos</strong>).</p>
</div></blockquote>
<p>Puede personalizar el valor de <code class="docutils literal notranslate"><span class="pre">save-some-buffers-default-predicate</span></code> para controlar sobre qué búferes preguntará Emacs.</p>
<p><code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-c</span></code>, la secuencia de teclas para salir de Emacs, invoca <code class="docutils literal notranslate"><span class="pre">save-some-buffers</span></code> y por tanto hace las mismas preguntas.</p>
<p>Si ha cambiado un búfer pero no desea guardar los cambios, debería tomar alguna medida para evitarlo. De lo contrario, cada vez que utilice <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">s</span></code> o <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-c</span></code>, es probable que guarde este búfer por error. Una cosa que puede hacer es teclear <code class="docutils literal notranslate"><span class="pre">M-~</span></code> (<code class="docutils literal notranslate"><span class="pre">not-modified</span></code>), que borra la indicación de que el búfer está modificado. Si hace esto, ninguno de los comandos de guardado creerá que el búfer necesita ser guardado. (<code class="docutils literal notranslate"><span class="pre">~</span></code> se usa a menudo como símbolo matemático de «not» (negación); por tanto, <code class="docutils literal notranslate"><span class="pre">M-~</span></code> es «not», metafied). Alternativamente, puede cancelar todos los cambios realizados desde que el archivo fue visitado o guardado, leyendo de nuevo el texto del archivo. Esto se llama revertir. Vea <strong>Revertir un búfer</strong>. (También podría deshacer todos los cambios repitiendo el comando deshacer <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">u</span></code> hasta que haya deshecho todos los cambios; pero revertir es más fácil).</p>
<p>Si ha cambiado un búfer pero no desea guardar los cambios, debería tomar alguna medida para evitarlo. De lo contrario, cada vez que utilice <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">s</span></code> o <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-c</span></code>, es probable que guarde este búfer por error. Una cosa que puede hacer es teclear <code class="docutils literal notranslate"><span class="pre">M-~</span></code> (<code class="docutils literal notranslate"><span class="pre">not-modified</span></code>), que borra la indicación de que el búfer está modificado. Si hace esto, ninguno de los comandos de guardado creerá que el búfer necesita ser guardado. (<code class="docutils literal notranslate"><span class="pre">~</span></code> se usa a menudo como símbolo matemático de «not» (negación); por tanto, <code class="docutils literal notranslate"><span class="pre">M-~</span></code> es «not», metafied). Alternativamente, puede cancelar todos los cambios realizados desde que el archivo fue visitado o guardado, leyendo de nuevo el texto del archivo. Esto se llama revertir. Vea <a class="reference internal" href="#id11"><span class="std std-ref">19.4 Revertir un Búfer</span></a>. (También podría deshacer todos los cambios repitiendo el comando deshacer <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">u</span></code> hasta que haya deshecho todos los cambios; pero revertir es más fácil).</p>
<p><code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">set-visited-file-name</span></code> altera el nombre del archivo que el búfer actual está visitando. Lee el nuevo nombre de archivo utilizando el minibúfer. Entonces marca el búfer como visitando ese nombre de archivo, y cambia el nombre del búfer correspondientemente. <code class="docutils literal notranslate"><span class="pre">set-visited-file-name</span></code> no guarda el búfer en el nuevo archivo visitado; sólo altera los registros dentro de Emacs en caso de que los guardes más tarde. También marca el búfer como modificado para que <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-s</span></code> en ese búfer se guarde.</p>
<p>Si quiere marcar el búfer como visitado en un archivo diferente y guardarlo inmediatamente, use <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-w</span></code> (<code class="docutils literal notranslate"><span class="pre">write-file</span></code>). Esto es equivalente a <code class="docutils literal notranslate"><span class="pre">set-visited-file-name</span></code> seguido de <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-s</span></code>, excepto que <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-w</span></code> pide confirmación si el archivo existe. <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-s</span></code> utilizado en un búfer que no está visitando un archivo tiene el mismo efecto que <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-w</span></code>; es decir, lee un nombre de archivo, marca el búfer como visitando ese archivo y lo guarda allí. El nombre de archivo por defecto en un búfer que no está visitando un fichero se hace combinando el nombre del búfer con el directorio por defecto del búfer (ver <strong>Nombres de Archivos</strong>).
Si el nuevo nombre de archivo implica un modo principal, entonces <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-w</span></code> cambia a ese modo principal, en la mayoría de los casos. El comando <code class="docutils literal notranslate"><span class="pre">set-visited-file-name</span></code> también hace esto. Ver <strong>Elección de Modos de Archivo</strong>.</p>
<p>Si Emacs está a punto de guardar un archivo y ve que la fecha de la última versión en disco no coincide con lo que Emacs leyó o escribió por última vez, le notifica este hecho, porque probablemente indica un problema causado por la edición simultánea y requiere su atención inmediata. Ver <strong>Edición Simultánea</strong>.</p>
<p>Si quiere marcar el búfer como visitado en un archivo diferente y guardarlo inmediatamente, use <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-w</span></code> (<code class="docutils literal notranslate"><span class="pre">write-file</span></code>). Esto es equivalente a <code class="docutils literal notranslate"><span class="pre">set-visited-file-name</span></code> seguido de <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-s</span></code>, excepto que <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-w</span></code> pide confirmación si el archivo existe. <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-s</span></code> utilizado en un búfer que no está visitando un archivo tiene el mismo efecto que <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-w</span></code>; es decir, lee un nombre de archivo, marca el búfer como visitando ese archivo y lo guarda allí. El nombre de archivo por defecto en un búfer que no está visitando un fichero se hace combinando el nombre del búfer con el directorio por defecto del búfer (ver <a class="reference internal" href="#id2"><span class="std std-ref">19.1 Nombres de Archivos</span></a>). Si el nuevo nombre de archivo implica un modo principal, entonces <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-w</span></code> cambia a ese modo principal, en la mayoría de los casos. El comando <code class="docutils literal notranslate"><span class="pre">set-visited-file-name</span></code> también hace esto. Ver <a class="reference internal" href="24_ModosMayores-Y-Menores.html#id8"><span class="std std-ref">24.3 Elección de los Modos de Archivo</span></a>.</p>
<p>Si Emacs está a punto de guardar un archivo y ve que la fecha de la última versión en disco no coincide con lo que Emacs leyó o escribió por última vez, le notifica este hecho, porque probablemente indica un problema causado por la edición simultánea y requiere su atención inmediata. Ver <a class="reference internal" href="#id8"><span class="std std-ref">19.3.4 Protección contra la Edición Simultánea</span></a>.</p>
</section>
<section id="archivos-de-copia-de-seguridad">
<h3>19.3.2 Archivos de Copia de Seguridad<a class="headerlink" href="#archivos-de-copia-de-seguridad" title="Link to this heading"></a></h3>
<span id="id5"></span><h3>19.3.2 Archivos de Copia de Seguridad<a class="headerlink" href="#archivos-de-copia-de-seguridad" title="Link to this heading"></a></h3>
<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 <strong>Control de Versiones</strong>), 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 <strong>Opciones Generales</strong>.</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 <strong>Copias de Seguridad Únicas o Numeradas</strong>.</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>
<p>Puede personalizar la variable <code class="docutils literal notranslate"><span class="pre">backup-directory-alist</span></code> para especificar que los archivos que coinciden con ciertos patrones deben ser respaldados en directorios específicos. Un uso típico es añadir un elemento (<code class="docutils literal notranslate"><span class="pre">&quot;.&quot;</span> <span class="pre">.</span> <span class="pre">dir</span></code>) para hacer todas las copias de seguridad en el directorio con nombre absoluto dir. Emacs modifica los nombres de los archivos de copia de seguridad para evitar conflictos entre archivos con los mismos nombres originados en directorios diferentes. Alternativamente, añadiendo, (<code class="docutils literal notranslate"><span class="pre">&quot;.&quot;</span> <span class="pre">.</span> <span class="pre">&quot;.~&quot;</span></code>) haría las copias de seguridad en el subdirectorio invisible <code class="docutils literal notranslate"><span class="pre">.~</span></code> del directorio del archivo original. Si es necesario, Emacs crea el directorio para hacer la copia de seguridad.</p>
<section id="copias-de-seguridad-simples-o-numeradas">
<h4>19.3.2.1 Copias de Seguridad Simples o Numeradas<a class="headerlink" href="#copias-de-seguridad-simples-o-numeradas" title="Link to this heading"></a></h4>
<span id="id6"></span><h4>19.3.2.1 Copias de Seguridad Simples o Numeradas<a class="headerlink" href="#copias-de-seguridad-simples-o-numeradas" title="Link to this heading"></a></h4>
<p>Cuando Emacs crea un archivo de copia de seguridad, su nombre se construye normalmente añadiendo <code class="docutils literal notranslate"><span class="pre">~</span></code> al nombre del archivo que se está editando; así, el archivo de <em>copia de seguridad</em> para <code class="docutils literal notranslate"><span class="pre">eval.c</span></code> sería <code class="docutils literal notranslate"><span class="pre">eval.c~</span></code>.</p>
<p>Si el control de acceso impide a Emacs escribir archivos de copia de seguridad con los nombres habituales, escriba el archivo de copia de seguridad como <code class="docutils literal notranslate"><span class="pre">~/.emacs.d/%backup%~</span></code>. Sólo puede existir un archivo de este tipo, por lo que sólo está disponible la copia de seguridad más reciente.</p>
<p>Emacs también puede hacer archivos de copia de seguridad numerados. Los nombres de archivos de copia de seguridad numerados contienen <code class="docutils literal notranslate"><span class="pre">.~</span></code>, el número, y otro <code class="docutils literal notranslate"><span class="pre">~</span></code> después del nombre del archivo original. Así, los archivos de copia de seguridad de <code class="docutils literal notranslate"><span class="pre">eval.c</span></code> se llamarían <code class="docutils literal notranslate"><span class="pre">eval.c.~1~</span></code>, <code class="docutils literal notranslate"><span class="pre">eval.c.~2~</span></code>, y así sucesivamente, hasta nombres como <code class="docutils literal notranslate"><span class="pre">eval.c.~259~</span></code> y más allá.</p>
<p>La variable <code class="docutils literal notranslate"><span class="pre">version-control</span></code> determina si se hacen archivos de copia de seguridad individuales o múltiples archivos de copia de seguridad numerados. Sus valores posibles son:</p>
<p><code class="docutils literal notranslate"><span class="pre">nil</span></code></p>
<blockquote>
<div><p>Crea copias de seguridad numeradas para los archivos que ya tienen copias de seguridad numeradas. En caso contrario, crea copias de seguridad individuales. Esta es la opción por
<dl class="simple">
<dt><code class="docutils literal notranslate"><span class="pre">nil</span></code></dt><dd><p>Crea copias de seguridad numeradas para los archivos que ya tienen copias de seguridad numeradas. En caso contrario, crea copias de seguridad individuales. Esta es la opción por
defecto.</p>
</div></blockquote>
<p><code class="docutils literal notranslate"><span class="pre">t</span></code></p>
<blockquote>
<div><p>Crea copias de seguridad numeradas.</p>
</div></blockquote>
<p><code class="docutils literal notranslate"><span class="pre">never</span></code></p>
<blockquote>
<div><p>Nunca haga copias de seguridad numeradas; sólo copias individuales.</p>
</div></blockquote>
<p>La forma habitual de establecer esta variable es globalmente, a través de su archivo init o del búfer de personalización. Sin embargo, puede configuar <code class="docutils literal notranslate"><span class="pre">version-control</span></code> localmente en un búfer individual para controlar la realización de copias de seguridad del archivo de ese búfer (consulte <strong>Variables Locales</strong>). Algunos modos, como el modo Rmail, establecen esta variable. También puede hacer que Emacs establezca el control de versiones localmente cada vez que visite un archivo dado (vea <strong>Variables Locales en Archivos</strong>).</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">t</span></code></dt><dd><p>Crea copias de seguridad numeradas.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">never</span></code></dt><dd><p>Nunca haga copias de seguridad numeradas; sólo copias individuales.</p>
</dd>
</dl>
<p>La forma habitual de establecer esta variable es globalmente, a través de su archivo init o del búfer de personalización. Sin embargo, puede configuar <code class="docutils literal notranslate"><span class="pre">version-control</span></code> localmente en un búfer individual para controlar la realización de copias de seguridad del archivo de ese búfer (consulte <a class="reference internal" href="50_Personlzc.html#id7"><span class="std std-ref">50.2.3 Variables Locales</span></a>). Algunos modos, como el modo Rmail, establecen esta variable. También puede hacer que Emacs establezca el control de versiones localmente cada vez que visite un archivo dado (vea <a class="reference internal" href="50_Personlzc.html#id8"><span class="std std-ref">50.2.4. Variables locales en Archivos</span></a>).</p>
<p>Si establece la variable de entorno <code class="docutils literal notranslate"><span class="pre">VERSION_CONTROL</span></code>, para indicar a varias utilidades GNU qué hacer con los archivos de copia de seguridad, Emacs también obedece a la variable de entorno estableciendo la variable Lisp <code class="docutils literal notranslate"><span class="pre">version-control</span></code> en consecuencia al inicio. Si el valor de la variable de entorno es <code class="docutils literal notranslate"><span class="pre">t</span></code> o <code class="docutils literal notranslate"><span class="pre">numbered</span></code>, entonces <code class="docutils literal notranslate"><span class="pre">version-control</span></code> se convierte en <code class="docutils literal notranslate"><span class="pre">t</span></code>; si el valor es <code class="docutils literal notranslate"><span class="pre">nil</span></code> o <code class="docutils literal notranslate"><span class="pre">existing</span></code>, entonces <code class="docutils literal notranslate"><span class="pre">version-control</span></code> se convierte en <code class="docutils literal notranslate"><span class="pre">nil</span></code>; si es <code class="docutils literal notranslate"><span class="pre">never</span></code> o <code class="docutils literal notranslate"><span class="pre">simple</span></code>, entonces <code class="docutils literal notranslate"><span class="pre">version-control</span></code> se convierte en <code class="docutils literal notranslate"><span class="pre">never</span></code>.</p>
<p>Si establece la variable <code class="docutils literal notranslate"><span class="pre">make-backup-file-name-function</span></code> a una función Lisp adecuada, puede anular la forma habitual en que Emac construye los nombres de los archivos de copia de seguridad.</p>
</section>
@ -397,7 +391,7 @@ defecto.</p>
<p>Para evitar un consumo excesivo de espacio en disco, Emacs puede borrar automáticamente las versiones numeradas de las copias de seguridad. Generalmente mantiene tanto las primeras como las últimas copias de seguridad, borrando todas las que se encuentran entre ellas. Esto ocurre cada vez que se hace una nueva copia de seguridad.</p>
<p>Las dos variables <code class="docutils literal notranslate"><span class="pre">kept-old-versions</span></code> y <code class="docutils literal notranslate"><span class="pre">kept-new-versions</span></code> controlan este borrado. Sus valores son, respectivamente, el número de copias de seguridad más antiguas (con el número más bajo) y el número de copias más nuevas (con el número más alto) que se deben conservar, cada vez que se hace una nueva copia de seguridad. Las copias de seguridad intermedias (excluidas las más antiguas y las más recientes) son las versiones intermedias sobrantes: esas copias de seguridad se eliminan. Los valores de estas variables se utilizan cuando llega el momento de eliminar las versiones sobrantes, justo después de realizar una nueva versión de copia de seguridad; la copia de seguridad recién realizada se incluye en el recuento de versiones nuevas conservadas. Por defecto, ambas variables son 2.</p>
<p>Si <code class="docutils literal notranslate"><span class="pre">delete-old-versions</span></code> es <code class="docutils literal notranslate"><span class="pre">t</span></code>, Emacs borra los archivos de copia de seguridad sobrantes silenciosamente. Si es <code class="docutils literal notranslate"><span class="pre">nil</span></code>, el valor por defecto, Emacs le pregunta si debería borrar el exceso de versiones de copia de seguridad. Si tiene cualquier otro valor, entonces Emacs nunca borra automáticamente las copias de seguridad.</p>
<p>El comando <code class="docutils literal notranslate"><span class="pre">.</span></code> (Punto) de Dired también puede usarse para borrar versiones antiguas. Ver <strong>Marcar Varios Archivos a la Vez</strong>.</p>
<p>El comando <code class="docutils literal notranslate"><span class="pre">.</span></code> (Punto) de Dired también puede usarse para borrar versiones antiguas. Ver <a class="reference internal" href="31_DiredEditDirect.html#id8"><span class="std std-ref">31.4 Marcar Varios Archivos a la Vez</span></a>.</p>
</section>
<section id="copiar-vs-renombrar">
<h4>19.3.2.3 Copiar vs. Renombrar<a class="headerlink" href="#copiar-vs-renombrar" title="Link to this heading"></a></h4>
@ -416,24 +410,24 @@ copiar.</p>
<li><p>De lo contrario, renombrar es la opción por defecto.</p></li>
</ul>
</div></blockquote>
<p>Cuando un archivo se gestiona con un sistema de control de versiones (ver <strong>Control de Versiones</strong>), Emacs normalmente no hace copias de seguridad de la forma habitual para ese archivo. Pero <em>commiting</em> (también conocido como <em>check in</em> (regostro de entrada), ver <strong>Conceptos de Control de Versiones</strong>) nuevas versiones de archivos es similar en algunos aspectos a hacer copias de seguridad. Una desafortunada similitud es que estas operaciones normalmente rompen enlaces duros, desconectando el nombre de archivo que visitó de cualquier nombre alternativo para el mismo archivo. Esto no tiene nada que ver con Emacs, lo hace el sistema de control de versiones.</p>
<p>Cuando un archivo se gestiona con 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>), Emacs normalmente no hace copias de seguridad de la forma habitual para ese archivo. Pero <em>commiting</em> (también conocido como <em>check in</em> (registro de entrada), ver <a class="reference internal" href="29_ManyProgrsGrands.html#id3"><span class="std std-ref">29.1.1.3 Conceptos de Control de Versiones</span></a>) nuevas versiones de archivos es similar en algunos aspectos a hacer copias de seguridad. Una desafortunada similitud es que estas operaciones normalmente rompen enlaces duros, desconectando el nombre de archivo que visitó de cualquier nombre alternativo para el mismo archivo. Esto no tiene nada que ver con Emacs, lo hace el sistema de control de versiones.</p>
</section>
</section>
<section id="personalizar-el-guardado-de-archivos">
<h3>19.3.3 Personalizar el Guardado de Archivos<a class="headerlink" href="#personalizar-el-guardado-de-archivos" title="Link to this heading"></a></h3>
<span id="id7"></span><h3>19.3.3 Personalizar el Guardado de Archivos<a class="headerlink" href="#personalizar-el-guardado-de-archivos" title="Link to this heading"></a></h3>
<p>Si el valor de la variable <code class="docutils literal notranslate"><span class="pre">require-final-newline</span></code> es <code class="docutils literal notranslate"><span class="pre">t</span></code>, al guardar o escribir un archivo se pone silenciosamente una nueva línea al final si aún no hay una. Si el valor es <code class="docutils literal notranslate"><span class="pre">visit</span></code>, Emacs añade una nueva línea al final de cualquier archivo que no la tenga, justo después de visitar el archivo. (Esto marca el búfer como modificado, y se puede deshacer.) Si el valor es <code class="docutils literal notranslate"><span class="pre">visit-save</span></code>, Emacs añade esas nuevas líneas tanto al visitar como al guardar. Si el valor es <code class="docutils literal notranslate"><span class="pre">nil</span></code>, Emacs deja el final del archivo sin cambios; cualquier otro valor que no sea <code class="docutils literal notranslate"><span class="pre">nil</span></code> significa que Emacs le pregunta si quiere añadir una nueva línea. El valor por defecto es <code class="docutils literal notranslate"><span class="pre">nil</span></code>.</p>
<p>Algunos modos principales están diseñados para tipos específicos de archivos que siempre deben terminar en nuevas líneas. Estos modos principales establecen la variable <code class="docutils literal notranslate"><span class="pre">require-final-newline</span></code> al valor de <code class="docutils literal notranslate"><span class="pre">mode-require-final-newline</span></code>, que por defecto es <code class="docutils literal notranslate"><span class="pre">t</span></code>. Estableciendo esta última variable, puede controlar cómo estos modos manejan las nuevas líneas finales.</p>
<p>Si esta opción no es nula y está visitando un archivo a través de un enlace simbólico, Emacs romperá el enlace simbólico al guardar el búfer, y escribirá el búfer en un archivo con el mismo nombre que el enlace simbólico, si el valor de <code class="docutils literal notranslate"><span class="pre">file-precious-flag</span></code> no es nulo (vea <strong>Guardar Búferes</strong> en Manual de Referencia de Emacs Lisp). Si quiere que Emacs guarde el búfer en el archivo al que apunta el enlace simbólico (preservando así el enlace) en estos casos, personalice la variable <code class="docutils literal notranslate"><span class="pre">file-preserve-symlinks-on-save</span></code> a <code class="docutils literal notranslate"><span class="pre">t</span></code>.</p>
<p>Normalmente, cuando un programa escribe un archivo, el sistema operativo almacena brevemente los datos del archivo en la memoria principal antes de transferirlos al disco. Esto puede mejorar enormemente el rendimiento; por ejemplo, cuando se ejecuta en ordenadores portátiles, puede evitar un giro del disco cada vez que se escribe un archivo. Sin embargo, se corre el riesgo de perder datos si el sistema operativo se bloquea antes de transferir la caché al disco.</p>
<p>Para reducir este riesgo, Emacs puede invocar la llamada al sistema <code class="docutils literal notranslate"><span class="pre">fsync</span></code> después de guardar un archivo. El uso de <code class="docutils literal notranslate"><span class="pre">fsync</span></code> no elimina el riesgo de pérdida de datos, en parte porque muchos sistemas no lo implementan correctamente, y en parte porque el procedimiento de guardado de archivos de Emacs normalmente depende también de actualizaciones de directorio que podrían no sobrevivir a una caída incluso si este funciona correctamente.</p>
<p>La variable <code class="docutils literal notranslate"><span class="pre">write-region-inhibit-fsync</span></code> controla si Emacs invoca <code class="docutils literal notranslate"><span class="pre">fsync</span></code> después de guardar un archivo. El valor por defecto de la variable es <code class="docutils literal notranslate"><span class="pre">nil</span></code> cuando Emacs es interactivo, y <code class="docutils literal notranslate"><span class="pre">t</span></code> cuando Emacs se ejecuta en modo batch (ver <strong>Modo Batch</strong>).</p>
<p>La variable <code class="docutils literal notranslate"><span class="pre">write-region-inhibit-fsync</span></code> controla si Emacs invoca <code class="docutils literal notranslate"><span class="pre">fsync</span></code> después de guardar un archivo. El valor por defecto de la variable es <code class="docutils literal notranslate"><span class="pre">nil</span></code> cuando Emacs es interactivo, y <code class="docutils literal notranslate"><span class="pre">t</span></code> cuando Emacs se ejecuta en modo batch (ver <code class="docutils literal notranslate"><span class="pre">batch</span></code> en <a class="reference internal" href="ApendiceC.html#c-2"><span class="std std-ref">C.2 Opciones Iniciales</span></a>).</p>
<p>Emacs nunca usa <code class="docutils literal notranslate"><span class="pre">fsync</span></code> cuando escribe archivos auto-guardados, ya que de todas formas estos archivos pueden perder datos.</p>
</section>
<section id="proteccion-contra-la-edicion-simultanea">
<h3>19.3.4 Protección contra la Edición Simultánea<a class="headerlink" href="#proteccion-contra-la-edicion-simultanea" title="Link to this heading"></a></h3>
<span id="id8"></span><h3>19.3.4 Protección contra la Edición Simultánea<a class="headerlink" href="#proteccion-contra-la-edicion-simultanea" title="Link to this heading"></a></h3>
<p>La edición simultánea se produce cuando dos Usuarios visitan el mismo archivo, ambos realizan cambios y los guardan. Si no se informa a nadie de que esto está ocurriendo, cualquiera de ellos que guarde primero se encontrará más tarde con que sus cambios se han perdido.</p>
<p>En algunos sistemas, Emacs se da cuenta inmediatamente cuando el segundo Usuario empieza a cambiar el archivo, e inmediatamente emite un aviso. En todos los sistemas, Emacs comprueba 25cuando guarda el archivo, y avisa si está a punto de sobrescribir los cambios de otro Usuario. Puede evitar la pérdida del trabajo del otro Participante tomando las medidas de corrección adecuada en lugar de guardar el archivo.</p>
<p>Cuando se hace la primera modificación en un búfer de Emacs que está visitando un archivo, éste registra que el archivo está bloqueado por Usted. (Lo hace creando un enlace simbólico <a class="footnote-reference brackets" href="#id5" id="id4" role="doc-noteref"><span class="fn-bracket">[</span>7<span class="fn-bracket">]</span></a> especialmente nombrado con contenidos especiales en el mismo directorio. Ver <strong>Bloqueo de Archivos</strong> en el Manual Lisp, para más detalles). Emacs elimina el bloqueo cuando guarda los ncambios. La idea es que el archivo esté bloqueado siempre que un búfer de Emacs que lo visite tenga cambios sin guardar.</p>
<p>En algunos sistemas, Emacs se da cuenta inmediatamente cuando el segundo Usuario empieza a cambiar el archivo, e inmediatamente emite un aviso. En todos los sistemas, Emacs comprueba cuando guarda el archivo, y avisa si está a punto de sobrescribir los cambios de otro Usuario. Puede evitar la pérdida del trabajo del otro Participante tomando las medidas de corrección adecuada en lugar de guardar el archivo.</p>
<p>Cuando se hace la primera modificación en un búfer de Emacs que está visitando un archivo, éste registra que el archivo está <em>bloqueado</em> por Usted. (Lo hace creando un enlace simbólico <a class="footnote-reference brackets" href="#id10" id="id9" role="doc-noteref"><span class="fn-bracket">[</span>7<span class="fn-bracket">]</span></a> especialmente nombrado con contenidos especiales en el mismo directorio. Ver <strong>Bloqueo de Archivos</strong> en el Manual Lisp, para más detalles). Emacs elimina el bloqueo cuando guarda los cambios. La idea es que el archivo esté bloqueado siempre que un búfer de Emacs que lo visite tenga cambios sin guardar.</p>
<p>Puede evitar la creación de archivos de bloqueo estableciendo la variable <code class="docutils literal notranslate"><span class="pre">create-lockfiles</span></code> a <code class="docutils literal notranslate"><span class="pre">nil</span></code>. <strong>Precaución</strong>: al hacerlo perderá las ventajas que proporciona esta función. También puede controlar dónde se escriben los archivos de bloqueo utilizando la variable <code class="docutils literal notranslate"><span class="pre">lock-file-name-transforms</span></code>.</p>
<p>Si empieza a modificar el búfer mientras el archivo visitado está bloqueado por otra Persona, esto constituye una colisión. Cuando Emacs detecta una colisión, le pregunta qué hacer, llamando a la función Lisp <code class="docutils literal notranslate"><span class="pre">ask-user-about-lock</span></code>. Puede redefinir esta función para personalizarla. La definición estándar de esta función le hace una pregunta y acepta tres posibles respuestas:</p>
<dl class="simple">
@ -447,12 +441,12 @@ 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 <strong>Comparación de Archivos</strong>.</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">
<aside class="footnote brackets" id="id5" role="doc-footnote">
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id4">7</a><span class="fn-bracket">]</span></span>
<aside class="footnote brackets" id="id10" role="doc-footnote">
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id9">7</a><span class="fn-bracket">]</span></span>
<p>Si su sistema de archivos no admite enlaces simbólicos, se usa un archivo normal.</p>
</aside>
</aside>
@ -502,22 +496,22 @@ copiar.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Time</span><span class="o">-</span><span class="n">stamp</span><span class="p">:</span> <span class="s2">&quot; &quot;</span>
</pre></div>
</div>
<p>A continuación, añada la función <code class="docutils literal notranslate"><span class="pre">time-stamp</span></code> al gancho <code class="docutils literal notranslate"><span class="pre">before-save-hook</span></code> (véase <strong>Ganchos</strong>). Cuando guarde el archivo, esta función actualizará automáticamente la marca de tiempo con la fecha y hora actuales. También puede usar el comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">time-stamp</span></code> para actualizar la marca de tiempo manualmente. Por defecto, la marca de tiempo se formatea de acuerdo con su configuración regional (consulte <strong>Variables de Entorno</strong>) y zona horaria (consulte <strong>Hora del Día</strong> en el Manual de Referencia de Emacs Lisp). Para personalizaciones, vea el grupo Personalizar Marca de Tiempo.</p>
<p>A continuación, añada la función <code class="docutils literal notranslate"><span class="pre">time-stamp</span></code> al gancho <code class="docutils literal notranslate"><span class="pre">before-save-hook</span></code> (véase <a class="reference internal" href="50_Personlzc.html#id6"><span class="std std-ref">50.2.2 Ganchos (Hooks)</span></a>). Cuando guarde el archivo, esta función actualizará automáticamente la marca de tiempo con la fecha y hora actuales. También puede usar el comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">time-stamp</span></code> para actualizar la marca de tiempo manualmente. Por defecto, la marca de tiempo se formatea de acuerdo con su configuración regional (consulte <a class="reference internal" href="50_Personlzc.html#id24"><span class="std std-ref">50.4. El Archivo de Inicialización de Emacs</span></a>) y zona horaria (consulte <strong>Hora del Día</strong> en el Manual de Referencia de Emacs Lisp). Para personalizaciones, vea el grupo Personalizar Marca de Tiempo.</p>
</section>
</section>
<section id="revertir-un-bufer">
<span id="id6"></span><h2>19.4 Revertir un Búfer<a class="headerlink" href="#revertir-un-bufer" title="Link to this heading"></a></h2>
<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="id7"></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>
<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>
<p>Un búfer puede desincronizarse con respecto a su archivo visitado en disco si ese archivo es modificado por otro programa. Para mantenerlo actualizado, puede activar el modo Auto Revert 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">auto-revert-mode</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">auto-revert-mode</span></code>). Esto revierte automáticamente el búfer cuando su archivo visitado cambia en el disco. Para hacer lo mismo con todos los búferes de archivos, 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">global-auto-revert-mode</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">global-auto-revert-mode</span></code>) para activar el modo de Reversión Automática Global.</p>
<p>La reversión automática no revertirá un búfer si tiene cambios sin guardar, o si su archivo en el disco se borra o cambia de nombre.</p>
<p>Uno de los usos del modo Auto Revert es «seguir» un archivo, como un registro del sistema, para que los cambios realizados en ese archivo por otros programas se muestren continuamente. Para ello, basta con mover el punto al final del búfer, y permanecerá allí mientras cambia el contenido del archivo. Sin embargo, si está seguro de que el archivo sólo cambiará creciendo al final, use en su lugar el modo Cola de Reversión Automática (<code class="docutils literal notranslate"><span class="pre">auto-revert-tail-mode</span></code>). Es más eficiente para esto. El modo Auto Revert Tail también funciona para archivos remotos.</p>
@ -526,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>
@ -538,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">
@ -549,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">
<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>
<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 <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>
@ -598,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>
@ -619,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>
@ -634,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">
<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>
@ -701,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>
@ -743,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">
@ -755,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>
@ -781,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">
<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">
<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>
@ -800,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="id8"></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>
@ -826,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">
<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>
@ -882,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="id9"></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.51
Traducción Revisón: 1.56
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -221,7 +221,7 @@
<p><code class="docutils literal notranslate"><span class="pre">list-buffers</span></code> omite los búferes cuyos nombres comienzan con un espacio, a menos que visiten archivos: tales búferes son usados internamente por Emacs.</p>
</section>
<section id="operaciones-varias-del-bufer">
<h2>20.3 Operaciones Varias del Búfer<a class="headerlink" href="#operaciones-varias-del-bufer" title="Link to this heading"></a></h2>
<span id="id3"></span><h2>20.3 Operaciones Varias del Búfer<a class="headerlink" href="#operaciones-varias-del-bufer" title="Link to this heading"></a></h2>
<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">q</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-q</span></code>)</p>
<blockquote>
<div><p>Conmuta el estado de sólo lectura del búfer (<code class="docutils literal notranslate"><span class="pre">read-only-mode</span></code>, modo de sólo lectura).</p>
@ -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">
<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="id3"></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.51
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.51
Traducción Revisón: 1.56
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -163,7 +163,7 @@
<p>Cuando Emacs se inicia en una pantalla gráfica, por ejemplo, en el sistema X Window, ocupa una región de pantalla gráfica a nivel de sistema. En este manual, llamamos a esto <em>marco</em>, reservando la palabra «ventana» para la parte del marco usada para mostrar un búfer. Un marco contiene inicialmente una ventana, pero puede subdividirse en múltiples ventanas (ver <a class="reference internal" href="21_VariasVentanas.html#id1"><span class="std std-ref">21 Varias Ventanas</span></a>). Normalmente, un marco también contiene una barra de menús, una barra de herramientas y un área de eco.</p>
<p>También puede crear marcos adicionales (véase <a class="reference internal" href="#id5"><span class="std std-ref">22.6 Creación de Marcos</span></a> Creación de Marcos). Todos los marcos creados en la misma sesión de Emacs tienen acceso a los mismos búferes subyacentes y otros datos. Por ejemplo, si un búfer está siendo mostrado en más de un marco, cualquier cambio hecho en él en un marco se muestra inmediatamente en los otros marcos también.</p>
<p>Tecleando <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">c</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-c</span></code>) se cierran todos los marcos de la pantalla actual, y finaliza la sesión Emacs si no tiene marcos abiertos en ninguna otra pantalla (ver <a class="reference internal" href="../07_SalirDeEmacs.html#id1"><span class="std std-ref">7 Cómo Salir de Emacs</span></a> Salir de Emacs). Para cerrar sólo el marco seleccionado, teclee <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">5</kbd><kbd class="kbd docutils literal notranslate">0</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">5</span> <span class="pre">0</span></code>, cero, no o).</p>
<p>Este capítulo describe las características de Emacs específicas de las pantallas gráficas (particularmente los comandos del ratón), y las características para gestionar múltiples marcos. En terminales de texto, muchas de estas características no están disponibles. Sin embargo, todavía es posible crear múltiples marcos en terminales de texto; tales marcos se muestran de uno en uno, llenando toda la pantalla del terminal (ver <a class="reference internal" href="#id17"><span class="std std-ref">22.21 Terminales sin Ventana</span></a> Terminales Sin Ventana). También es posible usar el ratón en algunos terminales de texto (véase <a class="reference internal" href="12_LaMarca-y-LaRegion.html#id5"><span class="std std-ref">12.2 Comandos para Marcar Objetos Textuales</span></a> Uso del Ratón en Terminales de Texto, para hacerlo en sistemas GNU y Unix; y véase <strong>Uso del Ratón en MS-DOS</strong>, para hacerlo en MS-DOS). Todos los terminales de texto admiten menús.</p>
<p>Este capítulo describe las características de Emacs específicas de las pantallas gráficas (particularmente los comandos del ratón), y las características para gestionar múltiples marcos. En terminales de texto, muchas de estas características no están disponibles. Sin embargo, todavía es posible crear múltiples marcos en terminales de texto; tales marcos se muestran de uno en uno, llenando toda la pantalla del terminal (ver <a class="reference internal" href="#id19"><span class="std std-ref">22.21 Terminales sin Ventana</span></a> Terminales Sin Ventana). También es posible usar el ratón en algunos terminales de texto (véase <a class="reference internal" href="12_LaMarca-y-LaRegion.html#id5"><span class="std std-ref">12.2 Comandos para Marcar Objetos Textuales</span></a> Uso del Ratón en Terminales de Texto, para hacerlo en sistemas GNU y Unix; y véase <strong>Uso del Ratón en MS-DOS</strong>, para hacerlo en MS-DOS). Todos los terminales de texto admiten menús.</p>
<section id="comandos-del-raton-para-edicion">
<span id="id2"></span><h2>22.1 Comandos del Ratón para Edición<a class="headerlink" href="#comandos-del-raton-para-edicion" title="Link to this heading"></a></h2>
<p><code class="docutils literal notranslate"><span class="pre">ratón-1</span></code></p>
@ -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#id9"><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#id3"><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>
@ -281,7 +281,7 @@ elementos que estarían presentes en la barra de menús -no sólo los específic
<section id="comandos-del-raton-en-la-linea-de-modo">
<span id="id4"></span><h2>22.5 Comandos del Ratón en la Línea de Modo<a class="headerlink" href="#comandos-del-raton-en-la-linea-de-modo" title="Link to this heading"></a></h2>
<p>Puede usar los clics del ratón en las líneas de modo de ventana para seleccionar y manipularlas.</p>
<p>Algunas áreas de la línea de modo, como el nombre del búfer y los nombres de los modos mayor y menor, tienen sus propios enlaces especiales del ratón. Estas áreas se resaltan cuando se mantiene el ratón sobre ellas, y se mostrará información sobre los enlaces especiales (ver <a class="reference internal" href="#id16"><span class="std std-ref">22.19 Sugerencias sobre Herramientas (Tooltips)</span></a>). Los comandos de esta sección no se aplican en esas áreas.</p>
<p>Algunas áreas de la línea de modo, como el nombre del búfer y los nombres de los modos mayor y menor, tienen sus propios enlaces especiales del ratón. Estas áreas se resaltan cuando se mantiene el ratón sobre ellas, y se mostrará información sobre los enlaces especiales (ver <a class="reference internal" href="#id18"><span class="std std-ref">22.19 Sugerencias sobre Herramientas (Tooltips)</span></a>). Los comandos de esta sección no se aplican en esas áreas.</p>
<p><code class="docutils literal notranslate"><span class="pre">ratón-1</span></code></p>
<blockquote>
<div><p><code class="docutils literal notranslate"><span class="pre">ratón-1</span></code> sobre una línea de modo selecciona la ventana a la que pertenece. Arrastrando <code class="docutils literal notranslate"><span class="pre">ratón-1</span></code> sobre la línea de modo, puede moverla, cambiando así la altura de las ventanas por
@ -590,7 +590,7 @@ xlsfonts -fn “<em>-</em>-<em>-</em>-<em>-</em>-<em>-</em>-<em>-</em>-<em>-c</e
<p>Para más detalles sobre los divisores de ventanas, véase Divisores de Ventanas en el Manual de Referencia de Emacs Lisp.</p>
</section>
<section id="arrastrar-y-soltar">
<h2>22.14 Arrastrar y Soltar<a class="headerlink" href="#arrastrar-y-soltar" title="Link to this heading"></a></h2>
<span id="id13"></span><h2>22.14 Arrastrar y Soltar<a class="headerlink" href="#arrastrar-y-soltar" title="Link to this heading"></a></h2>
<p>En la mayoría de los entornos gráficos de escritorio, Emacs tiene soporte básico para operaciones de arrastrar y soltar. Por ejemplo, soltar texto sobre un marco Emacs inserta el texto donde se suelta. Soltar un archivo en un marco de Emacs visita ese archivo. Como caso especial, soltar el archivo en un búfer Dired mueve o copia el archivo (según las convenciones de la aplicación de la que procede) en el directorio mostrado en ese búfer.</p>
<p>Al soltar un archivo, normalmente se visita en la ventana en la que se suelta. Si prefiere visitar el archivo en una nueva ventana en estos casos, personalice la variable dnd-open-file-other-window.</p>
<p>Actualmente se soportan los protocolos de arrastrar y soltar XDND y Motif, y el antiguo protocolo KDE 1.x.</p>
@ -601,13 +601,13 @@ xlsfonts -fn “<em>-</em>-<em>-</em>-<em>-</em>-<em>-</em>-<em>-</em>-<em>-c</e
<p>En el sistema de ventanas X, algunos programas pueden soltar archivos en Emacs, esperando que este los guarde. Normalmente, el Editor preguntará por un nombre de archivo bajo el cual el archivo será guardado, y luego abrirá el archivo, pero ese comportamiento puede ser cambiado cambiando la variable x-dnd-direct-save-function. Ver Arrastrar y Soltar en el Manual de Referencia de Emacs Lisp.</p>
</section>
<section id="barras-de-menus">
<span id="id13"></span><h2>22.15 Barras de Menús<a class="headerlink" href="#barras-de-menus" title="Link to this heading"></a></h2>
<span id="id14"></span><h2>22.15 Barras de Menús<a class="headerlink" href="#barras-de-menus" title="Link to this heading"></a></h2>
<p>Puede usar la barra de menús con M-x menu-bar-mode. Sin argumento, este comando activa el modo Menu Bar (Barra de Menú), un modo global menor. Con un argumento, el comando activa el modo Barra de Menú si el argumento es positivo, lo desactiva si el argumento no es positivo. Para controlar el uso de dicha barra al inicio, personalice la variable menu-bar-mode.</p>
<p>Los Usuarios expertos a menudo desactivan la barra de menú, especialmente en terminales de texto, donde esto hace que haya una línea adicional disponible para texto. Si la barra de menús está desactivada, puede abrir un menú con su contenido con C-ratón-3 en una pantalla que admita menús emergentes. O puede activar el modo menú contextual y personalizar la variable context-menu-functions para que aparezca un menú contextual con mouse-3. Ver Clics del Ratón para Menús.</p>
<p>Consulte La Barra de Menús, para obtener información sobre cómo invocar comandos con la barra de menús. Consulte Opciones y Recursos X, para saber cómo personalizar el aspecto visual de los menús de la barra de menús.</p>
</section>
<section id="barras-de-herramientas">
<span id="id14"></span><h2>22.16. Barras de Herramientas<a class="headerlink" href="#barras-de-herramientas" title="Link to this heading"></a></h2>
<span id="id15"></span><h2>22.16. Barras de Herramientas<a class="headerlink" href="#barras-de-herramientas" title="Link to this heading"></a></h2>
<p>En las pantallas gráficas, Emacs pone una barra de herramientas en la parte superior de cada marco, justo debajo de la barra de menú. Es una fila de iconos sobre los que puede pulsar con el ratón para invocar varios comandos.</p>
<p>La barra de herramientas global (por defecto) contiene comandos generales. Algunos modos principales definen sus propias barras de herramientas; siempre que haya un búfer con un modo principal de este tipo, la barra de herramientas del modo sustituye a la barra de herramientas global.</p>
<p>Para usar la barra de herramientas, escriba M-x tool-bar-mode. Este comando se aplica a todos los marcos, incluidos los que aún no se han creado. Para controlar el uso de las barras de herramientas al inicio, personalice la variable tool-bar-mode.</p>
@ -616,7 +616,7 @@ xlsfonts -fn “<em>-</em>-<em>-</em>-<em>-</em>-<em>-</em>-<em>-</em>-<em>-c</e
<p>Las construcciones NS consideran la barra de herramientas como una decoración de la ventana, y por lo tanto no la muestran cuando una ventana no está decorada. Ver Parámetros de Marco en el Manual de Referencia de Emacs Lisp. En macOS la barra de herramientas se oculta cuando el marco se pone a pantalla completa, pero puede mostrarse moviendo el puntero del ratón a la parte superior de la pantalla.</p>
</section>
<section id="barras-de-pestanas">
<span id="id15"></span><h2>22.17 Barras de Pestañas<a class="headerlink" href="#barras-de-pestanas" title="Link to this heading"></a></h2>
<span id="id16"></span><h2>22.17 Barras de Pestañas<a class="headerlink" href="#barras-de-pestanas" title="Link to this heading"></a></h2>
<p>En pantallas gráficas y en terminales de texto, Emacs puede mostrar opcionalmente una Barra de Pestañas en la parte superior de cada marco, justo debajo de la barra de menús (ver Barras de Menús) y encima o debajo de la barra de herramientas (ver Barras de Herramientas) dependiendo de la variable tab-bar-position. La barra de pestañas es una fila de pestañas, botones que puede pulsar para cambiar entre configuraciones de ventana.</p>
<p>Cada pestaña de la barra de pestañas representa una configuración de ventana persistente con nombre de su marco, es decir, cómo se divide ese marco en ventanas y qué búfer se muestra en cada ventana. El nombre de la pestaña se compone de la lista de nombres de los búferes que se muestran en las ventanas de esa configuración de ventana. Al hacer clic en la pestaña, se pasa a la configuración de ventanas registrada por la pestaña; se trata de una configuración de ventanas y búferes que se usaba anteriormente en el marco cuando esa pestaña era la pestaña actual.</p>
<p>Si está usando la librería del escritorio para guardar y restaurar sus sesiones (vea Guardar Sesiones de Emacs), las pestañas de la Barra de Pestañas se graban en el archivo del escritorio, junto con sus configuraciones de ventana asociadas, y estarán disponibles después de restaurar la sesión.</p>
@ -697,14 +697,14 @@ mueve n posiciones a la izquierda.</p>
<p>Es posible personalizar los elementos mostrados en la barra de pestañas mediante la opción de Usuario tab-bar-format.</p>
</section>
<section id="uso-de-cuadros-de-dialogo">
<h2>22.18 Uso de Cuadros de Diálogo<a class="headerlink" href="#uso-de-cuadros-de-dialogo" title="Link to this heading"></a></h2>
<span id="id17"></span><h2>22.18 Uso de Cuadros de Diálogo<a class="headerlink" href="#uso-de-cuadros-de-dialogo" title="Link to this heading"></a></h2>
<p>Un cuadro de diálogo es un tipo especial de menú para hacerle una pregunta de sí o no o alguna otra pregunta especial. Muchos comandos de Emacs usan una caja de diálogo para hacer una pregunta de sí o no, si usó el ratón para invocar el comando que le llevó a la pregunta.</p>
<p>Para deshabilitar el uso de cuadros de diálogo, cambia la variable use-dialog-box a nil. En ese caso, Emacs siempre realiza preguntas del tipo yes-or-not (sí-o-no) usando el área de eco y la entrada del teclado. Esta variable también controla si usar ventanas de selección de archivos (pero éstas no están soportadas en todas las plataformas).</p>
<p>Una ventana de selección de archivos es un tipo especial de cuadro de diálogo para pedir nombres de archivo. Puede personalizar la variable use-file-dialog para suprimir el uso de ventanas de selección de archivos, aunque siga queriendo otros tipos de cuadros de diálogo. Esta variable no tiene efecto si ha suprimido todos los cuadros de diálogo con la variable use-dialog-box.</p>
<p>Cuando Emacs se compila con soporte GTK+, usa el diálogo selector de archivos GTK+. Emacs añade un botón adicional a este diálogo, que puede usar para activar o desactivar la visualización de archivos ocultos (archivos que empiezan por un punto) en ese diálogo. Si desea que este botón esté activado por defecto, cambie la variable x-gtk-show-hidden-files a t. Además, Emacs añade texto de ayuda al diálogo selector de archivos GTK+; para desactivar este texto de ayuda, cambie la variable x-gtk-file-dialog-help-text a nil.</p>
</section>
<section id="sugerencias-sobre-herramientas-tooltips">
<span id="id16"></span><h2>22.19 Sugerencias sobre Herramientas (Tooltips)<a class="headerlink" href="#sugerencias-sobre-herramientas-tooltips" title="Link to this heading"></a></h2>
<span id="id18"></span><h2>22.19 Sugerencias sobre Herramientas (Tooltips)<a class="headerlink" href="#sugerencias-sobre-herramientas-tooltips" title="Link to this heading"></a></h2>
<p>Los tooltips son pequeños marcos especiales que muestran información de texto en la posición actual del ratón. Se activan cuando hay una pausa en el movimiento del ratón sobre algún fragmento significativo de texto en una ventana, o la línea de modo, o alguna otra parte del marco de Emacs como un botón de la barra de herramientas o un elemento de menú.</p>
<p>Puede alternar el uso de tooltips con el comando M-x tooltip-mode. Cuando el modo Tooltip está desactivado, el texto de ayuda se muestra en el área de eco en su lugar. Para controlar el uso de información sobre herramientas al inicio, personalice la variable tooltip-mode.</p>
<p>Las siguientes variables proporcionan opciones de personalización para la visualización de información sobre herramientas:</p>
@ -759,14 +759,14 @@ desplazado.</p>
<p>También puede usar el comando M-x mouse-avoidance-mode para activar el modo. Siempre que el modo Mouse Avoidance mueve el ratón, también levanta el marco.</p>
</section>
<section id="terminales-sin-ventana">
<span id="id17"></span><h2>22.21 Terminales sin Ventana<a class="headerlink" href="#terminales-sin-ventana" title="Link to this heading"></a></h2>
<span id="id19"></span><h2>22.21 Terminales sin Ventana<a class="headerlink" href="#terminales-sin-ventana" title="Link to this heading"></a></h2>
<p>En un terminal de texto, Emacs sólo puede mostrar un marco Emacs a la vez. Sin embargo, aún puede crear múltiples marcos Emacs, y cambiar entre ellos. Cambiar de marco en estos terminales es muy parecido a cambiar entre diferentes configuraciones de ventana.</p>
<p>Puede usar C-x 5 2 para crear un nuevo marco y cambiar a él; use C-x 5 o para recorrer los marcos existentes; use C-x 5 0 para borrar el marco actual.</p>
<p>Cada marco tiene un número para distinguirlo. Si su terminal sólo puede mostrar un marco a la vez, el número n del marco seleccionado aparece cerca del principio de la línea de modo, en la forma “Fn”.</p>
<p>Fn” es, de hecho, el nombre inicial del marco. Si lo desea, puede dar nombres más significativos a los marcos, y puede seleccionar un marco por su nombre. Use el comando M-x set-frame-name RET nombre RET para especificar un nuevo nombre para el marco seleccionado, y use M-x select-frame-by-name RET nombre RET para seleccionar un marco según su nombre. El nombre que especifique aparecerá en la línea de modo cuando se seleccione el marco.</p>
</section>
<section id="uso-del-raton-en-terminales-de-texto">
<span id="id18"></span><h2>22.22 Uso del Ratón en Terminales de Texto<a class="headerlink" href="#uso-del-raton-en-terminales-de-texto" title="Link to this heading"></a></h2>
<span id="id20"></span><h2>22.22 Uso del Ratón en Terminales de Texto<a class="headerlink" href="#uso-del-raton-en-terminales-de-texto" title="Link to this heading"></a></h2>
<p>Algunos terminales de texto soportan clics de ratón en la ventana del terminal.</p>
<p>En un emulador de terminal compatible con xterm, puede usar M-x xterm-mouse-mode para dar a Emacs control sobre usos simples del ratón - básicamente, sólo se soportan clics simples no modificados. Las nuevas versiones de xterm también soportan el seguimiento del ratón. La funcionalidad normal del ratón xterm para este tipo de clics sigue estando disponible manteniendo pulsada la tecla SHIFT al pulsar el botón del ratón. El modo Ratón de xterm es un modo menor global (ver Modos Menores). Repitiendo el comando se desactiva de nuevo el modo.</p>
<p>En la consola en GNU/Linux, puede usar M-x gpm-mouse-mode para habilitar el soporte de ratón. Debe tener el servidor gpm instalado y funcionando en su sistema para que esto funcione. Tenga en cuenta que cuando este modo está activado, no puede usar el ratón para transferir texto entre Emacs y otros programas que usen GPM. Esto se debe a limitaciones en GPM y el kernel de Linux.</p>

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.51
Traducción Revisón: 1.56
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -508,7 +508,7 @@ en los sistemas Microsoft.9)</p>
<p>La variable locale-coding-system especifica un sistema de codificación a usar cuando se codifican y decodifican cadenas del sistema tales como mensajes de error del sistema y formatos format-time-string y marcas de tiempo. Ese sistema de codificación también puede usarse para decodificar entradas de teclado no ASCII en el sistema X Window y también se usará para codificar el texto enviado a la salida estándar y a los flujos de error en el modo por lotes. Debe elegir un sistema de codificación que sea compatible con la representación de texto del sistema subyacente, que normalmente se especifica mediante una de las variables de entorno LC_ALL, LC_CTYPE y LANG. (La primera, en el orden especificado anteriormente, cuyo valor no esté vacío es la que determina la representación de texto).</p>
</section>
<section id="sistemas-de-codificacion-de-nombres-de-archivos">
<h2>23.11 Sistemas de Codificación de Nombres de Archivos<a class="headerlink" href="#sistemas-de-codificacion-de-nombres-de-archivos" title="Link to this heading"></a></h2>
<span id="id12"></span><h2>23.11 Sistemas de Codificación de Nombres de Archivos<a class="headerlink" href="#sistemas-de-codificacion-de-nombres-de-archivos" title="Link to this heading"></a></h2>
<dl class="simple">
<dt>C-x RET F coding RET</dt><dd><p>Usa el sistema de codificación para codificar y descodificar nombres de archivo (set-file-name-coding-system).</p>
</dd>
@ -526,7 +526,7 @@ en los sistemas Microsoft.9)</p>
<p>Si el método de entrada no anuncia correctamente el sistema de codificación que usa para codificar el texto, entonces el sistema de codificación usado por Emacs para decodificar el texto de los métodos de entrada debe ser especificado manualmente. El valor de la variable x-input-coding-system, cuando se establece en un símbolo, se usa incondicionalmente como el sistema de codificación usado para decodificar la entrada del teclado desde los métodos de entrada.</p>
</section>
<section id="sistemas-de-codificacion-para-e-s-de-terminal">
<span id="id12"></span><h2>23.13 Sistemas de Codificación para E/S de Terminal<a class="headerlink" href="#sistemas-de-codificacion-para-e-s-de-terminal" title="Link to this heading"></a></h2>
<span id="id13"></span><h2>23.13 Sistemas de Codificación para E/S de Terminal<a class="headerlink" href="#sistemas-de-codificacion-para-e-s-de-terminal" title="Link to this heading"></a></h2>
<dl class="simple">
<dt>C-x RET t coding RET</dt><dd><p>Usa la codificación del sistema para la salida del terminal (set-terminal-coding-system).</p>
</dd>
@ -569,7 +569,7 @@ xset fp rehash</p>
<h2>23.15. Definir Juegos de Fuentes<a class="headerlink" href="#definir-juegos-de-fuentes" title="Link to this heading"></a></h2>
<p>Cuando se ejecuta en X, Emacs crea automáticamente un juego de fuentes estándar de acuerdo con el valor de standard-fontset-spec. El nombre de este juego de fuentes es</p>
<blockquote>
<div><p>-<em>-fixed-medium-r-normal-</em>-16-<em>-</em>-<em>-</em>-<a href="#id13"><span class="problematic" id="id14">*</span></a>-fontset-standard</p>
<div><p>-<em>-fixed-medium-r-normal-</em>-16-<em>-</em>-<em>-</em>-<a href="#id14"><span class="problematic" id="id15">*</span></a>-fontset-standard</p>
</div></blockquote>
<p>o simplemente “fontset-standard” para abreviar.</p>
<p>En GNUstep y macOS, el conjunto de fuentes estándar se crea usando el valor de ns-standard-fontset-spec, y en MS Windows se crea usando el valor de w32-standard-fontset-spec.</p>
@ -596,11 +596,11 @@ xset fp rehash</p>
<p>Además, cuando varios campos consecutivos son comodines, Emacs los colapsa en un único comodín. Esto se hace para evitar usar fuentes autoescaladas. Las fuentes hechas escalando fuentes más grandes no son útiles para editar, y escalar una fuente más pequeña tampoco es útil, porque es mejor usar la fuente más pequeña en su propio tamaño, que es lo que hace Emacs.</p>
<p>Así, si fontpattern es</p>
<blockquote>
<div><p>-<em>-fixed-medium-r-normal-</em>-24-<em>-</em>-<em>-</em>-<a href="#id15"><span class="problematic" id="id16">*</span></a>-fontset-24</p>
<div><p>-<em>-fixed-medium-r-normal-</em>-24-<em>-</em>-<em>-</em>-<a href="#id16"><span class="problematic" id="id17">*</span></a>-fontset-24</p>
</div></blockquote>
<p>la especificación de la fuente para los caracteres ASCII sería la siguiente:</p>
<blockquote>
<div><p>-<em>-fixed-medium-r-normal-</em>-24-<a href="#id17"><span class="problematic" id="id18">*</span></a>-ISO8859-1</p>
<div><p>-<em>-fixed-medium-r-normal-</em>-24-<a href="#id18"><span class="problematic" id="id19">*</span></a>-ISO8859-1</p>
</div></blockquote>
<p>y la especificación de la fuente para los caracteres chinos GB2312 sería ésta:</p>
<blockquote>
@ -609,7 +609,7 @@ xset fp rehash</p>
<p>Es posible que no tenga ninguna fuente china que coincida con la especificación de fuentes anterior. La mayoría de las distribuciones X sólo incluyen fuentes chinas que tienen “song ti” o “fangsong ti” en el campo de familia. En tal caso, “Fontset-n” puede especificarse como:</p>
<blockquote>
<div><dl class="simple">
<dt>Emacs.Fontset-0: -<em>-fixed-medium-r-normal-</em>-24-<em>-</em>-<em>-</em>-<a href="#id19"><span class="problematic" id="id20">*</span></a>-fontset-24,</dt><dd><p>chinese-gb2312:-<em>-</em>-medium-r-normal-<em>-24-</em>-gb2312*-*</p>
<dt>Emacs.Fontset-0: -<em>-fixed-medium-r-normal-</em>-24-<em>-</em>-<em>-</em>-<a href="#id20"><span class="problematic" id="id21">*</span></a>-fontset-24,</dt><dd><p>chinese-gb2312:-<em>-</em>-medium-r-normal-<em>-24-</em>-gb2312*-*</p>
</dd>
</dl>
</div></blockquote>
@ -738,7 +738,7 @@ componer con el carácter siguiente, una vez cargado iso-transl.</p>
<p>Para averiguar a qué juego de caracteres pertenece un carácter en el búfer, pon punto delante de él y teclea C-u C-x = (ver Introducción a los Juegos de Caracteres Internacionales).</p>
</section>
<section id="edicion-bidireccional">
<span id="id21"></span><h2>23.20 Edición Bidireccional<a class="headerlink" href="#edicion-bidireccional" title="Link to this heading"></a></h2>
<span id="id22"></span><h2>23.20 Edición Bidireccional<a class="headerlink" href="#edicion-bidireccional" title="Link to this heading"></a></h2>
<p>Emacs soporta la edición de texto escrito en alfabetos, como el árabe, el farsi y el hebreo, cuyo orden natural del texto horizontal es de derecha a izquierda. Sin embargo, los dígitos y el texto latino incrustado en estos alfabetos se muestran de izquierda a derecha. Tampoco es infrecuente que haya pequeñas porciones de texto en árabe o hebreo incrustadas en un documento que, por lo demás, es latino; por ejemplo, como comentarios y cadenas en el archivo fuente de un programa. Por estas razones, el texto que usa estos alfabetos es bidireccional: una mezcla de caracteres de izquierda a derecha y de derecha a izquierda.</p>
<p>Esta sección describe las facilidades y opciones proporcionadas por Emacs para editar texto bidireccional.</p>
<p>Emacs almacena el texto de derecha a izquierda y bidireccional en el llamado orden lógico (o de lectura): la posición del búfer o cadena del primer carácter que se lee precede a la del siguiente carácter. El reordenamiento del texto bidireccional en el orden visual se produce en el momento de la visualización. Como resultado, las posiciones de los caracteres ya no aumentan monotónicamente con sus posiciones en pantalla. Emacs implementa el Algoritmo Bidireccional Unicode (UBA) descrito en el Anexo #9 del Estándar Unicode, para la reordenación del texto bidireccional en pantalla. Se desvía del UBA sólo en cómo se muestran las líneas de continuación cuando la dirección del texto es opuesta a la dirección del párrafo base, por ejemplo, cuando una línea larga de texto en inglés aparece en un párrafo de derecha a izquierda.</p>

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.51
Traducción Revisón: 1.56
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -247,10 +247,10 @@ habitual.</p>
</div></blockquote>
</section>
<section id="eleccion-de-los-modos-de-archivo">
<h2>24.3 Elección de los Modos de Archivo<a class="headerlink" href="#eleccion-de-los-modos-de-archivo" title="Link to this heading"></a></h2>
<span id="id8"></span><h2>24.3 Elección de los Modos de Archivo<a class="headerlink" href="#eleccion-de-los-modos-de-archivo" title="Link to this heading"></a></h2>
<p>Cuando visita un archivo, Emacs elige un modo principal automáticamente. Normalmente, hace la elección basándose en el nombre del archivo, por ejemplo, los archivos cuyos nombres terminan en “.c” se editan normalmente en modo C-pero a veces elige el modo principal basándose en un texto especial en el archivo. Este texto especial también puede usarse para habilitar modos menores locales al búfer.</p>
<p>Este es el procedimiento exacto:</p>
<p>Primero, Emacs comprueba si el archivo contiene variables de modo local de archivo. Ver Variables Locales en Archivos. Si hay una variable local de archivo que especifica un modo mayor, entonces Emacs usa ese modo mayor, ignorando todos los demás criterios. Hay varios métodos para especificar un modo principal usando una variable local de archivo; el más simple es poner el nombre del modo en la primera línea no en blanco, precedida y seguida por “-<a href="#id8"><span class="problematic" id="id9">*</span></a>-”. También puede aparecer otro texto en la línea. Por ejemplo,</p>
<p>Primero, Emacs comprueba si el archivo contiene variables de modo local de archivo. Ver Variables Locales en Archivos. Si hay una variable local de archivo que especifica un modo mayor, entonces Emacs usa ese modo mayor, ignorando todos los demás criterios. Hay varios métodos para especificar un modo principal usando una variable local de archivo; el más simple es poner el nombre del modo en la primera línea no en blanco, precedida y seguida por “-<a href="#id9"><span class="problematic" id="id10">*</span></a>-”. También puede aparecer otro texto en la línea. Por ejemplo,</p>
<blockquote>
<div><p>; -<em>-Lisp-</em>-</p>
</div></blockquote>

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.51
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.51
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">
<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.51
Traducción Revisón: 1.56
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -239,7 +239,7 @@
<p>Imenu proporciona la información para guiar el modo Which Function (ver Modo Qué Función (Which Function Mode)). El Speedbar también puede usarlo (ver Marcos Speedbar).</p>
</section>
<section id="modo-que-funcion-which-function-mode">
<h3>27.2.4 Modo Qué función (Which Function Mode)<a class="headerlink" href="#modo-que-funcion-which-function-mode" title="Link to this heading"></a></h3>
<span id="id4"></span><h3>27.2.4 Modo Qué función (Which Function Mode)<a class="headerlink" href="#modo-que-funcion-which-function-mode" title="Link to this heading"></a></h3>
<p>El modo Which Function es un modo menor global (véase Modos Menores) que muestra el nombre de la función actual en la línea de modo, actualizándolo a medida que se desplaza por el búfer.</p>
<p>Para activar o desactivar el modo Which Function, use el comando M-x which-function-mode. El modo Which Function es un modo global menor. Por defecto, tiene efecto en todos los modos mayores que saben cómo soportarlo (es decir, todos los modos mayores que soportan Imenu). Puede restringirlo a una lista específica de modos principales cambiando el valor de la variable which-func-modes de t (que significa soportar todos los modos principales disponibles) a una lista de nombres de modos principales.</p>
</section>
@ -338,12 +338,12 @@ equilibrada que comienza en la línea actual, si la línea actual necesita reent
<p>Como alternativa a especificar un estilo, puedes decirle a Emacs que adivine un estilo tecleando M-x c-guess en un búfer de código de ejemplo. Luego puede aplicar el estilo adivinado a otros búferes con M-x c-guess-install. Ver Adivinar el Estilo en el Manual del Modo CC, para más detalles.</p>
</section>
<section id="comandos-para-la-edicion-con-parentesis">
<span id="id4"></span><h2>27.4 Comandos para la Edición con Paréntesis<a class="headerlink" href="#comandos-para-la-edicion-con-parentesis" title="Link to this heading"></a></h2>
<span id="id5"></span><h2>27.4 Comandos para la Edición con Paréntesis<a class="headerlink" href="#comandos-para-la-edicion-con-parentesis" title="Link to this heading"></a></h2>
<p>Esta sección describe los comandos y características que aprovechan la estructura de paréntesis en un programa, o le ayudan a mantenerla equilibrada.</p>
<p>Cuando se habla de estas facilidades, el término «paréntesis» también incluye llaves, corchetes, o cualquier delimitador que se defina para coincidir en pares. El modo principal controla qué delimitadores son significativos, a través de la tabla de sintaxis (véase Tablas de Sintaxis en El Manual de Referencia de Emacs Lisp). En Lisp, sólo cuentan los paréntesis; en C, estos comandos se aplican también a llaves y corchetes.</p>
<p>Puede usar M-x check-parens para encontrar cualquier paréntesis y comillas de cadena no balanceados en el búfer.</p>
<section id="expresiones-con-parentesis-equilibrados">
<span id="id5"></span><h3>27.4.1 Expresiones con Paréntesis Equilibrados<a class="headerlink" href="#expresiones-con-parentesis-equilibrados" title="Link to this heading"></a></h3>
<span id="id6"></span><h3>27.4.1 Expresiones con Paréntesis Equilibrados<a class="headerlink" href="#expresiones-con-parentesis-equilibrados" title="Link to this heading"></a></h3>
<p>Cada modo de lenguaje de programación tiene su propia definición de una expresión balanceada. Las expresiones balanceadas típicamente incluyen símbolos individuales, números y constantes de cadena, así como trozos de código encerrados en un par de delimitadores coincidentes. Los siguientes comandos tratan con expresiones balanceadas (en Emacs, tales expresiones se denominan internamente sexps14).</p>
<dl class="simple">
<dt>C-M-f</dt><dd><p>Avanza sobre una expresión equilibrada (forward-sexp).</p>
@ -430,7 +430,7 @@ pantalla.</p>
</section>
</section>
<section id="manipulacion-de-comentarios">
<span id="id6"></span><h2>27.5. Manipulación de Comentarios<a class="headerlink" href="#manipulacion-de-comentarios" title="Link to this heading"></a></h2>
<span id="id7"></span><h2>27.5. Manipulación de Comentarios<a class="headerlink" href="#manipulacion-de-comentarios" title="Link to this heading"></a></h2>
<p>Debido a que los comentarios son una parte tan importante de la programación, Emacs proporciona comandos especiales para editar e insertar comentarios. También puede revisar la ortografía de los comentarios con el modo Flyspell Prog (ver Revisar y Corregir la Ortografía).</p>
<p>Algunos modos principales tienen reglas especiales para sangrar diferentes tipos de comentarios. Por ejemplo, en el código Lisp, los comentarios que empiezan con dos puntos y coma tienen sangría como si fueran líneas de código, mientras que los que empiezan con tres puntos y coma se supone que están alineados con el margen izquierdo y se usan a menudo para seccionar. Emacs entiende estas convenciones; por ejemplo, si se escribe TAB en una línea de comentario, el comentario se sangrará a la posición adecuada.</p>
<blockquote>
@ -476,14 +476,14 @@ C-c C-c (in C-like modes)</p>
<p>Para modos similares a C, puede configurar el efecto exacto de M-; estableciendo las variables c-indent-comment-alist y c-indent-comments-syntactically-p. Por ejemplo, en una línea que termina en una llave de cierre, M-; pone el comentario un espacio después de la llave en lugar de en la columna-comentario. Para más detalles, consulte Comandos de Comentario en el Manual del Modo CC.</p>
<p>27.5.2 Varias Líneas de Comentarios</p>
<p>Si está escribiendo un comentario y desea continuarlo en otra línea, escriba M-j o C-M-j (default-indent-new-line). Esto rompe la línea actual e inserta los delimitadores de comentario y la sangría necesarios para continuar el comentario.</p>
<p>Para lenguajes con delimitadores de comentario de cierre (por ejemplo, “<a href="#id7"><span class="problematic" id="id8">*</span></a>/” en C), el comportamiento exacto de M-j depende del valor de la variable comment-multi-line. Si el valor es nulo, el comando cierra el comentario en la línea anterior e inicia un nuevo comentario en la nueva línea. En caso contrario, abre una nueva línea dentro de los delimitadores de comentario actuales.</p>
<p>Para lenguajes con delimitadores de comentario de cierre (por ejemplo, “<a href="#id8"><span class="problematic" id="id9">*</span></a>/” en C), el comportamiento exacto de M-j depende del valor de la variable comment-multi-line. Si el valor es nulo, el comando cierra el comentario en la línea anterior e inicia un nuevo comentario en la nueva línea. En caso contrario, abre una nueva línea dentro de los delimitadores de comentario actuales.</p>
<p>Cuando el modo Relleno automático (Auto Fill mode) está activado, pasar la columna de relleno mientras se escribe un comentario también continúa el comentario, del mismo modo que una invocación explícita de M-j.</p>
<p>Para convertir líneas existentes en líneas de comentario, use M-; con la región activa, o use M-x comment-region como se describe en la sección anterior.</p>
<p>Puede configurar el modo C para que cuando escriba una “/” al principio de una línea en un comentario de bloque multilínea, se cierre el comentario. Para ello, active la función de limpieza comment-close-slash. Vea Limpiezas en el Manual del Modo CC.</p>
<p>27.5.3 Opciones que Controlan los Comentarios</p>
<p>Como se mencionó en Comandos de comentario, cuando el comando M-j añade un comentario a una línea, intenta colocar el comentario entre las columnas especificadas por las variables locales del búfer comment-column (columna-comentario) y comment-fill-column (o si es nil, entonces el valor de fill-column, ver Comandos Explícitos de Relleno). Puede establecer el valor local o el valor por defecto de estas variables locales del búfer de la forma habitual (consulte Variables Locales). Alternativamente, puede teclear C-x ; (comment-set-column) para establecer el valor de comment-column en el búfer actual a la columna donde se encuentra actualmente el punto. C-u C-x ; establece la columna de comentario para que coincida con el último comentario antes del punto en el búfer, y luego hace un M-; para alinear el comentario de la línea actual bajo el anterior.</p>
<p>Los comandos de comentario reconocen los comentarios basándose en la expresión regular que es el valor de la variable comment-start-skip. Asegúrese de que esta expresión regular no coincide con la cadena nula. Puede coincidir con más que el delimitador de inicio de comentario en el sentido más estricto de la palabra; por ejemplo, en modo C el valor de la variable podría ser «/\*+[ t]*|//+[ t]*», que coincide con asteriscos y espacios extra después del propio “/<a href="#id9"><span class="problematic" id="id10">*</span></a>”, y acepta también comentarios estilo C++ (“//”). (Observe que “\' es necesario en la sintaxis Lisp para incluir un “' en la cadena, que es necesario para negar a la primera estrella su significado especial en la sintaxis expreg. Véase Barra Invertida en Expresiones Regulares).</p>
<p>Cuando un comando comment crea un nuevo comentario, inserta el valor de comment-start como delimitador de apertura del comentario. También inserta el valor de comment-end después del punto, como delimitador de cierre del comentario. Por ejemplo, en modo Lisp, comment-start es “»;»” y comment-end es «» (la cadena vacía). En modo C, comment-start es «/* « y comment-end es « <a href="#id11"><span class="problematic" id="id12">*</span></a>/».</p>
<p>Los comandos de comentario reconocen los comentarios basándose en la expresión regular que es el valor de la variable comment-start-skip. Asegúrese de que esta expresión regular no coincide con la cadena nula. Puede coincidir con más que el delimitador de inicio de comentario en el sentido más estricto de la palabra; por ejemplo, en modo C el valor de la variable podría ser «/\*+[ t]*|//+[ t]*», que coincide con asteriscos y espacios extra después del propio “/<a href="#id10"><span class="problematic" id="id11">*</span></a>”, y acepta también comentarios estilo C++ (“//”). (Observe que “\' es necesario en la sintaxis Lisp para incluir un “' en la cadena, que es necesario para negar a la primera estrella su significado especial en la sintaxis expreg. Véase Barra Invertida en Expresiones Regulares).</p>
<p>Cuando un comando comment crea un nuevo comentario, inserta el valor de comment-start como delimitador de apertura del comentario. También inserta el valor de comment-end después del punto, como delimitador de cierre del comentario. Por ejemplo, en modo Lisp, comment-start es “»;»” y comment-end es «» (la cadena vacía). En modo C, comment-start es «/* « y comment-end es « <a href="#id12"><span class="problematic" id="id13">*</span></a>/».</p>
<p>La variable comment-padding especifica una cadena que los comandos de comentario deben insertar entre el delimitador o delimitadores del comentario y el texto del comentario. El valor por defecto, “» «”, especifica un único espacio. Alternativamente, el valor puede ser un número, que especifica ese número de espacios, o nil, que significa ningún espacio.</p>
<p>La variable comment-multi-line controla cómo M-j y el modo Auto Fill continúan los comentarios en múltiples líneas. Véase Múltiples Líneas de Comentarios.</p>
<p>La variable comment-indent-function debe contener una función que será llamada para calcular la alineación de un comentario recién insertado o para alinear un comentario existente. Se establece de forma diferente en los distintos modos principales. La función se llama sin argumentos, pero con un punto al principio del comentario, o al final de una línea si se va a insertar un nuevo comentario. Debe devolver la columna en la que debe comenzar el comentario. Por ejemplo, la función por defecto basa su decisión en cuántos caracteres de comentario comienzan un comentario existente.</p>
@ -501,7 +501,7 @@ C-c C-c (in C-like modes)</p>
<p>Puede leer la página man de un comando del sistema operativo, función de biblioteca o llamada al sistema, con el comando M-x man. Esto solicita un tema, con completado (ver Completado), y ejecuta el programa man para formatear la página man correspondiente. Si el sistema lo permite, ejecuta man de forma asíncrona, para que pueda seguir editando mientras se formatea la página. El resultado va a un búfer llamado <em>Man topic</em>. Estos búferes usan un modo principal especial, el modo Man, que facilita el desplazamiento y el salto a otras páginas de manual. Para más detalles, teclee C-h m mientras se encuentre en un búfer en modo Man (man Mode).</p>
<p>Cada página del manual pertenece a una de las diez o más secciones, cada una de ellas nombrada por un dígito o por un dígito y una letra. A veces hay páginas del manual con el mismo nombre en diferentes secciones. Para leer una página del manual de una sección específica, escriba “topic(section)” o “section topic” cuando M-x man le pregunte por el tema. Por ejemplo, la página del manual de la función chmod de la biblioteca C está en la sección 2, pero hay un comando de shell con el mismo nombre, cuya página del manual está en la sección 1; para ver la primera, escriba M-x man RET chmod(2) RET.</p>
<p>Si no especifica una sección, M-x man normalmente muestra sólo la primera página man encontrada. En algunos sistemas, el programa man acepta una opción de línea de comandos “-a”, que le indica que muestre todas las páginas man del tema especificado. Para usar esta opción, cambie el valor de la variable Man-switches a “»-a»”. Entonces, en el búfer del modo Man, puede escribir M-n y M-p para cambiar entre páginas de manual de diferentes secciones. La línea de modo muestra cuántas páginas de manual hay disponibles.</p>
<p>Una forma alternativa de leer páginas de manual es el comando M-x woman. A diferencia de M-x man, no ejecuta ningún programa externo para formatear y mostrar las páginas de manual; el formateo lo hace Emacs, por lo que funciona en sistemas como MS-Windows donde el programa man puede no estar disponible. Pide una página man, y la muestra en un búfer llamado <a href="#id13"><span class="problematic" id="id14">*</span></a>WoMan section topic.</p>
<p>Una forma alternativa de leer páginas de manual es el comando M-x woman. A diferencia de M-x man, no ejecuta ningún programa externo para formatear y mostrar las páginas de manual; el formateo lo hace Emacs, por lo que funciona en sistemas como MS-Windows donde el programa man puede no estar disponible. Pide una página man, y la muestra en un búfer llamado <a href="#id14"><span class="problematic" id="id15">*</span></a>WoMan section topic.</p>
<p>M-x woman calcula la lista de completado de las páginas de manual la primera vez que se invoca el comando. Con un argumento numérico, vuelve a calcular esta lista; esto es útil si añade o elimina páginas de manual.</p>
<p>Si escribe el nombre de una página de manual y M-x woman encuentra que existen varias páginas de manual con el mismo nombre en diferentes secciones, aparece una ventana con posibles candidatos pidiéndole que elija uno de ellos.</p>
<p>Tenga en cuenta que M-x woman aún no soporta las últimas características de las páginas man modernas, por lo que recomendamos usar M-x man si está disponible en su sistema.</p>
@ -593,7 +593,7 @@ comentarios). El valor por defecto es code.</p>
</dl>
</section>
<section id="completado-de-nombres-de-simbolos">
<span id="id15"></span><h2>27.8 Completado de Nombres de Símbolos<a class="headerlink" href="#completado-de-nombres-de-simbolos" title="Link to this heading"></a></h2>
<span id="id16"></span><h2>27.8 Completado de Nombres de Símbolos<a class="headerlink" href="#completado-de-nombres-de-simbolos" title="Link to this heading"></a></h2>
<p>El completado se hace normalmente en el minibúfer (ver Completado), pero también puede completar nombres de símbolos en búferes Emacs ordinarios.</p>
<p>En la mayoría de los modos de lenguaje de programación, C-M-i (o M-TAB16) invoca el comando completion-at-point, que genera la lista de posibles terminaciones para el símbolo en el punto. Este comando usa las facilidades de soporte disponibles para obtener las terminaciones candidatas:</p>
<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, el comando intenta usar el servidor de idiomas correspondiente para producir la lista de candidatos a finalización. Véase Características de Eglot en Eglot: El cliente LSP de Emacs.</p>
@ -679,7 +679,7 @@ precedente. Con el argumento prefijo n, retrocede n - 1 sentencias.</p>
</section>
<section id="caracteres-c-electricos">
<h3>27.12.2 Caracteres C Eléctricos<a class="headerlink" href="#caracteres-c-electricos" title="Link to this heading"></a></h3>
<p>En modo C y modos relacionados, ciertos caracteres de impresión son eléctricos, además de insertarse a sí mismos, también reentintan la línea actual, y opcionalmente también insertan nuevas líneas. Los caracteres eléctricos son {, }, :, #, ;, ,, &lt;, &gt;, /, <a href="#id16"><span class="problematic" id="id17">*</span></a>, (, y ).</p>
<p>En modo C y modos relacionados, ciertos caracteres de impresión son eléctricos, además de insertarse a sí mismos, también reentintan la línea actual, y opcionalmente también insertan nuevas líneas. Los caracteres eléctricos son {, }, :, #, ;, ,, &lt;, &gt;, /, <a href="#id17"><span class="problematic" id="id18">*</span></a>, (, y ).</p>
<p>Puede que la sangría eléctrica le resulte incómoda si está editando código con sangría caótica. Si es nuevo en el modo CC, puede que le resulte desconcertante. Puede activar la acción eléctrica con el comando C-c C-l; cuando está activada, “/cl” aparece en la línea de modo después del nombre del modo (donde c, si está presente, es “*” o “/”, dependiendo de si el estilo de comentario es bloque o línea). Consulte Modos Menores en el Manual del Modo CC, para más información sobre los indicadores de línea de modo en el Modo CC.</p>
<dl class="simple">
<dt>C-c C-l</dt><dd><p>Alterna la acción eléctrica (c-toggle-electric-state). Con un argumento prefijo positivo, este comando activa la acción eléctrica, con uno negativo la desactiva.</p>
@ -716,7 +716,7 @@ desactiva si es negativo.</p>
<p>La variable c-hungry-delete-key controla si la función hungry-delete está activada.</p>
</section>
<section id="otros-comandos-para-el-modo-c">
<h3>27.12.4 Otros comandos para el Modo C<a class="headerlink" href="#otros-comandos-para-el-modo-c" title="Link to this heading"></a></h3>
<span id="id19"></span><h3>27.12.4 Otros comandos para el Modo C<a class="headerlink" href="#otros-comandos-para-el-modo-c" title="Link to this heading"></a></h3>
<dl>
<dt>M-x c-context-line-break</dt><dd><p>Este comando inserta un salto de línea y aplica a la nueva línea la sangría adecuada al contexto. En código normal, hace el trabajo de RET (newline, nueva línea), en una línea de
preprocesador C inserta adicionalmente un “' en el salto de línea, y dentro de los comentarios es como M-j (c-indent-new-comment-line).</p>

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.51
Traducción Revisón: 1.56
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -638,7 +638,7 @@ Véase Ejecutar un Lisp externo.</p>
</dl>
</section>
<section id="bibliotecas-de-codigo-lisp-para-emacs">
<h2>28.8 Bibliotecas de Código Lisp para Emacs<a class="headerlink" href="#bibliotecas-de-codigo-lisp-para-emacs" title="Link to this heading"></a></h2>
<span id="id7"></span><h2>28.8 Bibliotecas de Código Lisp para Emacs<a class="headerlink" href="#bibliotecas-de-codigo-lisp-para-emacs" title="Link to this heading"></a></h2>
<p>El código Lisp de Emacs se almacena en archivos cuyos nombres terminan convencionalmente en .el. Tales archivos se visitan automáticamente en el modo Emacs Lisp.</p>
<p>El código Emacs Lisp puede compilarse en código byte, que se carga más rápido, ocupa menos espacio y se ejecuta más rápido. Por convención, el código Emacs Lisp compilado va en un archivo separado cuyo nombre termina en “.elc”. Por ejemplo, el código compilado para foo.el va en foo.elc. Ver Compilación de Bytes en el Manual de Referencia de Emacs Lisp.</p>
<p>El código Emacs Lisp también puede compilarse en código nativo: código máquina no muy diferente del producido por un compilador C o Fortran. El código nativo se ejecuta incluso más rápido que el código byte. El código Emacs Lisp compilado nativamente se almacena en archivos cuyos nombres terminan en “.eln”. Véase Compilación nativa en el Manual de referencia de Emacs Lisp.</p>
@ -651,7 +651,7 @@ Véase Ejecutar un Lisp externo.</p>
<div><p>(add-to-list “load-path «/path/to/my/lisp/library»)</p>
</div></blockquote>
<p>Es habitual colocar las bibliotecas instaladas localmente en el directorio site-lisp que ya está en el valor por defecto de load-path, o en algún subdirectorio de site-lisp. De esta forma, no es necesario modificar el valor por defecto de load-path.</p>
<p>De forma similar a load-path, la lista de directorios donde Emacs busca archivos <a href="#id7"><span class="problematic" id="id8">*</span></a>.eln con código Lisp compilado nativamente se especifica mediante la variable native-comp-eln-load-path.</p>
<p>De forma similar a load-path, la lista de directorios donde Emacs busca archivos <a href="#id8"><span class="problematic" id="id9">*</span></a>.eln con código Lisp compilado nativamente se especifica mediante la variable native-comp-eln-load-path.</p>
<p>Algunos comandos se cargan automáticamente; cuando los ejecuta, Emacs carga primero la biblioteca asociada. Por ejemplo, el comando de compilación M-x (ver Ejecutar Compilaciones en Emacs) es autocargado; si lo invoca, Emacs carga automáticamente la biblioteca de compilación primero. Por el contrario, el comando M-x recompile no está autocargado, por lo que no está disponible hasta que cargue la biblioteca de compilación.</p>
<p>La carga automática también puede ocurrir cuando busca la documentación de un comando autocargado (vea Ayuda por Comando o Nombre de Variable), si la documentación se refiere a otras funciones y variables en su biblioteca (cargar la biblioteca permite a Emacs configurar correctamente los hipervínculos en el búfer <em>Help</em>). Para desactivar esta función, cambie la variable help-enable-autoload a nil.</p>
<p>La carga automática también ocurre cuando se completan los nombres para describe-variable y describe-función, basándose en el prefijo que se está completando. Para desactivar esta función, cambie la variable help-enable-completion-autoload a nil.</p>
@ -667,7 +667,7 @@ Véase Ejecutar un Lisp externo.</p>
<p>Tenga en cuenta que instalar un paquete usando package-install (ver Instalación de Paquetes) se encarga de colocar los archivos Lisp del paquete en un directorio donde Emacs los encuentre, y también escribe el código de inicialización necesario en sus archivos init, haciendo innecesarias las personalizaciones manuales anteriores.</p>
</section>
<section id="evaluacion-de-expresiones-emacs-lisp">
<span id="id9"></span><h2>28.9. Evaluación de Expresiones Emacs Lisp<a class="headerlink" href="#evaluacion-de-expresiones-emacs-lisp" title="Link to this heading"></a></h2>
<span id="id10"></span><h2>28.9. Evaluación de Expresiones Emacs Lisp<a class="headerlink" href="#evaluacion-de-expresiones-emacs-lisp" title="Link to this heading"></a></h2>
<p>El modo Emacs Lisp es el modo principal para editar Emacs Lisp. Su comando de modo es M-x emacs-lisp-mode.</p>
<p>Emacs proporciona varios comandos para evaluar expresiones Emacs Lisp. Puedes usar estos comandos en modo Emacs Lisp, para probar tu código Emacs Lisp mientras se escribe. Por ejemplo, después de reescribir una función, puede evaluar la definición de la función para que tenga efecto en las siguientes llamadas a la función. Estos comandos también están disponibles globalmente, y pueden usarse fuera del modo Emacs Lisp.</p>
<dl class="simple">
@ -698,7 +698,7 @@ M-x eval-defun</p>
<p>Las opciones eval-expression-print-level y eval-expression-print-length controlan la profundidad y longitud máximas de las listas que se imprimirán en el resultado de los comandos de evaluación antes de abreviarlos. Si se proporciona un argumento de prefijo cero a eval-expression o eval-last-sexp, las listas se imprimen completas. eval-expression-debug-on-error controla si los errores de evaluación invocan al depurador cuando se usan estos comandos; su valor por defecto es t. eval-expression-print-maximum-character evita que los enteros que sean mayores que él se muestren como caracteres.</p>
</section>
<section id="buferes-de-interaccion-lisp">
<span id="id10"></span><h2>28.10. Búferes de Interacción Lisp<a class="headerlink" href="#buferes-de-interaccion-lisp" title="Link to this heading"></a></h2>
<span id="id11"></span><h2>28.10. Búferes de Interacción Lisp<a class="headerlink" href="#buferes-de-interaccion-lisp" title="Link to this heading"></a></h2>
<p>Cuando Emacs arranca, contiene un búfer llamado <em>scratch</em>, que se proporciona para evaluar expresiones Emacs Lisp interactivamente. Su modo principal es el modo de Interacción Lisp. También puede activar el modo de interacción de Lisp escribiendo M-x lisp-interaction-mode.</p>
<p>Si elimina el búfer <em>scratch</em>, puede volver a crearlo con la orden M-x scratch-buffer.</p>
<p>En el búfer <em>scratch</em> y en otros búferes del modo de interacción de Lisp, C-j (eval-print-last-sexp) evalúa la expresión Lisp anterior al punto e inserta el valor en el punto. Así, al escribir expresiones en el búfer seguidas de C-j después de cada expresión, el búfer registra una transcripción de las expresiones evaluadas y sus valores. Todos los demás comandos en el modo Lisp Interaction son los mismos que en el modo Emacs Lisp.</p>

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.51
Traducción Revisón: 1.56
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -245,7 +245,7 @@
</div></blockquote>
<p>Si está manteniendo un programa Lisp grande, entonces además de las características descritas aquí, puede encontrar útil la librería Emacs Lisp Regression Testing (ERT) (ver ERT en Emacs Lisp Regression Testing).</p>
<section id="control-de-versiones">
<h2>29.1 Control de Versiones<a class="headerlink" href="#control-de-versiones" title="Link to this heading"></a></h2>
<span id="id2"></span><h2>29.1 Control de Versiones<a class="headerlink" href="#control-de-versiones" title="Link to this heading"></a></h2>
<p>Un sistema de control de versiones es un programa que puede registrar múltiples versiones de un archivo fuente, almacenando información como la hora de creación de cada versión, quién la hizo y una descripción de lo que se cambió.</p>
<p>La interfaz de control de versiones de Emacs se llama VC. Los comandos de VC funcionan con varios sistemas de control de versiones diferentes; actualmente, soporta Bazaar, CVS, Git, Mercurial, Monotone, RCS, SRC, SCCS/CSSC, y Subversion. De estos, el proyecto GNU distribuye CVS, RCS y Bazaar.</p>
<p>VC se activa automáticamente cada vez que visita un archivo gobernado por un sistema de control de versiones. Para deshabilitar VC por completo, establezca la variable personalizable vc-handled-backends a nil (vea Personalizando VC).</p>
@ -307,7 +307,7 @@ secuenciales enteros. VC soporta casi todas las operaciones SRC.</p>
</div></blockquote>
</section>
<section id="conceptos-de-control-de-versiones">
<h4>29.1.1.3 Conceptos de Control de Versiones<a class="headerlink" href="#conceptos-de-control-de-versiones" title="Link to this heading"></a></h4>
<span id="id3"></span><h4>29.1.1.3 Conceptos de Control de Versiones<a class="headerlink" href="#conceptos-de-control-de-versiones" title="Link to this heading"></a></h4>
<p>Cuando un archivo está bajo control de versiones, decimos que está registrado en el sistema de control de versiones. El sistema dispone de un repositorio que almacena tanto el estado actual del archivo como su historial de cambios, suficiente para reconstruir la versión actual o cualquier versión anterior. El repositorio también contiene otra información, como entradas de registro que describen los cambios realizados en cada archivo.</p>
<p>La copia de un archivo controlado por versiones que realmente edita se denomina archivo de trabajo. Puede modificar cada archivo de trabajo como lo haría con un archivo normal. Cuando haya terminado con un conjunto de cambios, puede confirmar (o registrar) los cambios; esto registra los cambios en el repositorio, junto con una entrada de registro descriptiva.</p>
<p>Un árbol de directorios de archivos de trabajo se denomina árbol de trabajo.</p>
@ -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">
<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="#id2"><span class="problematic" id="id3">`</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="id4"></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="id5"></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="#id6"><span class="problematic" id="id7">*</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="id8"></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="#id9"><span class="problematic" id="id10">*</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="#id11"><span class="problematic" id="id12">*</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="#id22"><span class="problematic" id="id23">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="#id24"><span class="problematic" id="id25">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="#id13"><span class="problematic" id="id14">*</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="#id15"><span class="problematic" id="id16">*</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="id17"></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="#id18"><span class="problematic" id="id19">*</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="#id20"><span class="problematic" id="id21">*</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.51
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.51
Traducción Revisón: 1.56
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -219,7 +219,7 @@ C-x d ~/foo/</em>/<a href="#id2"><span class="problematic" id="id3">*</span></a
<p>Una forma alternativa de borrar archivos es marcarlos con m y borrarlos con D, véase Operaciones con Archivos.</p>
</section>
<section id="marcar-varios-archivos-a-la-vez">
<h2>31.4 Marcar Varios Archivos a la Vez<a class="headerlink" href="#marcar-varios-archivos-a-la-vez" title="Link to this heading"></a></h2>
<span id="id8"></span><h2>31.4 Marcar Varios Archivos a la Vez<a class="headerlink" href="#marcar-varios-archivos-a-la-vez" title="Link to this heading"></a></h2>
<p>Los comandos #, ~, ., % &amp; y % d marcan varios archivos para su eliminación, basándose en sus nombres de archivo:</p>
<dl class="simple">
<dt>#</dt><dd><p>Marca todos los archivos de autoguardado (archivos cuyos nombres empiezan y acaban por “#”) para que se eliminen (véase Autoguardado: Protección Contra Desastres).</p>
@ -405,7 +405,7 @@ originales en el búfer de Dired, lo que desincroniza el búfer de Dired con el
</div></blockquote>
</section>
<section id="operar-con-archivos">
<span id="id8"></span><h2>31.7 Operar con Archivos<a class="headerlink" href="#operar-con-archivos" title="Link to this heading"></a></h2>
<span id="id9"></span><h2>31.7 Operar con Archivos<a class="headerlink" href="#operar-con-archivos" title="Link to this heading"></a></h2>
<p>Esta sección describe los comandos básicos de Dired para operar sobre uno o varios archivos. Todos estos comandos van en mayúsculas; todos ellos usan el minibúfer, ya sea para leer un argumento o para pedir confirmación, antes de actuar. Todos ellos te permiten especificar los archivos a manipular de estas formas:</p>
<blockquote>
<div><ul class="simple">
@ -601,7 +601,7 @@ con el nombre de archivo coincidente.</p>
<p>Puede encontrar más opciones de Usuario con M-x customize-group RET dired-guess RET.</p>
</section>
<section id="transformacion-de-nombres-de-archivos-en-dired">
<span id="id9"></span><h2>31.10 Transformación de Nombres de Archivos en Dired<a class="headerlink" href="#transformacion-de-nombres-de-archivos-en-dired" title="Link to this heading"></a></h2>
<span id="id10"></span><h2>31.10 Transformación de Nombres de Archivos en Dired<a class="headerlink" href="#transformacion-de-nombres-de-archivos-en-dired" title="Link to this heading"></a></h2>
<p>Esta sección describe los comandos de Dired que modifican los nombres de los archivos de forma sistemática. Cada comando opera sobre algunos o todos los archivos marcados, usando un nuevo nombre hecho mediante la transformación del nombre existente.</p>
<p>Al igual que los comandos básicos de Dired para la manipulación de archivos (véase Operar con Archivos), los comandos descritos aquí operan sobre los n archivos siguientes, o sobre todos los archivos marcados con “*”, o sobre el archivo actual. (Para marcar archivos, use los comandos descritos en Marcas Dired vs. Banderas).</p>
<p>Todos los comandos descritos en esta sección funcionan de forma interactiva: le piden que confirme la operación para cada archivo candidato. Por lo tanto, puede seleccionar más archivos de los que realmente necesita (por ejemplo, con una expresión regular que coincida con muchos archivos) y, a continuación, filtrar los nombres seleccionados escribiendo y o n cuando el comando le pida confirmación.</p>
@ -736,7 +736,7 @@ todos los subdirectorios. Puede usar este comando para obtener una visión gener
<p>En modo Wdired, puede renombrar archivos editando los nombres de archivo que aparecen en el búfer Dired. Para ello están disponibles todos los comandos de edición habituales de Emacs, incluidas las operaciones con rectángulos y la consulta-sustitución. Una vez que haya terminado de editar, escriba C-c C-c (wdired-finish-edit). Esto aplica los cambios y vuelve al modo Dired habitual.</p>
</section>
<section id="ver-miniaturas-de-imagenes-en-dired">
<span id="id10"></span><h2>31.19 Ver Miniaturas de Imágenes en Dired<a class="headerlink" href="#ver-miniaturas-de-imagenes-en-dired" title="Link to this heading"></a></h2>
<span id="id11"></span><h2>31.19 Ver Miniaturas de Imágenes en Dired<a class="headerlink" href="#ver-miniaturas-de-imagenes-en-dired" title="Link to this heading"></a></h2>
<p>Image-Dired es una herramienta para navegar por archivos de imagen. Permite ver las imágenes como miniaturas o a tamaño completo, ya sea dentro de Emacs o a través de un visor externo. Esto es diferente del modo Imagen (ver Visualización de Archivos de Imagen) para visitar un archivo de imagen en el búfer de Emacs.</p>
<p>Para entrar en Imagen-Dired, marque los archivos de imagen que quiera ver en el búfer Dired, usando m como de costumbre. A continuación, escriba C-t d ( image-dired-display-thumbs). Esto crea y cambia a un búfer que contiene Image-Dired, correspondiente a los archivos marcados.</p>
<p>También puede borrar imágenes a través de Image-Dired. Escriba d (image-dired-flag-thumb-original-file) para marcar el archivo de imagen para su borrado en el búfer Dired. Alternativamente, puede eliminar la miniatura de una imagen del búfer de miniaturas sin marcar la imagen para su eliminación, escribiendo C-d (image-dired-delete-char).</p>
@ -748,7 +748,7 @@ todos los subdirectorios. Puede usar este comando para obtener una visión gener
<p>Image-Dired también permite manipular imágenes de forma sencilla. En el búfer de miniaturas, escriba L para girar la imagen original 90 grados en el sentido contrario a las agujas del reloj, y R para girarla 90 grados en el sentido de las agujas del reloj. Esta rotación no tiene pérdidas, y usa una utilidad externa llamada jpegtran, que necesita instalar primero.</p>
</section>
<section id="otras-caracteristicas-de-dired">
<h2>31.20 Otras Características de Dired<a class="headerlink" href="#otras-caracteristicas-de-dired" title="Link to this heading"></a></h2>
<span id="id12"></span><h2>31.20 Otras Características de Dired<a class="headerlink" href="#otras-caracteristicas-de-dired" title="Link to this heading"></a></h2>
<p>Por defecto, Dired mostrará el espacio disponible en el disco en la primera línea. Este es el primer valor de la variable dired-free-space. Si en lugar de esto lo estableces a separado, Dired mostrará esto en una línea separada (incluyendo el espacio que ocupan los archivos en el directorio actual). Si lo establece a nil, el espacio libre no se mostrará en absoluto.</p>
<p>El comando + (dired-create-directory) lee el nombre de un directorio y lo crea. Señala un error si el directorio ya existe.</p>
<p>El comando (dired-create-empty-file) lee el nombre de un archivo y lo crea. Si el archivo ya existe, indica un error.</p>

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.51
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.51
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.51
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.51
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.51
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.51
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.51
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.51
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.51
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.51
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.51
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.51
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.51
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.51
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.51
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.51
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.51
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.51
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.51
Traducción Revisón: 1.56
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -612,7 +612,7 @@ lambda () (c-add-style «my-style» my-c-style t)))</p>
</div></blockquote>
</section>
<section id="variables-locales-en-archivos">
<h3>50.2.4. Variables locales en Archivos<a class="headerlink" href="#variables-locales-en-archivos" title="Link to this heading"></a></h3>
<span id="id8"></span><h3>50.2.4. Variables locales en Archivos<a class="headerlink" href="#variables-locales-en-archivos" title="Link to this heading"></a></h3>
<p>Un archivo puede especificar valores de variables locales para usar cuando se edita el archivo con Emacs. Visitando el fichero o estableciendo un modo principal comprueba si hay especificaciones de variables locales; automáticamente hace estas variables locales al búfer, y las establece a los valores especificados en el archivo.</p>
<p>Las variables locales de archivo anulan las variables locales de directorio (ver Variables Locales por Directorio), si se especifica alguna para el directorio de un archivo.</p>
<section id="especificacion-de-variables-de-archivo">
@ -629,19 +629,19 @@ lambda () (c-add-style «my-style» my-c-style t)))</p>
</div></blockquote>
<p>Aparte de mode, otras palabras clave que tienen significados especiales como variables de archivo son coding, unibyte y eval. Éstas se describen a continuación.</p>
<p>En los scripts de shell, la primera línea se usa para identificar al intérprete del script, por lo que no puede poner ninguna variable local ahí. Para acomodar esto, Emacs busca especificaciones de variables locales en la segunda línea si la primera línea especifica un intérprete. Lo mismo ocurre con las páginas man que empiezan con la cadena mágica “”&quot;” para especificar una lista de preprocesadores troff (no todos lo hacen, sin embargo).</p>
<p>Aparte de usar una línea “-<a href="#id8"><span class="problematic" id="id9">*</span></a>-”, puede definir variables locales de archivo usando una lista de variables locales cerca del final del fichero. El comienzo de la lista de variables locales no debe estar a más de 3000 caracteres del final del archivo, y debe estar en la última página si el fichero está dividido en páginas.</p>
<p>Aparte de usar una línea “-<a href="#id9"><span class="problematic" id="id10">*</span></a>-”, puede definir variables locales de archivo usando una lista de variables locales cerca del final del fichero. El comienzo de la lista de variables locales no debe estar a más de 3000 caracteres del final del archivo, y debe estar en la última página si el fichero está dividido en páginas.</p>
<p>Si un archivo tiene tanto una lista de variables locales como una línea “-<em>-”, Emacs procesa todo lo que hay en la línea “-</em>-” primero, y todo lo que hay en la lista de variables locales después. La excepción a esto es una especificación de modo principal. Emacs aplica esto primero, dondequiera que aparezca, ya que la mayoría de los modos principales matan todas las variables locales como parte de su inicialización.</p>
<p>Una lista de variables locales comienza con una línea que contiene la cadena “Local Variables:” (Variables Locales), y termina con una línea que contiene la cadena “End:” (Fin). En medio vienen los nombres y valores de las variables, un conjunto por línea, así:</p>
<blockquote>
<div><p>/* Local Variables: <em>/
/</em> mode: c <em>/
/</em> comment-column: 0 <em>/
/</em> End: <a href="#id10"><span class="problematic" id="id11">*</span></a>/</p>
/</em> End: <a href="#id11"><span class="problematic" id="id12">*</span></a>/</p>
</div></blockquote>
<p>En este ejemplo, cada línea comienza con el prefijo “/<em>” y termina con el sufijo “</em>/”. Emacs reconoce el prefijo y el sufijo encontrándolos rodeando la cadena mágica “Local Variables:”, en la primera línea de la lista; luego los descarta automáticamente de las otras líneas de la lista. La razón habitual para utilizar un prefijo y/o sufijo es incrustar la lista de variables locales en un comentario, para que no confunda a otros programas a los que va destinado el archivo. El ejemplo anterior es para el lenguaje de programación C, donde los comentarios comienzan con “/<em>” y terminan con “</em>/”.</p>
<p>Si algún texto no relacionado pudiera parecerle a Emacs una lista de variables locales, puedes contrarrestarlo insertando un carácter de salto de página (un delimitador de página, ver Páginas) después de ese texto. Emacs sólo busca variables locales de fichero en la última página de un fichero, después del último delimitador de página.</p>
<p>En lugar de escribir directamente la lista de variables locales, puede utilizar el comando M-x add-file-local-variable. Este comando solicita una variable y un valor, y los añade a la lista, añadiendo la cadena “Local Variables:” y los marcadores de inicio y fin según sea necesario. El comando M-x delete-file-local-variable borra una variable de la lista. M-x copy-dir-locals-to-file-locals copia variables locales de directorio a la lista (ver Variables locales por directorio).</p>
<p>Al igual que con la línea “-<a href="#id12"><span class="problematic" id="id13">*</span></a>-”, las variables de una lista de variables locales se utilizan literalmente, y no se evalúan primero. Si desea dividir un valor de cadena largo en varias líneas del archivo, puede utilizar la barra invertida-nueva línea, que se ignora en las constantes de cadena de Lisp; debe poner el prefijo y el sufijo en cada línea, incluso en las líneas que comienzan o terminan dentro de la cadena, ya que se eliminarán al procesar la lista. He aquí un ejemplo:</p>
<p>Al igual que con la línea “-<a href="#id13"><span class="problematic" id="id14">*</span></a>-”, las variables de una lista de variables locales se utilizan literalmente, y no se evalúan primero. Si desea dividir un valor de cadena largo en varias líneas del archivo, puede utilizar la barra invertida-nueva línea, que se ignora en las constantes de cadena de Lisp; debe poner el prefijo y el sufijo en cada línea, incluso en las líneas que comienzan o terminan dentro de la cadena, ya que se eliminarán al procesar la lista. He aquí un ejemplo:</p>
<blockquote>
<div><p># Local Variables:
# comando-para-compilar: «cc foo.c -Dfoo=bar -Dhack=whatever # -Dmumble=blaah»
@ -776,11 +776,11 @@ mode: mi-nuevo-modo</p>
</section>
</section>
<section id="personalizar-las-combinaciones-de-teclas">
<span id="id14"></span><h2>50.3 Personalizar las Combinaciones de Teclas<a class="headerlink" href="#personalizar-las-combinaciones-de-teclas" title="Link to this heading"></a></h2>
<span id="id15"></span><h2>50.3 Personalizar las Combinaciones de Teclas<a class="headerlink" href="#personalizar-las-combinaciones-de-teclas" title="Link to this heading"></a></h2>
<p>Esta sección describe las combinaciones de teclas, que asignan teclas a comandos, y los mapas de teclas, que registran estas combinaciones. También se explica cómo personalizar las dichsa combinaciones, lo que se hace editando el fichero init (consulte Volver a Combinar Teclas en el Archivo init).</p>
<p>Dado que la mayoría de los modos definen sus propias combinaciones de teclas, la activación de un modo puede anular las combinaciones de teclas personalizadas. Un pequeño número de teclas están reservadas para las combinaciones definidas por el Usuario, y no deberían ser utilizadas por los modos, por lo que las combinaciones de teclas que utilizan esas mismas teclas son más seguras en este sentido. Las secuencias de teclas reservadas son las que consisten en C-c seguida de una letra (mayúscula o minúscula), y las teclas de función F5 a F9 sin modificadores (ver Teclas Modificadoras).</p>
<section id="mapas-de-teclas">
<span id="id15"></span><h3>50.3.1 Mapas de teclas<a class="headerlink" href="#mapas-de-teclas" title="Link to this heading"></a></h3>
<span id="id16"></span><h3>50.3.1 Mapas de teclas<a class="headerlink" href="#mapas-de-teclas" title="Link to this heading"></a></h3>
<p>Como se describe en Teclas y Comandos, cada comando Emacs es una función Lisp cuya definición permite su uso interactivo. Como toda función Lisp, un comando tiene un nombre de función, que normalmente consiste en letras minúsculas y guiones.</p>
<p>Una secuencia de teclas (tecla, para abreviar) es una secuencia de eventos de entrada que tienen un significado como unidad. Los eventos de entrada incluyen caracteres, teclas de función y botones del ratón: todas las entradas que puede enviar al ordenador. Una secuencia de teclas obtiene su significado de su vinculación, que dice qué comando ejecuta.</p>
<p>Los enlaces entre secuencias de teclas y funciones de comandos se registran en estructuras de datos llamadas mapas de teclas. Emacs tiene muchos de estos, cada uno usado en ocasiones particulares.</p>
@ -832,7 +832,7 @@ mode: mi-nuevo-modo</p>
</div></blockquote>
</section>
<section id="cambiar-las-combinaciones-de-teclas-interactivamente">
<span id="id16"></span><h3>50.3.5. Cambiar las combinaciones de teclas interactivamente<a class="headerlink" href="#cambiar-las-combinaciones-de-teclas-interactivamente" title="Link to this heading"></a></h3>
<span id="id17"></span><h3>50.3.5. Cambiar las combinaciones de teclas interactivamente<a class="headerlink" href="#cambiar-las-combinaciones-de-teclas-interactivamente" title="Link to this heading"></a></h3>
<p>La forma de redefinir una tecla de Emacs es cambiar su entrada en un mapa de teclas. Puedes cambiar el mapa de teclado global, en cuyo caso el cambio es efectivo en todos los modos principales (excepto en aquellos que tienen sus propios enlaces locales para la misma tecla). O puedes cambiar un mapa de teclado local, que afecta a todos los buffers que utilizan el mismo modo principal.</p>
<p>En esta sección, describimos cómo reasignar teclas para la sesión actual de Emacs. Mira Rebinding Keys in Your Init File, para una descripción de cómo hacer que el reasignado de teclas afecte a futuras sesiones de Emacs.</p>
<dl class="simple">
@ -864,7 +864,7 @@ mode: mi-nuevo-modo</p>
<p>Si quiere evitar invocar un comando por error, es mejor desactivar el comando que indefinir la tecla. Un comando desactivado es menos trabajoso de invocar cuando realmente lo desea. Consulte Desactivar Comandos.</p>
</section>
<section id="reasignacion-de-teclas-en-el-archivo-de-inicio">
<span id="id17"></span><h3>50.3.6. Reasignación de Teclas en el Archivo de Inicio<a class="headerlink" href="#reasignacion-de-teclas-en-el-archivo-de-inicio" title="Link to this heading"></a></h3>
<span id="id18"></span><h3>50.3.6. Reasignación de Teclas en el Archivo de Inicio<a class="headerlink" href="#reasignacion-de-teclas-en-el-archivo-de-inicio" title="Link to this heading"></a></h3>
<p>Si tiene un conjunto de combinaciones de teclas que le gustaría usar todo el tiempo, puede especificarlas en su archivo de inicialización escribiendo código Lisp. Vea El Archivo de Inicialización de Emacs, para una descripción de este archivo.</p>
<p>La forma recomendada de escribir una combinación de teclas usando Lisp es usar las funciones keymap-global-set o keymap-set. Por ejemplo, aquí está cómo enlazar C-z al comando shell en el keymap global (ver Subshell Interactivo):</p>
<blockquote>
@ -906,7 +906,7 @@ mode: mi-nuevo-modo</p>
</div></blockquote>
</section>
<section id="teclas-modificadoras">
<span id="id18"></span><h3>50.3.7. Teclas Modificadoras<a class="headerlink" href="#teclas-modificadoras" title="Link to this heading"></a></h3>
<span id="id19"></span><h3>50.3.7. Teclas Modificadoras<a class="headerlink" href="#teclas-modificadoras" title="Link to this heading"></a></h3>
<p>Las combinaciones de teclas por defecto en Emacs están configuradas para que los caracteres alfabéticos modificados no distingan mayúsculas de minúsculas. En otras palabras, C-A hace lo mismo que C-a, y M-A hace lo mismo que M-a. Esto sólo afecta a los caracteres alfabéticos y no se aplica a las versiones modificadas de otras teclas; por ejemplo, C-&#64; no es lo mismo que C-2.</p>
<p>Un carácter alfabético modificado por Control se considera generalmente insensible a mayúsculas y minúsculas: Emacs siempre trata C-A como C-a, C-B como C-b, y así sucesivamente. La razón de esto es histórica: en entornos no gráficos no hay distinción entre esas pulsaciones. Sin embargo, puedes enlazar pulsaciones de teclas alfabéticas con control de mayúsculas en marcos GUI:</p>
<blockquote>
@ -963,7 +963,7 @@ kp-insert , kp-delete</p>
<p>Con un terminal ASCII normal, no hay forma de distinguir entre TAB y C-i (y lo mismo para otros pares de este tipo), porque el terminal envía el mismo carácter en ambos casos.</p>
</section>
<section id="reenlazar-los-botones-del-raton">
<span id="id19"></span><h3>50.3.10. Reenlazar los Botones del Ratón<a class="headerlink" href="#reenlazar-los-botones-del-raton" title="Link to this heading"></a></h3>
<span id="id20"></span><h3>50.3.10. Reenlazar los Botones del Ratón<a class="headerlink" href="#reenlazar-los-botones-del-raton" title="Link to this heading"></a></h3>
<p>Emacs también usa símbolos Lisp para designar los botones del ratón. Los eventos ordinarios del ratón en Emacs son eventos de clic; estos ocurren cuando pulsa un botón y lo suelta sin mover el ratón. También puede obtener eventos de arrastre, cuando mueve el ratón mientras mantiene pulsado el botón. Los eventos de arrastre ocurren cuando finalmente suelta el botón.</p>
<p>Los símbolos para los eventos de clic básicos son ratón-1 para el botón situado más a la izquierda, ratón-2 para el siguiente, y así sucesivamente. Así es como puede redefinir el segundo botón del ratón para dividir la ventana actual:</p>
<blockquote>
@ -1004,7 +1004,7 @@ kp-insert , kp-delete</p>
<p>Se puede poner más de un botón del ratón en una secuencia de teclas, pero no es habitual hacerlo.</p>
</section>
<section id="deshabilitar-comandos">
<span id="id20"></span><h3>50.3.11 Deshabilitar Comandos<a class="headerlink" href="#deshabilitar-comandos" title="Link to this heading"></a></h3>
<span id="id21"></span><h3>50.3.11 Deshabilitar Comandos<a class="headerlink" href="#deshabilitar-comandos" title="Link to this heading"></a></h3>
<p>Deshabilitar un comando significa que al invocarlo interactivamente se pide confirmación al Usuario. El propósito de deshabilitar un comando es prevenir que los Usuarios lo ejecuten por accidente; hacemos esto para comandos que pueden ser confusos para los no iniciados.</p>
<p>Al intentar invocar un comando deshabilitado interactivamente en Emacs se muestra una ventana que contiene el nombre del comando, su documentación, y algunas instrucciones sobre qué hacer inmediatamente; luego Emacs pregunta si se desea ejecutar el comando como se solicita, habilitarlo y ejecutarlo, o cancelarlo. Si decide activar el comando, debe responder a otra pregunta: si desea hacerlo permanentemente o sólo para la sesión actual. (La habilitación permanente funciona editando automáticamente su archivo de inicialización). También puede escribir ! para activar todos los comandos, sólo para la sesión actual.</p>
<p>El mecanismo directo para desactivar un comando es poner una propiedad disabled no nula en el símbolo Lisp del comando. Aquí está el programa Lisp para hacer esto:</p>
@ -1014,7 +1014,7 @@ kp-insert , kp-delete</p>
<p>Si el valor de la propiedad disabled es una cadena, esa cadena se incluye en el mensaje que aparece cuando se utiliza el comando:</p>
<blockquote>
<div><dl class="simple">
<dt>(put “delete-region “disabled</dt><dd><p>«En su lugar es mejor usar <a href="#id21"><span class="problematic" id="id22">`</span></a>kill-region”.n»)</p>
<dt>(put “delete-region “disabled</dt><dd><p>«En su lugar es mejor usar <a href="#id22"><span class="problematic" id="id23">`</span></a>kill-region”.n»)</p>
</dd>
</dl>
</div></blockquote>
@ -1033,7 +1033,7 @@ kp-insert , kp-delete</p>
</section>
</section>
<section id="el-archivo-de-inicializacion-de-emacs">
<span id="id23"></span><h2>50.4. El Archivo de Inicialización de Emacs<a class="headerlink" href="#el-archivo-de-inicializacion-de-emacs" title="Link to this heading"></a></h2>
<span id="id24"></span><h2>50.4. El Archivo de Inicialización de Emacs<a class="headerlink" href="#el-archivo-de-inicializacion-de-emacs" title="Link to this heading"></a></h2>
<p>Cuando Emacs se inicia, normalmente intenta cargar un programa Lisp desde un archivo de inicialización, o archivo init para abreviar. Este fichero, si existe, especifica cómo inicializar Emacs por Ud. Tradicionalmente, el archivo ~/.emacs se usa como archivo init, aunque Emacs también busca en ~/.emacs.el, ~/.emacs.d/init.el, ~/.config/emacs/init.el, u otras localizaciones. Ver Cómo encuentra Emacs su Archivo de Inicio.</p>
<p>Puede que encuentre conveniente tener toda la configuración de Emacs en un directorio, en cuyo caso debería usar ~/.emacs.d/init.el o el ~/.config/emacs/init.el compatible con XDG.</p>
<p>Puede utilizar el modificador de línea de comandos “-q” para evitar que se cargue su archivo de init, y “-u” (o “user”) para especificar el archivo de init de un Usuario diferente (consulte Opciones Iniciales).</p>

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.51
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.51
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.51
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.51
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.51
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.51
Traducción Revisón: 1.56
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -223,7 +223,7 @@ de comandos es similar a lo que hace M-x insert-file (consulte Operaciones Varia
</dl>
</section>
<section id="c-2-opciones-iniciales">
<h2>C.2 Opciones Iniciales<a class="headerlink" href="#c-2-opciones-iniciales" title="Link to this heading"></a></h2>
<span id="c-2"></span><h2>C.2 Opciones Iniciales<a class="headerlink" href="#c-2-opciones-iniciales" title="Link to this heading"></a></h2>
<p>Las opciones iniciales especifican parámetros para la sesión Emacs. Esta sección describe las opciones iniciales más generales; algunas otras opciones específicamente relacionadas con el sistema X Window aparecen en las secciones siguientes.</p>
<p>Algunas opciones iniciales afectan a la carga del archivo de inicio. Normalmente, Emacs carga primero site-start.el si existe, luego el propio fichero de inicio del Usuario, si existe, y finalmente el fichero de inicialización por defecto default.el si existe (ver El archivo de Inicialización de Emacs). Ciertas opciones evitan la carga de algunos de estos archivos o los sustituyen por otros.</p>
<p>-chdir directorio
@ -353,7 +353,7 @@ renombra o mueve el fichero de volcado a un lugar diferente, puede usar esta opc
<p>Esto dice que visite foo.c, cargue hack-c.el (que hace cambios en el archivo visitado), guarde foo.c (note que save-buffer es la función a la que está ligada C-x C-s), y luego salga de nuevo al shell (debido a “batch”). batch” también garantiza que no habrá problemas redirigiendo la salida al log, porque Emacs no asumirá que tiene un terminal de pantalla con el que trabajar.</p>
</section>
<section id="c-4-variables-de-entorno">
<h2>C.4 Variables de Entorno<a class="headerlink" href="#c-4-variables-de-entorno" title="Link to this heading"></a></h2>
<span id="c-4"></span><h2>C.4 Variables de Entorno<a class="headerlink" href="#c-4-variables-de-entorno" title="Link to this heading"></a></h2>
<p>El entorno es una característica del sistema operativo; consiste en una colección de variables con nombres y valores. Cada variable se denomina variable de entorno; los nombres de estas variables distinguen entre mayúsculas y minúsculas, y es convencional utilizar sólo mayúsculas. Los valores son cadenas de texto.</p>
<p>Lo que hace que el entorno sea útil es que los subprocesos heredan el entorno automáticamente de su proceso padre. Esto significa que puede configurar una variable de entorno en su shell de inicio de sesión, y todos los programas que ejecute (incluyendo Emacs) la verán automáticamente. Los subprocesos de Emacs (como shells, compiladores y programas de control de versiones) también heredan el entorno de Emacs.</p>
<p>Dentro de Emacs, el comando M-x getenv lee el nombre de una variable de entorno, e imprime su valor en el área echo. M-x setenv establece una variable en el entorno Emacs, y C-u M-x setenv elimina una variable. (Las sustituciones de variables de entorno con “$” funcionan en el valor igual que en los nombres de fichero; ver Nombres de Archivos con $). La variable initial-environment almacena el entorno inicial heredado por Emacs.</p>

View File

@ -37,7 +37,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.51
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

@ -249,6 +249,8 @@ También existe un estilo de completado muy simple llamado ``emacs21``. En este
Puede usar diferentes estilos de completado en diferentes situaciones, configurando la variable ``completion-category-overrides``. Por ejemplo, la configuración por defecto dice que sólo se utilice la terminación básica y de subcadena para los nombres de los búferes.
.. _9.4.5:
9.4.5 Opciones de Completado
````````````````````````````

View File

@ -5,12 +5,14 @@
En este capítulo describimos cómo grabar una secuencia de comandos de edición para poder repetirla cómodamente más tarde.
Una macro de teclado es un comando definido por un Usuario de Emacs para sustituir a otra secuencia de teclas. Por ejemplo, si descubre que está a punto de teclear :kbd:`Ctrl`-:kbd:`n` :kbd:`Alt`-:kbd:`d` :kbd:`Ctrl`-:kbd:`d` (``C-n M-d C-d``) cuarenta veces, puede acelerar su trabajo definiendo una macro de teclado para hacer ``C-n M-d C-d``, y luego ejecutarla 39 veces más.
Una *macro de teclado* es un comando definido por un Usuario de Emacs para sustituir a otra secuencia de teclas. Por ejemplo, si descubre que está a punto de teclear :kbd:`Ctrl`-:kbd:`n` :kbd:`Alt`-:kbd:`d` :kbd:`Ctrl`-:kbd:`d` (``C-n M-d C-d``) cuarenta veces, puede acelerar su trabajo definiendo una macro de teclado para hacer ``C-n M-d C-d``, y luego ejecutarla 39 veces más.
Una *macro de teclado* se define ejecutando y registrando los comandos que constituyen su definición. Dicho de otro modo, al definir una macro de teclado, la definición se ejecuta por primera vez. De este modo, puede ver los efectos de sus comandos, para no tener que calcularlos mentalmente. Cuando cierra la definición, la macro de teclado está definida y también ha sido, en efecto, ejecutada una vez. A continuación, puede volver a hacer todo de nuevo invocando la macro.
Una macro de teclado se define ejecutando y registrando los comandos que constituyen su definición. Dicho de otro modo, al definir una macro de teclado, la definición se ejecuta por primera vez. De este modo, puede ver los efectos de sus comandos, para no tener que calcularlos mentalmente. Cuando cierra la definición, la macro de teclado está definida y también ha sido, en efecto, ejecutada una vez. A continuación, puede volver a hacer todo de nuevo invocando la macro.
Las macros de teclado difieren de los comandos ordinarios de Emacs en que están escritas en el lenguaje de comandos de Emacs en lugar de en Lisp. Esto hace que sea más fácil para el principiante escribirlas, y las hace más convenientes como hacks temporales. Sin embargo, el lenguaje de comandos de Emacs no es lo suficientemente potente como lenguaje de programación como para ser útil para escribir algo inteligente o general. Para tales cosas, debe utilizarse Lisp.
.. _18.1:
18.1 Uso básico
---------------
@ -54,7 +56,7 @@ Para empezar a definir una macro de teclado, escriba :kbd:`F3` (``F3``). A parti
define una macro para avanzar una palabra y luego insertar ``foo``. Observe que ``F3`` y ``F4`` no forman parte de la macro.
Después de definir la macro, puede llamarla con ``F4``. Para el ejemplo anterior, esto tiene el mismo efecto que escribir :kbd:`Alt`-:kbd:`f` ``foo`` (``M-f foo``) de nuevo. (Tenga en cuenta las dos funciones del comando ``F4`` finaliza la macro si está en proceso de definir una, o llama a la última macro en caso contrario). También puede suministrar a ``F4`` un argumento prefijo numérico *n*, que significa invocar la macro *n* veces. Un argumento de cero repite la macro indefinidamente, hasta que obtiene un error o teclee :kbd:`Ctrl`-:kbd:`g` (``C-g``) (o, en MS-DOS, C-Break).
Después de definir la macro, puede llamarla con ``F4``. Para el ejemplo anterior, esto tiene el mismo efecto que escribir :kbd:`Alt`-:kbd:`f` ``foo`` (``M-f foo``) de nuevo. (Tenga en cuenta las dos funciones del comando ``F4`` finaliza la macro si está en proceso de definir una, o llama a la última macro en caso contrario). También puede suministrar a ``F4`` un argumento prefijo numérico *n*, que significa invocar la macro *n* veces. Un argumento de cero repite la macro indefinidamente, hasta que obtiene un error o teclee :kbd:`Ctrl`-:kbd:`g` (``C-g``) (o, en MS-DOS, ``C-Break``).
El ejemplo anterior demuestra un práctico truco que puede emplear con las macros de teclado: si desea repetir una operación en lugares regularmente espaciados del texto, incluya un comando de movimiento como parte de la macro. En este caso, la repetición de la macro inserta la cadena ``foo`` después de cada palabra sucesiva.
@ -81,11 +83,11 @@ Mientras se ejecuta una macro de teclado de larga duración, a veces puede ser
18.2 El Anillo de Macros de Teclado
-----------------------------------
Todas las macros de teclado definidas se graban en el anillo de macros de teclado. Sólo hay un anillo de macros de teclado, compartido por todos los búfers.
Todas las macros de teclado definidas se graban en el *anillo de macros de teclado*. Sólo hay un anillo de macros de teclado, compartido por todos los búfers.
:kbd:`Ctrl`-:kbd:`x` :kbd:`Ctrl`-:kbd:`k` :kbd:`Ctrl`-:kbd:`k` (``C-x C-k C-k``)
Ejecuta la macro de teclado en la cabecera del anillo (``kmacro-end-or-call-macro-repeat``).
Ejecuta la macro de teclado que esa en la cabecera del anillo (``kmacro-end-or-call-macro-repeat``).
:kbd:`Ctrl`-:kbd:`x` :kbd:`Ctrl` :kbd:`k` :kbd:`Ctrl`-:kbd:`n` (``C-x C-k C-n``)
@ -107,7 +109,7 @@ El comando ``C-x C-k C-k`` (``kmacro-end-or-call-macro-repeat``) ejecuta la macr
Cuando se está definiendo una macro de teclado, ``C-x C-k C-k`` se comporta como ``F4`` excepto que, inmediatamente después, puede usar la mayoría de las combinaciones de teclas de esta sección sin el prefijo ``C-x C-k``. Por ejemplo, otra ``C-k`` volverá a ejecutar la macro.
Los comandos ``C-x C-k C-n`` (``kmacro-cycle-ring-next``) y ``C-x C-k C-p`` (``kmacro-cycle-ring-previous``) rotan el anillo de macros, llevando la macro de teclado siguiente o anterior a la cabeza del anillo de macros. La definición de la nueva macro de cabecera se muestra en el área de eco. Puede continuar rotando el anillo de macros inmediatamente repitiendo sólo ``C-n`` y ``C-p`` hasta que la macro deseada esté en la cabeza del anillo. Para ejecutar la nueva macro cabeza de anillo inmediatamente, simplemente teclee :kbd:`Ctrl`-:kbd:`k` (``C-k``).
Los comandos ``C-x C-k C-n`` (``kmacro-cycle-ring-next``) y ``C-x C-k C-p`` (``kmacro-cycle-ring-previous``) rotan el anillo de macros, llevando la macro de teclado siguiente o anterior a la cabeza del anillo de macros. La definición de la nueva macro de cabecera se muestra en el área de eco. Puede continuar rotando el anillo de macros inmediatamente repitiendo sólo ``C-n`` y ``C-p`` hasta que la macro deseada esté en la cabeza del anillo. Para ejecutar la nueva macro que está en la cabeza de anillo inmediatamente, simplemente teclee :kbd:`Ctrl`-:kbd:`k` (``C-k``).
Tenga en cuenta que Emacs trata la cabeza del anillo de macros como la última macro de teclado definida. Por ejemplo, ``F4`` ejecutará esa macro, y ``C-x C-k n`` le dará un nombre.
@ -140,7 +142,7 @@ Además del contador actual, las macros de teclado también mantienen el *contad
Especifica el formato para insertar el contador de macros de teclado (``kmacro-set-format``).
Cuando está definiendo una macro de teclado, el comando ``F3`` (``kmacro-start-macro-or-insert-counter``) inserta el valor actual del contador de la macro de teclado en el búfer, e incrementa el contador en 1. (Si no está definiendo una macro, ``F3`` inicia una definición de macro en su lugar. **Véase Uso Básico**). Puede usar un argumento de prefijo numérico para especificar un incremento diferente. Si sólo especifica un prefijo ``C-u``, eso inserta el valor anterior del contador, y no cambia el valor actual.
Cuando está definiendo una macro de teclado, el comando ``F3`` (``kmacro-start-macro-or-insert-counter``) inserta el valor actual del contador de la macro de teclado en el búfer, e incrementa el contador en 1. (Si no está definiendo una macro, ``F3`` inicia una definición de macro en su lugar. Véase :ref:`18.1`). Puede usar un argumento de prefijo numérico para especificar un incremento diferente. Si sólo especifica un prefijo ``C-u``, eso inserta el valor anterior del contador, y no cambia el valor actual.
A modo de ejemplo, vamos a mostrar cómo se puede usar el contador de macros del teclado para construir una lista numerada. Considere la siguiente secuencia de teclas:
@ -162,7 +164,7 @@ Si usa este comando mientras no se está definiendo o ejecutando ninguna macro d
El formato establecido por ``C-x C-k C-f`` no afecta a la inserción de números almacenados en registros.
Si se usa un registro como contador, incrementándolo en cada repetición de la macro, se consigue lo mismo que con un contador de macros de teclado. Consulte **Mantener Números en Registros**. Para la mayoría de los propósitos, es más sencillo usar un contador de macros de teclado.
Si se usa un registro como contador, incrementándolo en cada repetición de la macro, se consigue lo mismo que con un contador de macros de teclado. Consulte :ref:`14.5`. Para la mayoría de los propósitos, es más sencillo usar un contador de macros de teclado.
18.4 Ejecutar Macros con Variaciones
------------------------------------
@ -195,7 +197,7 @@ Las respuestas válidas cuando ``C-x q`` pregunta son:
:kbd:`Ctrl`-:kbd:`Alt`-:kbd:`c` (``C-M-c``), se le vuelve a preguntar cómo continuar con la macro de teclado. Si en este momento escribe un :kbd:`SPACE` (``SPC``), se ejecutará el resto de la definición de la macro. Depende de Usted dejar el punto y el texto en un estado tal que el resto de la macro haga lo que desea.
:kbd:`Ctrl`-:kbd:`u` :kbd:`Ctrl`-:kbd:`x` :kbd:`u` (``C-u C-x q``), que es :kbd:`Ctrl`-:kbd:`x` :kbd:`q` (``C-x q``) con un argumento prefijo, lleva a cabo una función completamente diferente. Entra en una edición recursiva leyendo la entrada del teclado, tanto cuando la escribe durante la definición de la macro, como cuando se ejecuta desde la macro. Durante la definición, la edición que hace dentro de la edición recursiva no se convierte en parte de la macro. Durante la ejecución de la macro, la edición recursiva le da la
oportunidad de hacer alguna edición particular en cada repetición. Véase **Niveles de Edición Recursiva**.
oportunidad de hacer alguna edición particular en cada repetición. Véase :ref:`46`.
.. _18.5:
@ -214,7 +216,7 @@ oportunidad de hacer alguna edición particular en cada repetición. Véase **Ni
Inserta en el búfer la definición de una macro de teclado, como código Lisp.
Si desea guardar una macro de teclado para su posterior uso, puede darle un nombre utilizando ``C-x C-k n`` (``kmacro-name-last-macro``). Esto lee un nombre como argumento usando el minibúfer y define ese nombre para ejecutar la última macro de teclado, en su forma actual. (Si posteriormente añade algo a la definición de esta macro, eso no altera la definición del nombre como macro). El nombre de la macro es un símbolo Lisp, y definirlo de esta forma lo convierte en un nombre de comando válido para llamar con ``M-x`` o para enlazar una tecla con ``keymap-global-set`` (ver **Mapas de Teclas**). Si especifica un nombre que tiene una definición anterior que no sea una macro de teclado, se muestra un mensaje de error y no se modifica nada.
Si desea guardar una macro de teclado para su posterior uso, puede darle un nombre utilizando ``C-x C-k n`` (``kmacro-name-last-macro``). Esto lee un nombre como argumento usando el minibúfer y define ese nombre para ejecutar la última macro de teclado, en su forma actual. (Si posteriormente añade algo a la definición de esta macro, eso no altera la definición del nombre como macro). El nombre de la macro es un símbolo Lisp, y definirlo de esta forma lo convierte en un nombre de comando válido para llamar con ``M-x`` o para enlazar una tecla con ``keymap-global-set`` (ver :ref:`50.3.1`). Si especifica un nombre que tiene una definición anterior que no sea una macro de teclado, se muestra un mensaje de error y no se modifica nada.
También puede vincular la última macro de teclado (en su forma actual) a una tecla, usando ``C-x C-k b`` (``kmacro-bind-to-key``) seguido de la secuencia de teclas que desea vincular. Puede asociar cualquier secuencia de teclas del mapa de teclas global, pero como la mayoría de las secuencias de teclas ya tienen otras asociaciones, debe seleccionar la secuencia de teclas con cuidado. Si intenta vincular una secuencia de teclas con una combinación existente (en cualquier mapa de teclas), este comando le pedirá confirmación antes de reemplazar la combinación existente.
@ -232,7 +234,7 @@ Una vez que una macro tiene un nombre de comando, puede guardar su definición e
M-x insert-kbd-macro RET nombremacro RET
Esto inserta algún código Lisp que, cuando se ejecute más tarde, definirá la misma macro con la misma definición que tiene ahora. (No necesita entender código Lisp para hacer esto, porque ``insert-kbd-macro`` escribe el código Lisp por Usted). A continuación, guarde el archivo. Puede cargar el archivo más tarde con ``load-file`` (vea **Bibliotecas de Código Lisp** para Emacs). Si el archivo que guarda es su archivo init ``~/.emacs`` (vea **El Archivo de Inicialización** de Emacs) entonces la macro será definida cada vez que ejecute Emacs.
Esto inserta algún código Lisp que, cuando se ejecute más tarde, definirá la misma macro con la misma definición que tiene ahora. (No necesita entender código Lisp para hacer esto, porque ``insert-kbd-macro`` escribe el código Lisp por Usted). A continuación, guarde el archivo. Puede cargar el archivo más tarde con ``load-file`` (vea :ref:`28.8`). Si el archivo que guarda es su archivo init ``~/.emacs`` (vea :ref:`50.4`) entonces la macro será definida cada vez que ejecute Emacs.
Si le damos un argumento prefijo a ``insert-kbd-macro``, hace código Lisp adicional para registrar las teclas (si las hay) que hemos ligado a *nombremacro*, de forma que a la macro se le reasignarán las mismas teclas cuando carguemos el archivo.

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.51
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.51
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.51
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.51
Traducción Revisón: 1.56
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@ -140,7 +140,7 @@
<p>Llamamos <em>avanzado</em> a Emacs porque puede hacer mucho más que una simple inserción y borrado de texto. Puede controlar subprocesos, sangrar programas automáticamente, mostrar múltiples archivos a la vez, editar archivos remotos como si fueran archivos locales, y mucho más. Los comandos de edición de Emacs funcionan en términos de caracteres, palabras, líneas, frases, párrafos y páginas, así como de expresiones y comentarios en varios lenguajes de programación.</p>
<p><em>Autodocumentado</em> significa que en cualquier momento puede utilizar comandos especiales, conocidos como <em>comandos de ayuda</em>, para averiguar cuáles son sus opciones, o para averiguar qué hace
cualquier comando, o para encontrar todos los comandos que pertenecen a un tema determinado. Véase <a class="reference internal" href="CapConSecciones/11_Ayuda.html#id1"><span class="std std-ref">11 Ayuda</span></a>.</p>
<p><em>Personalizable</em> significa que puede alterar fácilmente el comportamiento de los comandos de Emacs de maneras sencillas. Por ejemplo, si usa un lenguaje de programación en el que los comentarios empiezan con <code class="docutils literal notranslate"><span class="pre">&lt;**</span></code> y terminan con <code class="docutils literal notranslate"><span class="pre">**&gt;</span></code>, puede decirle a los comandos de manipulación de comentarios de Emacs que usen esas cadenas (vea <a class="reference internal" href="CapConSecciones/27_EdDePrograms.html#id6"><span class="std std-ref">27.5. Manipulación de Comentarios</span></a>). Por poner otro ejemplo, puede reenlazar los comandos básicos de movimiento del cursor (arriba, abajo, izquierda y derecha) a cualquier tecla del teclado que te resulte cómoda. Véase <a class="reference internal" href="CapConSecciones/50_Personlzc.html#id1"><span class="std std-ref">50 Personalización</span></a>.</p>
<p><em>Personalizable</em> significa que puede alterar fácilmente el comportamiento de los comandos de Emacs de maneras sencillas. Por ejemplo, si usa un lenguaje de programación en el que los comentarios empiezan con <code class="docutils literal notranslate"><span class="pre">&lt;**</span></code> y terminan con <code class="docutils literal notranslate"><span class="pre">**&gt;</span></code>, puede decirle a los comandos de manipulación de comentarios de Emacs que usen esas cadenas (vea <a class="reference internal" href="CapConSecciones/27_EdDePrograms.html#id7"><span class="std std-ref">27.5. Manipulación de Comentarios</span></a>). Por poner otro ejemplo, puede reenlazar los comandos básicos de movimiento del cursor (arriba, abajo, izquierda y derecha) a cualquier tecla del teclado que te resulte cómoda. Véase <a class="reference internal" href="CapConSecciones/50_Personlzc.html#id1"><span class="std std-ref">50 Personalización</span></a>.</p>
<p><em>Extensible</em> significa que puede ir más allá de la simple personalización y crear comandos completamente nuevos. Los nuevos comandos son simplemente programas escritos en lenguaje Lisp, que son ejecutados por el propio intérprete Lisp de Emacs. Los comandos existentes pueden incluso redefinirse en mitad de una sesión de edición, sin tener que reiniciar Emacs. La mayoría de los comandos de edición en Emacs están escritos en Lisp; las pocas excepciones podrían haber sido escritas en Lisp pero usan C en su lugar por eficiencia. Escribir una extensión es programar, pero los no programadores pueden usarla después. <strong>Ver Prefacio</strong> en Una Introducción a la Programación en Emacs Lisp, si quiere aprender programación en Emacs Lisp.</p>
</section>

Binary file not shown.

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.51
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