Compare commits

...

2 Commits

Author SHA1 Message Date
tanomarcelo 471fda4a2b magit; sphinx GNU/Emacs 29.1
Confirmación (commit) tanomarcelo-git
2024-03-17 19:56:58 -03:00
tanomarcelo 2079ddedd8 magit; sphinx GNU/Emacs 29.1
Confirmación (commit) tanomarcelo-git
2024-03-16 14:59:33 -03:00
69 changed files with 377 additions and 369 deletions

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.56
Traducción Revisón: 1.59
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@ -154,7 +154,7 @@
<p>Por defecto, el cursor en la ventana seleccionada se dibuja como un bloque sólido y parece estar sobre un carácter, pero debe pensar en el punto como si estuviera entre dos caracteres; está situado <em>antes</em> del carácter bajo el cursor. Por ejemplo, si su texto se parece a <code class="docutils literal notranslate"><span class="pre">frob</span></code> con el cursor sobre la <code class="docutils literal notranslate"><span class="pre">b</span></code>, entonces el punto está entre la <code class="docutils literal notranslate"><span class="pre">o</span></code> y la <code class="docutils literal notranslate"><span class="pre">b</span></code>. Si inserta el carácter <code class="docutils literal notranslate"><span class="pre">!</span></code> en esa posición, el resultado será <code class="docutils literal notranslate"><span class="pre">fro!b</span></code>, con el punto entre el <code class="docutils literal notranslate"><span class="pre">!</span></code> y la <code class="docutils literal notranslate"><span class="pre">b</span></code>. Así, el cursor permanece sobre la <code class="docutils literal notranslate"><span class="pre">b</span></code>, como antes.</p>
<p>Si está editando varios ficheros en Emacs, cada uno en su propio buffer, cada buffer tiene su propio valor de punto. Un búfer que no se muestra en ese momento recuerda su valor de punto si lo vuelve a mostrar más tarde. Además, si un buffer se muestra en varias ventanas, cada una de esas ventanas tiene su propio valor de punto.</p>
<p>Si está editando varios ficheros en Emacs, cada uno en su propio buffer, cada buffer tiene su propio valor de punto. Un búfer que no se muestra en ese momento recuerda su valor de punto si lo vuelve a mostrar más tarde. Además, si un buffer se muestra en múltiples ventanas, cada una de esas ventanas tiene su propio valor de punto.</p>
<p>Ver <a class="reference internal" href="CapConSecciones/15_ControlDisplay.html#id18"><span class="std std-ref">15.21 Visualización del Cursor</span></a>, para opciones que controlan cómo Emacs muestra el cursor.</p>
<p>Ver <a class="reference internal" href="CapConSecciones/15_ControlDisplay.html#id19"><span class="std std-ref">15.21 Visualización del Cursor</span></a>, para opciones que controlan cómo Emacs muestra el cursor.</p>
<aside class="footnote-list brackets">
<aside class="footnote brackets" id="id4" role="doc-footnote">
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id3">2</a><span class="fn-bracket">]</span></span>
@ -168,9 +168,9 @@
<p>El área de eco se llama así porque una de las cosas para las que se utiliza es para <em>hacer eco</em>, lo que significa mostrar los caracteres de un comando de varios caracteres a medida que se escribe. Los comandos de un solo carácter no tienen eco. Los comandos de varios caracteres (ver <a class="reference internal" href="03_Teclas.html#id1"><span class="std std-ref">3 Teclas</span></a>) se repiten si hace una pausa de más de un segundo en medio de un comando. Emacs entonces hace eco de todos los caracteres del comando hasta el momento, para preguntarle por el resto. Una vez que el eco ha comenzado, el resto del comando se hace eco inmediatamente mientras lo teclea. Este comportamiento está diseñado para dar a los Usuarios confiados una respuesta rápida, mientras que a los Usuarios indecisos les proporciona la mejor retroalimentación.</p>
<p>El área de eco también se usa para mostrar un <em>mensaje de error</em> cuando un comando no puede hacer su trabajo. Los mensajes de error pueden ir acompañados de un pitido o de un parpadeo de la pantalla.</p>
<p>Algunos comandos muestran mensajes informativos en el área de eco para decirle lo que ha hecho el comando, o para proporcionarle alguna información específica. Estos mensajes <em>informativos</em>, a diferencia de los mensajes de error, no van acompañados de un pitido o parpadeo. Por ejemplo, <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-x</span> <span class="pre">=</span></code> mantenga pulsada la tecla <kbd class="kbd docutils literal notranslate">Ctrl</kbd> y escriba <kbd class="kbd docutils literal notranslate">x</kbd>, luego suelte la tecla <kbd class="kbd docutils literal notranslate">Ctrl</kbd> y escriba <kbd class="kbd docutils literal notranslate">=</kbd>) muestra un mensaje que describe el carácter en el punto, su posición en el búfer intermedia y su columna actual en la ventana. Los comandos que llevan mucho tiempo suelen mostrar mensajes que terminan en <code class="docutils literal notranslate"><span class="pre">...</span></code> mientras trabajan (a veces también indican cuánto se ha avanzado, en porcentaje), y añaden <code class="docutils literal notranslate"><span class="pre">done</span></code> (terminado) cuando finaliza.</p>
<p>Los mensajes informativos del área de eco se guardan en un búfer especial denominado <code class="docutils literal notranslate"><span class="pre">*Messages*</span></code> (*Mensajes*). (Aún no hemos explicado los búferes; consulte <a class="reference internal" href="CapConSecciones/20_UsarVariosBuferes.html#id1"><span class="std std-ref">20 Uso de Varios Búferes</span></a>, para obtener más información sobre ellos). Si se pierde un mensaje que ha aparecido brevemente en la pantalla, puede pasar al búfer <code class="docutils literal notranslate"><span class="pre">*Messages*</span></code> para volver a verlo. Este búfer está limitado a un cierto número de líneas, especificado por la variable <code class="docutils literal notranslate"><span class="pre">message-log-max</span></code>. (Tampoco hemos explicado las variables; véase <a class="reference internal" href="CapConSecciones/50_Personlzc.html#id5"><span class="std std-ref">50.2 Variables</span></a>, para más información sobre ellas). Más allá de este límite, se borra una línea del principio cada vez que se añade una nueva línea de mensaje al final.</p>
<p>Los mensajes informativos del área de eco se guardan en un búfer especial denominado <code class="docutils literal notranslate"><span class="pre">*Messages*</span></code> (*Mensajes*). (Aún no hemos explicado los búferes; consulte <a class="reference internal" href="CapConSecciones/20_UsarVariosBuferes.html#id1"><span class="std std-ref">20 Uso de Varios Búferes</span></a>, para obtener más información sobre ellos). Si se pierde un mensaje que ha aparecido brevemente en la pantalla, puede pasar al búfer <code class="docutils literal notranslate"><span class="pre">*Messages*</span></code> para volver a verlo. Este búfer está limitado a un cierto número de líneas, especificado por la variable <code class="docutils literal notranslate"><span class="pre">message-log-max</span></code>. (Tampoco hemos explicado las variables; véase <a class="reference internal" href="CapConSecciones/50_Personlzc.html#id6"><span class="std std-ref">50.2 Variables</span></a>, para más información sobre ellas). Más allá de este límite, se borra una línea del principio cada vez que se añade una nueva línea de mensaje al final.</p>
<p>Vea <a class="reference internal" href="CapConSecciones/15_ControlDisplay.html#id4"><span class="std std-ref">15.4 Desplazamiento Horizontal</span></a>, para opciones que controlan cómo Emacs usa el área de eco.</p>
<p>El área de eco también se usa para mostrar el minibuffer, una ventana especial en la que se pueden introducir argumentos para los comandos, como el nombre de un archivo que se va a editar. Cuando se utiliza el minibuffer, el texto que aparece en el área de eco comienza con una cadena de comandos, y el cursor activo aparece dentro del minibuffer, que se considera temporalmente la ventana seleccionada. Siempre se puede salir del minibuffer 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>). Véase <a class="reference internal" href="CapConSecciones/15_ControlDisplay.html#id21"><span class="std std-ref">15.24 Personalización de la Pantalla</span></a>.</p>
<p>El área de eco también se usa para mostrar el minibuffer, una ventana especial en la que se pueden introducir argumentos para los comandos, como el nombre de un archivo que se va a editar. Cuando se utiliza el minibuffer, el texto que aparece en el área de eco comienza con una cadena de comandos, y el cursor activo aparece dentro del minibuffer, que se considera temporalmente la ventana seleccionada. Siempre se puede salir del minibuffer 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>). Véase <a class="reference internal" href="CapConSecciones/15_ControlDisplay.html#id22"><span class="std std-ref">15.24 Personalización de la Pantalla</span></a>.</p>
</section>
<section id="la-linea-de-modo">
<span id="id6"></span><h2>1.3 La línea de Modo<a class="headerlink" href="#la-linea-de-modo" title="Link to this heading"></a></h2>
@ -189,13 +189,13 @@
<p>Normalmente, el carácter que sigue a <em>ch</em> es un guión (<code class="docutils literal notranslate"><span class="pre">-</span></code>). Sin embargo, si el directorio por defecto (véase <a class="reference internal" href="CapConSecciones/19_ManejoArchivos.html#id2"><span class="std std-ref">19.1 Nombres de Archivos</span></a>) para el búfer actual está en una máquina remota, en su lugar aparece <code class="docutils literal notranslate"><span class="pre">&#64;</span></code>.</p>
<p><em>fr</em> da el nombre del marco seleccionado (ver <a class="reference internal" href="CapConSecciones/22_MarcosPantallasGraf.html#id1"><span class="std std-ref">22 Marcos y Pantallas Gráficas</span></a>). Sólo aparece en terminales de texto. El nombre del marco inicial es <code class="docutils literal notranslate"><span class="pre">F1</span></code>.</p>
<p><em>buf</em> es el nombre del buffer que se muestra en la ventana. Normalmente, es el mismo que el nombre del fichero que está editando. Véase <a class="reference internal" href="CapConSecciones/22_MarcosPantallasGraf.html#id1"><span class="std std-ref">22 Marcos y Pantallas Gráficas</span></a>.</p>
<p><em>pos</em> le indica si hay texto adicional por encima de la parte superior de la ventana, o por debajo de la parte inferior. Si su búfer es pequeño y todo él es visible en la ventana, <em>pos</em> es <code class="docutils literal notranslate"><span class="pre">All</span></code> (Todo). De lo contrario, es <code class="docutils literal notranslate"><span class="pre">Top</span></code> (Arriba) si está mirando al principio del buffer, <code class="docutils literal notranslate"><span class="pre">Bot</span></code> si está mirando al final del buffer, o <code class="docutils literal notranslate"><span class="pre">nn%</span></code>, donde <em>nn</em> es el porcentaje del buffer por encima de la parte superior de la ventana. Con el modo Indication Size Mode (modo Indicación de Tamaño), también puede mostrar el tamaño del búfer. Véase <a class="reference internal" href="CapConSecciones/15_ControlDisplay.html#id16"><span class="std std-ref">15.19 Características Opcionales de la Línea de Modo</span></a>.</p>
<p><em>line</em> (línea) es el carácter <code class="docutils literal notranslate"><span class="pre">L</span></code> seguido del número de línea en el punto. (También puede visualizar el número de columna actual, activando el modo Column Number (Número de Columna). Véase <a class="reference internal" href="CapConSecciones/15_ControlDisplay.html#id16"><span class="std std-ref">15.19 Características Opcionales de la Línea de Modo</span></a>).</p>
<p><em>pos</em> le indica si hay texto adicional por encima de la parte superior de la ventana, o por debajo de la parte inferior. Si su búfer es pequeño y todo él es visible en la ventana, <em>pos</em> es <code class="docutils literal notranslate"><span class="pre">All</span></code> (Todo). De lo contrario, es <code class="docutils literal notranslate"><span class="pre">Top</span></code> (Arriba) si está mirando al principio del buffer, <code class="docutils literal notranslate"><span class="pre">Bot</span></code> si está mirando al final del buffer, o <code class="docutils literal notranslate"><span class="pre">nn%</span></code>, donde <em>nn</em> es el porcentaje del buffer por encima de la parte superior de la ventana. Con el modo Indication Size Mode (modo Indicación de Tamaño), también puede mostrar el tamaño del búfer. Véase <a class="reference internal" href="CapConSecciones/15_ControlDisplay.html#id17"><span class="std std-ref">15.19 Características Opcionales de la Línea de Modo</span></a>.</p>
<p><em>line</em> (línea) es el carácter <code class="docutils literal notranslate"><span class="pre">L</span></code> seguido del número de línea en el punto. (También puede visualizar el número de columna actual, activando el modo Column Number (Número de Columna). Véase <a class="reference internal" href="CapConSecciones/15_ControlDisplay.html#id17"><span class="std std-ref">15.19 Características Opcionales de la Línea de Modo</span></a>).</p>
<p><em>major</em> es el nombre del <em>modo principal</em> (o Modo Mayor) utilizado en el búfer. Un modo principal es un modo de edición principal para el búfer, como el modo Texto, el modo Lisp, el modo C, etc. Véase <a class="reference internal" href="CapConSecciones/24_ModosMayores-Y-Menores.html#id2"><span class="std std-ref">24.1 Modos Mayores (o Principales)</span></a>. Algunos modos principales muestran información adicional después del nombre del modo principal. Por ejemplo, los buffers de Compilación y Shell muestran el estado del subproceso.</p>
<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#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>
<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#id19"><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.56
Traducción Revisón: 1.59
</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#id19"><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#id20"><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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@ -138,10 +138,10 @@
<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#id16"><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#id17"><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>
<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#id6"><span class="std std-ref">50.2 Variables</span></a>) y la información sobre variables específicas tendrá sentido.</p>
</section>

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.56
Traducción Revisón: 1.59
</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#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>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#id25"><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.56
Traducción Revisón: 1.59
</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#id16"><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#id17"><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.56
Traducción Revisón: 1.59
</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#id22"><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#id23"><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#id22"><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#id23"><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#id22"><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#id23"><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#id22"><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#id23"><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>
@ -321,7 +321,7 @@ verticalmente. La columna de meta permanece vigente hasta que se cancela.</p>
<blockquote>
<div><p>Anula la columna de meta. En adelante, <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> intentan conservar la posición horizontal, como de costumbre.</p>
</div></blockquote>
<p>Cuando una línea de texto en el buffer es más larga que el ancho de la ventana, Emacs normalmente la muestra en dos o más líneas de pantalla. Por comodidad, <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>) y <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>) mueven el punto por líneas de pantalla, al igual que las teclas equivalentes abajo y arriba. Puede forzar que estos comandos se muevan según las líneas lógicas (es decir, según las líneas de texto en el buffer) estableciendo la variable <code class="docutils literal notranslate"><span class="pre">line-move-visual</span></code> a <code class="docutils literal notranslate"><span class="pre">nil</span></code>; si una línea lógica ocupa varias líneas de pantalla, el cursor se salta entonces las líneas de pantalla adicionales. Para más detalles, véase <a class="reference internal" href="#id7"><span class="std std-ref">8.8 Líneas de Continuación</span></a>. Véase <a class="reference internal" href="50_Personlzc.html#id5"><span class="std std-ref">50.2 Variables</span></a>, para saber cómo establecer variables como <code class="docutils literal notranslate"><span class="pre">line-move-visual</span></code>.</p>
<p>Cuando una línea de texto en el buffer es más larga que el ancho de la ventana, Emacs normalmente la muestra en dos o más líneas de pantalla. Por comodidad, <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>) y <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>) mueven el punto por líneas de pantalla, al igual que las teclas equivalentes abajo y arriba. Puede forzar que estos comandos se muevan según las líneas lógicas (es decir, según las líneas de texto en el buffer) estableciendo la variable <code class="docutils literal notranslate"><span class="pre">line-move-visual</span></code> a <code class="docutils literal notranslate"><span class="pre">nil</span></code>; si una línea lógica ocupa varias líneas de pantalla, el cursor se salta entonces las líneas de pantalla adicionales. Para más detalles, véase <a class="reference internal" href="#id7"><span class="std std-ref">8.8 Líneas de Continuación</span></a>. Véase <a class="reference internal" href="50_Personlzc.html#id6"><span class="std std-ref">50.2 Variables</span></a>, para saber cómo establecer variables como <code class="docutils literal notranslate"><span class="pre">line-move-visual</span></code>.</p>
<p>A diferencia de <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>, la mayoría de los comandos Emacs que trabajan sobre líneas trabajan sobre líneas lógicas. Por ejemplo, <code class="docutils literal notranslate"><span class="pre">C-a</span></code> (<code class="docutils literal notranslate"><span class="pre">move-beginning-of-line</span></code>, mover-principio-de-línea) y <code class="docutils literal notranslate"><span class="pre">C-e</span></code> (<code class="docutils literal notranslate"><span class="pre">move-end-of-line</span></code>, mover-fin-de-línea) se mueven respectivamente al principio y al final de la línea lógica. Siempre que encontremos comandos que trabajen sobre líneas de pantalla, como <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>, los señalaremos.</p>
<p>Cuando <code class="docutils literal notranslate"><span class="pre">line-move-visual</span></code> es <code class="docutils literal notranslate"><span class="pre">nil</span></code> (nulo), también puede establecer la variable <code class="docutils literal notranslate"><span class="pre">track-eol</span></code> a un valor no nulo. Entonces <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>, cuando empiezan al final de la línea lógica, se mueven al final de la siguiente línea lógica. Normalmente, <code class="docutils literal notranslate"><span class="pre">track-eol</span></code> es <code class="docutils literal notranslate"><span class="pre">nil</span></code>.</p>
<p><code class="docutils literal notranslate"><span class="pre">C-n</span></code> normalmente se detiene al final del buffer cuando lo usa en la última línea del buffer. Sin embargo, si establece la variable next-line-add-newlines a un valor no nulo, <code class="docutils literal notranslate"><span class="pre">C-n</span></code> en la última línea de un buffer crea una línea adicional al final y se mueve hacia abajo en ella.</p>
@ -414,9 +414,9 @@ verticalmente. La columna de meta permanece vigente hasta que se cancela.</p>
<span id="id7"></span><h2>8.8 Líneas de Continuación<a class="headerlink" href="#lineas-de-continuacion" title="Link to this heading"></a></h2>
<p>A veces, una línea de texto en el buffer -una <em>línea lógica</em>- es demasiado larga para caber en la ventana, y Emacs la muestra como dos o más <em>líneas en pantalla</em>. Esto se llama <em>ajuste de línea o continuación</em>, y la línea lógica larga se llama <em>línea continuada</em>. En una pantalla gráfica, el Editor indica el ajuste de línea con pequeñas flechas dobladas en los bordes izquierdo y derecho de la ventana. En un terminal de texto, Emacs indica el ajuste de línea mostrando un carácter <code class="docutils literal notranslate"><span class="pre">\</span></code> en el margen derecho.</p>
<p>La mayoría de los comandos que actúan sobre líneas lo hacen sobre líneas lógicas, no sobre líneas de pantalla. Por ejemplo, <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>) elimina una línea lógica. Como se describió anteriormente, <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>, <code class="docutils literal notranslate"><span class="pre">next-line</span></code>, línea-siguiente) y <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>, <code class="docutils literal notranslate"><span class="pre">previous-line</span></code>, línea-anterior) son excepciones especiales: mueven el punto hacia abajo y hacia arriba, respectivamente, una línea de pantalla (ver <a class="reference internal" href="#id3"><span class="std std-ref">8.2 Cambiar la Ubicación del Punto</span></a>).</p>
<p>Emacs puede opcionalmente <em>truncar</em> líneas lógicas largas en lugar de continuarlas. Esto significa que cada línea lógica ocupa una sola línea de pantalla; si es más larga que el ancho de la ventana, el resto de la línea no se muestra. En una pantalla gráfica, una línea truncada se indica mediante una pequeña flecha recta en la franja derecha; en un terminal de texto, se indica mediante un carácter <code class="docutils literal notranslate"><span class="pre">$</span></code> en el margen derecho. Véase <a class="reference internal" href="15_ControlDisplay.html#id19"><span class="std std-ref">15.22 Truncado de Línea</span></a>.</p>
<p>Emacs puede opcionalmente <em>truncar</em> líneas lógicas largas en lugar de continuarlas. Esto significa que cada línea lógica ocupa una sola línea de pantalla; si es más larga que el ancho de la ventana, el resto de la línea no se muestra. En una pantalla gráfica, una línea truncada se indica mediante una pequeña flecha recta en la franja derecha; en un terminal de texto, se indica mediante un carácter <code class="docutils literal notranslate"><span class="pre">$</span></code> en el margen derecho. Véase <a class="reference internal" href="15_ControlDisplay.html#id20"><span class="std std-ref">15.22 Truncado de Línea</span></a>.</p>
<p>Por defecto, las líneas continuas se ajustan al borde derecho de la ventana. Dado que el ajuste puede producirse en medio de una palabra, las líneas continuas pueden ser difíciles de leer. La solución habitual es romper las líneas antes de que sean demasiado largas, insertando nuevas líneas. Si lo prefiere, puede hacer que Emacs inserte una nueva línea automáticamente cuando una línea se hace demasiado larga, usando el modo Auto Relleno (Auto Fill mode). Vea <a class="reference internal" href="26_ComandsLengsHuma.html#id7"><span class="std std-ref">26.6 Rellenar Texto</span></a>.</p>
<p>A veces, puede que necesite editar ficheros que contienen muchas líneas lógicas largas, y puede que no sea práctico romperlas todas añadiendo nuevas líneas. En ese caso, puedes usar el modo Línea Visual, que activa el <em>ajuste de palabras:</em> en lugar de ajustar las líneas largas exactamente en el borde derecho de la ventana, Emacs las ajusta en los límites de palabra (es decir, espacios o tabuladores) más cercanos al borde derecho de la ventana. El modo Línea Visual también redefine comandos de edición como <code class="docutils literal notranslate"><span class="pre">C-a</span></code>, <code class="docutils literal notranslate"><span class="pre">C-n</span></code>, y <code class="docutils literal notranslate"><span class="pre">C-k</span></code> para operar en líneas de pantalla en lugar de líneas lógicas. Véase <a class="reference internal" href="15_ControlDisplay.html#id20"><span class="std std-ref">15.23 Modo de Línea Visual</span></a>.</p>
<p>A veces, puede que necesite editar ficheros que contienen muchas líneas lógicas largas, y puede que no sea práctico romperlas todas añadiendo nuevas líneas. En ese caso, puedes usar el modo Línea Visual, que activa el <em>ajuste de palabras:</em> en lugar de ajustar las líneas largas exactamente en el borde derecho de la ventana, Emacs las ajusta en los límites de palabra (es decir, espacios o tabuladores) más cercanos al borde derecho de la ventana. El modo Línea Visual también redefine comandos de edición como <code class="docutils literal notranslate"><span class="pre">C-a</span></code>, <code class="docutils literal notranslate"><span class="pre">C-n</span></code>, y <code class="docutils literal notranslate"><span class="pre">C-k</span></code> para operar en líneas de pantalla en lugar de líneas lógicas. Véase <a class="reference internal" href="15_ControlDisplay.html#id21"><span class="std std-ref">15.23 Modo de Línea Visual</span></a>.</p>
</section>
<section id="informacion-sobre-la-posicion-del-cursor">
<span id="id8"></span><h2>8.9 Información sobre la posición del cursor<a class="headerlink" href="#informacion-sobre-la-posicion-del-cursor" title="Link to this heading"></a></h2>
@ -430,7 +430,7 @@ verticalmente. La columna de meta permanece vigente hasta que se cancela.</p>
<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">column-number-mode</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">column-number-mode</span></code>)</div>
</div>
<blockquote>
<div><p>Alterna la visualización automática del número de línea o columna actual. Véase <a class="reference internal" href="15_ControlDisplay.html#id8"><span class="std std-ref">15.9 Colores de las Caras</span></a>. Si desea que se muestre un número de línea antes de cada línea, consulte <a class="reference internal" href="15_ControlDisplay.html#id21"><span class="std std-ref">15.24 Personalización de la Pantalla</span></a>.</p>
<div><p>Alterna la visualización automática del número de línea o columna actual. Véase <a class="reference internal" href="15_ControlDisplay.html#id9"><span class="std std-ref">15.9 Colores de las Caras</span></a>. Si desea que se muestre un número de línea antes de cada línea, consulte <a class="reference internal" href="15_ControlDisplay.html#id22"><span class="std std-ref">15.24 Personalización de la Pantalla</span></a>.</p>
</div></blockquote>
<p><kbd class="kbd docutils literal notranslate">Alt</kbd>-<cite>x</cite> (<code class="docutils literal notranslate"><span class="pre">M-x</span></code>)</p>
<blockquote>
@ -446,11 +446,11 @@ verticalmente. La columna de meta permanece vigente hasta que se cancela.</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">hl-line-mode</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">hl-line-mode</span></code>)</p>
<blockquote>
<div><p>Activa o desactiva el resaltado de la línea actual. Véase <a class="reference internal" href="15_ControlDisplay.html#id18"><span class="std std-ref">15.21 Visualización del Cursor</span></a>.</p>
<div><p>Activa o desactiva el resaltado de la línea actual. Véase <a class="reference internal" href="15_ControlDisplay.html#id19"><span class="std std-ref">15.21 Visualización del Cursor</span></a>.</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">size-indication-mode</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">size-indication-mode</span></code>)</p>
<blockquote>
<div><p>Alterna la visualización automática del tamaño del buffer. Véase <a class="reference internal" href="15_ControlDisplay.html#id16"><span class="std std-ref">15.19 Características Opcionales de la Línea de Modo</span></a>.</p>
<div><p>Alterna la visualización automática del tamaño del buffer. Véase <a class="reference internal" href="15_ControlDisplay.html#id17"><span class="std std-ref">15.19 Características Opcionales de la Línea de Modo</span></a>.</p>
</div></blockquote>
<p><code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">what-line</span></code> muestra el número de línea actual en el área de eco. Este comando suele ser redundante porque dicho número de línea se muestra en 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>). Sin embargo, si se estrecha el búfer, la línea de modo muestra el número de línea relativo a la parte accesible (véase <a class="reference internal" href="15_ControlDisplay.html#id1"><span class="std std-ref">15 Controlando la Pantalla</span></a>). Por el contrario, <code class="docutils literal notranslate"><span class="pre">what-line</span></code> muestra tanto el número de línea relativo a la región reducida como el relativo al búfer.</p>
<p><code class="docutils literal notranslate"><span class="pre">M-=</span></code> (<code class="docutils literal notranslate"><span class="pre">count-words-region</span></code>) muestra un mensaje que informa del número de líneas, frases, palabras y caracteres de la región (véase La marca y la Región, para una explicación de la región). Con un argumento prefijo, <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">=</kbd> (<code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">M-=</span></code>), el comando muestra un recuento para todo el búfer.</p>
@ -469,7 +469,7 @@ verticalmente. La columna de meta permanece vigente hasta que se cancela.</p>
</pre></div>
</div>
<p>donde los dos números extra dan la posición de carácter más pequeño y más grande que ese punto puede asumir. Los caracteres entre esas dos posiciones son los accesibles. Véase <a class="reference internal" href="15_ControlDisplay.html#id5"><span class="std std-ref">15.5 Estrechamiento</span></a>.</p>
<p>Una función relacionada, pero diferente, es el modo de visualización de números de línea (véase <a class="reference internal" href="15_ControlDisplay.html#id21"><span class="std std-ref">15.24 Personalización de la Pantalla</span></a>).</p>
<p>Una función relacionada, pero diferente, es el modo de visualización de números de línea (véase <a class="reference internal" href="15_ControlDisplay.html#id22"><span class="std std-ref">15.24 Personalización de la Pantalla</span></a>).</p>
</section>
<section id="argumentos-numericos">
<span id="id9"></span><h2>8.10 Argumentos Numéricos<a class="headerlink" href="#argumentos-numericos" 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.56
Traducción Revisón: 1.59
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -156,7 +156,7 @@
<p>El <em>minibuffer</em> es donde los comandos Emacs leen argumentos complejos, como nombres de ficheros, nombres de buffer, nombres de comandos Emacs o expresiones Lisp. Lo llamamos «minibuffer» porque es un buffer de propósito especial con una pequeña cantidad de espacio en pantalla. Puede usar los comandos de edición habituales de Emacs en el minibuffer para editar el texto del argumento.</p>
<section id="utilizacion-del-minibuffer">
<h2>9.1 Utilización del minibuffer<a class="headerlink" href="#utilizacion-del-minibuffer" title="Link to this heading"></a></h2>
<p>Cuando el minibuffer está en uso, aparece en el área de eco, con un cursor. El minibuffer comienza con un prompt, que suele terminar con dos puntos. En él se indica qué tipo de entrada se espera y cómo se utilizará. El <em>prompt</em> se resalta usando la cara configurada mediante <code class="docutils literal notranslate"><span class="pre">minibuffer-prompt</span></code> (ver <a class="reference internal" href="15_ControlDisplay.html#id7"><span class="std std-ref">15.8. Caras de Texto</span></a>).</p>
<p>Cuando el minibuffer está en uso, aparece en el área de eco, con un cursor. El minibuffer comienza con un prompt, que suele terminar con dos puntos. En él se indica qué tipo de entrada se espera y cómo se utilizará. El <em>prompt</em> se resalta usando la cara configurada mediante <code class="docutils literal notranslate"><span class="pre">minibuffer-prompt</span></code> (ver <a class="reference internal" href="15_ControlDisplay.html#id8"><span class="std std-ref">15.8. Caras de Texto</span></a>).</p>
<p>La forma más sencilla de introducir un argumento en el minibuffer es teclear el texto, luego <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">RET</span></code>) para enviar el argumento y salir del minibuffer. Alternativamente, puede teclear <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>) para salir del minibuffer cancelando el comando que pide el argumento (ver <a class="reference internal" href="51-SalirAbortar.html#id1"><span class="std std-ref">51 Salir y Abortar</span></a>).</p>
<p>A veces, el prompt muestra un <em>argumento por defecto</em>, entre paréntesis antes de los dos puntos. Este argumento por defecto se usará como argumento si teclea <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">RET</span></code>). Por ejemplo, los comandos que leen nombres de buffer usualmente muestran un nombre de buffer como argumento por defecto; puede teclear <kbd class="kbd docutils literal notranslate">RETURN</kbd> ( para operar en ese buffer por defecto. Puede personalizar cómo se muestra el argumento por defecto con la opción de usuario <code class="docutils literal notranslate"><span class="pre">minibuffer-default-prompt-format</span></code>.</p>
<p>Si activa el modo Minibuffer Electric Default, un modo global menor, Emacs oculta el argumento por defecto tan pronto como modifica el contenido del minibuffer (ya que tecleando <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">RET</span></code>) dejaría de presentar ese valor por defecto). Si alguna vez vuelve al texto original del minibuffer, el prompt vuelve a mostrar el argumento por defecto. Para activar este modo menor, 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">minibuffer-electric-default-mode</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span></code> <code class="docutils literal notranslate"><span class="pre">minibuffer-electric-default-mode</span></code>).</p>
@ -177,11 +177,11 @@
</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#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>Cuando se completan nombres de ficheros remotos (ver <a class="reference internal" href="19_ManejoArchivos.html#id13"><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#id20"><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#id25"><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>
@ -413,8 +413,8 @@ historial (<code class="docutils literal notranslate"><span class="pre">previous
<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#id20"><span class="std std-ref">19.15 Archivos Remotos</span></a>).</p>
<span id="id11"></span><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#id25"><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.56
Traducción Revisón: 1.59
</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#id15"><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#id16"><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.56
Traducción Revisón: 1.59
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -326,7 +326,7 @@ Puede usar una expresión regular como <em>argumento</em>.</p>
<p><code class="docutils literal notranslate"><span class="pre">C-h</span> <span class="pre">f</span></code> también es útil para verificar que ha escrito correctamente el nombre de una función. Si el prompt del minibúfer para <code class="docutils literal notranslate"><span class="pre">C-h</span> <span class="pre">f</span></code> muestra el nombre de la función del búfer por defecto, significa que ese nombre está definido como una función Lisp. Escriba <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>) para cancelar el comando <code class="docutils literal notranslate"><span class="pre">C-h</span> <span class="pre">f</span></code> si realmente no desea ver la documentación.</p>
<p>Si solicita ayuda para una función autocargada cuyo formulario <code class="docutils literal notranslate"><span class="pre">autoload</span></code> (<strong>vea Autocarga</strong> en el Manual de Referencia de Emacs Lisp) no proporciona una cadena doc, el búfer <code class="docutils literal notranslate"><span class="pre">*Help*</span></code> no tendrá ninguna cadena doc para mostrar. En ese caso, si <code class="docutils literal notranslate"><span class="pre">help-enable-symbol-autoload</span></code> es distinto de <code class="docutils literal notranslate"><span class="pre">nil</span></code>, Emacs intentará cargar el fichero en el que está definida la función para ver si hay una cadena doc allí.</p>
<p>Puede obtener una visión general de las funciones relevantes para un tema en particular usando 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">shortdoc</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">shortdoc</span></code>). Esto le preguntará por un área de interés, por ejemplo, <kbd class="kbd docutils literal notranslate">string</kbd> (cadena), y le llevará a un búfer donde se listan muchas de las funciones relevantes para el manejo de cadenas.</p>
<p><code class="docutils literal notranslate"><span class="pre">C-h</span> <span class="pre">v</span></code> (<code class="docutils literal notranslate"><span class="pre">describe-variable</span></code>) es como <code class="docutils literal notranslate"><span class="pre">C-h</span> <span class="pre">f</span></code> pero describe variables Lisp en lugar de funciones Lisp. Su valor por defecto es el símbolo Lisp alrededor o antes de punto, si ese es el nombre de una variable Lisp definida. Véase <a class="reference internal" href="50_Personlzc.html#id5"><span class="std std-ref">50.2 Variables</span></a>.</p>
<p><code class="docutils literal notranslate"><span class="pre">C-h</span> <span class="pre">v</span></code> (<code class="docutils literal notranslate"><span class="pre">describe-variable</span></code>) es como <code class="docutils literal notranslate"><span class="pre">C-h</span> <span class="pre">f</span></code> pero describe variables Lisp en lugar de funciones Lisp. Su valor por defecto es el símbolo Lisp alrededor o antes de punto, si ese es el nombre de una variable Lisp definida. Véase <a class="reference internal" href="50_Personlzc.html#id6"><span class="std std-ref">50.2 Variables</span></a>.</p>
<p>Los búferes de ayuda que describen variables y funciones Emacs normalmente tienen hipervínculos al código fuente correspondiente, si tiene instalados los archivos fuente (vea <a class="reference internal" href="47_FuncHiperv-Y-NavWeb.html#id1"><span class="std std-ref">47 Funciones de Hiperenlace y Navegación web</span></a>).</p>
<p>Para encontrar la documentación de un comando en un manual, use <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">h</kbd> <kbd class="kbd docutils literal notranslate">F</kbd> (<code class="docutils literal notranslate"><span class="pre">C-h</span> <span class="pre">F</span></code>, <code class="docutils literal notranslate"><span class="pre">Info-goto-emacs-command-node</span></code>). Esto conoce varios manuales, no sólo el manual de Emacs, y encuentra el correcto.</p>
<p><code class="docutils literal notranslate"><span class="pre">C-h</span> <span class="pre">o</span></code> (<code class="docutils literal notranslate"><span class="pre">describe-symbol</span></code>) es como <code class="docutils literal notranslate"><span class="pre">C-h</span> <span class="pre">f</span></code> y <code class="docutils literal notranslate"><span class="pre">C-h</span> <span class="pre">v</span></code>, pero describe cualquier símbolo, ya sea una función, una variable o una cara. si el símbolo tiene más de una definición, como por ejemplo tiene ambas definiciones, como función y como variable, este comando mostrará la documentación de todas ellas, una tras otra.</p>
@ -448,7 +448,7 @@ describir, por defecto.</p>
<blockquote>
<div><p>Personaliza la variable o la cara (<code class="docutils literal notranslate"><span class="pre">help-customize</span></code>).</p>
</div></blockquote>
<p>Cuando un nombre de función, de variable o de cara (véase <a class="reference internal" href="15_ControlDisplay.html#id7"><span class="std std-ref">15.8. Caras de Texto</span></a>) aparece en la documentación en el búfer de ayuda, normalmente es un <em>hipervínculo</em> subrayado. Para ver la documentación asociada, mueva el punto allí y escriba <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">help-follow</span></code>), o haga clic en el hipervínculo con <code class="docutils literal notranslate"><span class="pre">ratón-1</span></code> o <code class="docutils literal notranslate"><span class="pre">ratón-2</span></code>. Al hacerlo, se reemplaza el contenido del búfer de ayuda. Para volver sobre sus pasos, escriba <code class="docutils literal notranslate"><span class="pre">C-c</span> <span class="pre">C-b</span></code> o <code class="docutils literal notranslate"><span class="pre">l</span></code> (<code class="docutils literal notranslate"><span class="pre">help-go-back</span></code>). Mientras vuelve sobre sus pasos, puede avanzar utilizando <code class="docutils literal notranslate"><span class="pre">C-c</span> <span class="pre">C-f</span></code> o <code class="docutils literal notranslate"><span class="pre">r</span></code> (<code class="docutils literal notranslate"><span class="pre">help-go-forward</span></code>).</p>
<p>Cuando un nombre de función, de variable o de cara (véase <a class="reference internal" href="15_ControlDisplay.html#id8"><span class="std std-ref">15.8. Caras de Texto</span></a>) aparece en la documentación en el búfer de ayuda, normalmente es un <em>hipervínculo</em> subrayado. Para ver la documentación asociada, mueva el punto allí y escriba <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">help-follow</span></code>), o haga clic en el hipervínculo con <code class="docutils literal notranslate"><span class="pre">ratón-1</span></code> o <code class="docutils literal notranslate"><span class="pre">ratón-2</span></code>. Al hacerlo, se reemplaza el contenido del búfer de ayuda. Para volver sobre sus pasos, escriba <code class="docutils literal notranslate"><span class="pre">C-c</span> <span class="pre">C-b</span></code> o <code class="docutils literal notranslate"><span class="pre">l</span></code> (<code class="docutils literal notranslate"><span class="pre">help-go-back</span></code>). Mientras vuelve sobre sus pasos, puede avanzar utilizando <code class="docutils literal notranslate"><span class="pre">C-c</span> <span class="pre">C-f</span></code> o <code class="docutils literal notranslate"><span class="pre">r</span></code> (<code class="docutils literal notranslate"><span class="pre">help-go-forward</span></code>).</p>
<p>Para desplazarse entre hipervínculos en un búfer de ayuda, use <kbd class="kbd docutils literal notranslate">TAB</kbd> (<code class="docutils literal notranslate"><span class="pre">TAB</span></code>, <code class="docutils literal notranslate"><span class="pre">forward-button</span></code>) para avanzar al siguiente hipervínculo y <kbd class="kbd docutils literal notranslate">Shift</kbd>-<kbd class="kbd docutils literal notranslate">TAB</kbd> (<code class="docutils literal notranslate"><span class="pre">``S-TAB</span></code>, <code class="docutils literal notranslate"><span class="pre">backward-button</span></code>) para retroceder al hipervínculo anterior. Estos comandos actúan cíclicamente; por ejemplo, si se escribe <kbd class="kbd docutils literal notranslate">TAB</kbd> en el último hipervínculo, se retrocede al primer hipervínculo.</p>
<p>Por defecto, muchos de los enlaces del búfer de ayuda se muestran rodeados de comillas. Si la opción de Usuario <code class="docutils literal notranslate"><span class="pre">help-clean-buttons</span></code> no es nula, estos caracteres entrecomillados se eliminan del búfer.</p>
<p>Los búfers de ayuda producidos por algunos comandos de ayuda (como <code class="docutils literal notranslate"><span class="pre">C-h</span> <span class="pre">b</span></code>, que muestra una larga lista de combinaciones de teclas) se dividen en páginas mediante el carácter <code class="docutils literal notranslate"><span class="pre">^L</span></code>. En estos búferes, el comando <kbd class="kbd docutils literal notranslate">n</kbd> (<code class="docutils literal notranslate"><span class="pre">n</span></code>, <code class="docutils literal notranslate"><span class="pre">help-goto-next-page</span></code>) lo llevará al siguiente inicio de página, y el comando <kbd class="kbd docutils literal notranslate">p</kbd> (<code class="docutils literal notranslate"><span class="pre">p</span></code>, <code class="docutils literal notranslate"><span class="pre">help-goto-previous-page</span></code>) lo llevará al anterior inicio de página. De esta forma podrá navegar rápidamente entre los distintos tipos de documentación de un búfer de ayuda.</p>
@ -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#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><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#id16"><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#id18"><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#id19"><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.56
Traducción Revisón: 1.59
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -148,7 +148,7 @@
<p>Emacs, como muchas otras aplicaciones, le permite seleccionar alguna parte arbitraria del texto del buffer e invocar comandos que operan sobre dicho <em>texto seleccionado</em>. En Emacs, llamamos <em>región</em> al texto seleccionado; su manejo es muy similar al del texto seleccionado en otros programas, pero también hay diferencias importantes.</p>
<p>La región es la porción del buffer entre <em>la marca</em> y la posición actual del <em>punto</em>. Puede definir una región colocando la marca en algún lugar (por ejemplo, con el comando <code class="docutils literal notranslate"><span class="pre">C-SPC</span></code>) y moviendo el punto hasta donde desee que termine la región. (O puede usar el ratón para definir una región).</p>
<p>La región siempre se extiende entre el punto y la marca, independientemente de cuál de ellos se encuentre antes en el texto; cada vez que mueve el punto, la región cambia.</p>
<p>Al colocar la marca en una posición del texto, ésta se <em>activa</em>. Cuando la marca está activa, decimos también que la región está activa; Emacs indica su extensión resaltando el texto dentro de ella, usando la cara de la <code class="docutils literal notranslate"><span class="pre">region</span></code> (ver <a class="reference internal" href="50_Personlzc.html#id3"><span class="std std-ref">50.1.5. Personalización de Caras</span></a>).</p>
<p>Al colocar la marca en una posición del texto, ésta se <em>activa</em>. Cuando la marca está activa, decimos también que la región está activa; Emacs indica su extensión resaltando el texto dentro de ella, usando la cara de la <code class="docutils literal notranslate"><span class="pre">region</span></code> (ver <a class="reference internal" href="50_Personlzc.html#id4"><span class="std std-ref">50.1.5. Personalización de Caras</span></a>).</p>
<p>Después de ciertos comandos que no son de movimiento, incluyendo cualquier comando que cambie el texto en el buffer, Emacs desactiva automáticamente la marca; esto apaga el resaltado. También puede desactivar explícitamente la marca en cualquier momento, 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>) (véase <a class="reference internal" href="51-SalirAbortar.html#id1"><span class="std std-ref">51 Salir y Abortar</span></a>).</p>
<p>Muchos comandos limitan el texto sobre el que actúan a la región activa. Por ejemplo, el comando <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>) (que reemplaza el texto coincidente) normalmente funciona en toda la porción accesible del buffer, pero si tiene una región activa, funcionará sólo en esa región.</p>
<p>La marca es útil aunque no esté activa. Por ejemplo, puede desplazarse a ubicaciones de marcas anteriores usando el anillo de marcas. Véase <a class="reference internal" href="#id7"><span class="std std-ref">12.4 El Anillo de Marcas</span></a>. Además, algunos comandos tendrán efecto incluso en una región inactiva (por ejemplo, <em>upcase-region</em>). También puede reactivar la región con comandos como <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> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-x</span></code>).</p>

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.56
Traducción Revisón: 1.59
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -334,7 +334,7 @@
<section id="operaciones-de-cortar-y-pegar-en-entornos-graficos-de-escritorio">
<span id="id8"></span><h2>13.3 Operaciones de «cortar y pegar» en Entornos Gráficos de Escritorio<a class="headerlink" href="#operaciones-de-cortar-y-pegar-en-entornos-graficos-de-escritorio" title="Link to this heading"></a></h2>
<p>En la mayoría de los entornos gráficos de escritorio, puede transferir datos (normalmente texto) entre diferentes aplicaciones utilizando una función del sistema llamada <em>portapapeles</em>. En X, existen otras dos facilidades similares: la selección primaria y la selección secundaria. Cuando Emacs se ejecuta en una pantalla gráfica, sus comandos kill y yank se integran con estas facilidades, de modo que puedes transferir texto fácilmente entre Emacs y otras aplicaciones gráficas.</p>
<p>Por defecto, Emacs usa UTF-8 como sistema de codificación para las transferencias de texto entre programas. Si encuentra que el texto pegado no es lo que esperaba, puede especificar otro sistema de codificación tecleando <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">RETURN</kbd> <kbd class="kbd docutils literal notranslate">x</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">RET</span> <span class="pre">x</span></code>) o <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">RETURN</kbd> <kbd class="kbd docutils literal notranslate">X</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">RET</span> <span class="pre">X</span></code>). También puede solicitar un tipo de datos diferente personalizando <code class="docutils literal notranslate"><span class="pre">x-select-request-type</span></code>. Véase <a class="reference internal" href="23_SoporteJuegoCaracIntern.html#id11"><span class="std std-ref">23.10 Sistemas de Codificación para la Comunicación Interprocesos</span></a>.</p>
<p>Por defecto, Emacs usa UTF-8 como sistema de codificación para las transferencias de texto entre programas. Si encuentra que el texto pegado no es lo que esperaba, puede especificar otro sistema de codificación tecleando <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">RETURN</kbd> <kbd class="kbd docutils literal notranslate">x</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">RET</span> <span class="pre">x</span></code>) o <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">RETURN</kbd> <kbd class="kbd docutils literal notranslate">X</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">RET</span> <span class="pre">X</span></code>). También puede solicitar un tipo de datos diferente personalizando <code class="docutils literal notranslate"><span class="pre">x-select-request-type</span></code>. Véase <a class="reference internal" href="23_SoporteJuegoCaracIntern.html#id12"><span class="std std-ref">23.10 Sistemas de Codificación para la Comunicación Interprocesos</span></a>.</p>
<section id="utilizar-el-portapapeles">
<span id="id9"></span><h3>13.3.1 Utilizar el Portapapeles<a class="headerlink" href="#utilizar-el-portapapeles" title="Link to this heading"></a></h3>
<p>El <em>portapapeles</em> es la herramienta que la mayoría de las aplicaciones gráficas utilizan para «cortar y pegar». Cuando el portapapeles existe, los comandos kill y yank de Emacs hacen uso de él.</p>

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -198,10 +198,10 @@
<p>El número de líneas de solapamiento que dejan estos comandos de desplazamiento está controlado por la variable <code class="docutils literal notranslate"><span class="pre">next-screen-context-lines</span></code>, cuyo valor por defecto es 2. Puede suministrar a los comandos un argumento prefijo numérico, <em>n</em>, para desplazarse <em>n</em> líneas; Emacs intenta dejar el punto sin cambios, de modo que el texto y el punto se muevan juntos hacia arriba o hacia abajo. <code class="docutils literal notranslate"><span class="pre">C-v</span></code> con un argumento negativo es como <code class="docutils literal notranslate"><span class="pre">M-v</span></code> y viceversa.</p>
<p>Por defecto, estos comandos señalan un error (pitando o parpadeando la pantalla) si no es posible más desplazamiento, porque la ventana ha alcanzado el principio o el final del buffer. Si cambia la variable <code class="docutils literal notranslate"><span class="pre">scroll-error-top-bottom</span></code> a <code class="docutils literal notranslate"><span class="pre">t</span></code>, estos comandos mueven el punto a la posición más lejana posible. Si el punto ya está allí, los comandos indican un error.</p>
<p>A algunos Usuarios les gusta que los comandos de desplazamiento mantengan el punto en la misma posición de la pantalla, de modo que el desplazamiento de vuelta a la misma pantalla devuelva convenientemente el punto a su posición original. Puede activar este comportamiento mediante la variable <code class="docutils literal notranslate"><span class="pre">scroll-preserve-screen-position</span></code>. Si el valor es <code class="docutils literal notranslate"><span class="pre">t</span></code>, Emacs ajusta el punto para mantener el cursor en la misma posición de la pantalla cada vez que un comando de desplazamiento lo mueve fuera de la ventana, en lugar de moverlo a la línea superior o inferior. Con cualquier otro valor que no sea nulo, Emacs ajusta el punto de esta manera incluso si el comando de desplazamiento deja el punto en la ventana. Esta variable afecta a todos los comandos de desplazamiento documentados en esta sección, así como al desplazamiento con la rueda del ratón (ver <a class="reference internal" href="22_MarcosPantallasGraf.html#id2"><span class="std std-ref">22.1 Comandos del Ratón para Edición</span></a>); en general, afecta a cualquier comando que tenga una propiedad <code class="docutils literal notranslate"><span class="pre">scroll-command</span></code> no nula. Ver <strong>Lista de Propiedades</strong> en el Manual de Referencia de Emacs Lisp. La misma propiedad también causa que Emacs no salga de la búsqueda incremental cuando uno de estos comandos es invocado y luego, <code class="docutils literal notranslate"><span class="pre">isearch-allow-scroll</span></code> es no-<code class="docutils literal notranslate"><span class="pre">nil</span></code> (ver <a class="reference internal" href="16_BusqReemp.html#id8"><span class="std std-ref">16.1.6 No Salir de la Búsqueda Incremental</span></a>).</p>
<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>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="#id12"><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="#id12"><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#id18"><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#id19"><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>
@ -242,7 +242,7 @@ línea superior, la inferior y así sucesivamente en orden cíclico. Es posible
</section>
<section id="desplazamiento-horizontal">
<span id="id4"></span><h2>15.4 Desplazamiento Horizontal<a class="headerlink" href="#desplazamiento-horizontal" title="Link to this heading"></a></h2>
<p>El <em>desplazamiento horizontal</em> significa desplazar todas las líneas lateralmente dentro de una ventana, de modo que parte del texto cercano al margen izquierdo no se muestra. Cuando el texto de una ventana se desplaza horizontalmente, las líneas de texto se truncan en lugar de continuar (véase <a class="reference internal" href="#id19"><span class="std std-ref">15.22 Truncado de Línea</span></a>). Si una ventana muestra líneas truncadas, Emacs realiza un desplazamiento horizontal automático cada vez que un punto se aleja del borde izquierdo o derecho de la pantalla. Por defecto, todas las líneas de la ventana se desplazan horizontalmente juntas, pero si establece la variable <code class="docutils literal notranslate"><span class="pre">auto-hscroll-mode</span></code> al valor especial de <code class="docutils literal notranslate"><span class="pre">current-line</span></code>, sólo se desplazará la línea que muestra el cursor. Para desactivar por completo el desplazamiento horizontal automático, establezca la variable <code class="docutils literal notranslate"><span class="pre">auto-hscroll-mode</span></code> en <code class="docutils literal notranslate"><span class="pre">nil</span></code>. Tenga en cuenta que cuando el desplazamiento horizontal automático está desactivado, si el punto se desplaza fuera del borde de la pantalla, el cursor desaparece para indicarlo. (En los terminales de texto, en cambio, el cursor se deja en el borde).</p>
<p>El <em>desplazamiento horizontal</em> significa desplazar todas las líneas lateralmente dentro de una ventana, de modo que parte del texto cercano al margen izquierdo no se muestra. Cuando el texto de una ventana se desplaza horizontalmente, las líneas de texto se truncan en lugar de continuar (véase <a class="reference internal" href="#id20"><span class="std std-ref">15.22 Truncado de Línea</span></a>). Si una ventana muestra líneas truncadas, Emacs realiza un desplazamiento horizontal automático cada vez que un punto se aleja del borde izquierdo o derecho de la pantalla. Por defecto, todas las líneas de la ventana se desplazan horizontalmente juntas, pero si establece la variable <code class="docutils literal notranslate"><span class="pre">auto-hscroll-mode</span></code> al valor especial de <code class="docutils literal notranslate"><span class="pre">current-line</span></code>, sólo se desplazará la línea que muestra el cursor. Para desactivar por completo el desplazamiento horizontal automático, establezca la variable <code class="docutils literal notranslate"><span class="pre">auto-hscroll-mode</span></code> en <code class="docutils literal notranslate"><span class="pre">nil</span></code>. Tenga en cuenta que cuando el desplazamiento horizontal automático está desactivado, si el punto se desplaza fuera del borde de la pantalla, el cursor desaparece para indicarlo. (En los terminales de texto, en cambio, el cursor se deja en el borde).</p>
<p>La variable <code class="docutils literal notranslate"><span class="pre">hscroll-margin</span></code> controla lo cerca que se puede llegar a los bordes izquierdo y derecho de la ventana antes de que se produzca el desplazamiento automático. Se mide en columnas. Por ejemplo, si el valor es 5, al mover el punto a menos de 5 columnas de un borde se produce un desplazamiento horizontal desde ese borde.</p>
<p>La variable <code class="docutils literal notranslate"><span class="pre">hscroll-step</span></code> determina cuántas columnas se desplazará la ventana cuando el punto se acerque demasiado al borde. Cero, el valor por defecto, significa centrar el punto horizontalmente dentro de la ventana. Un valor entero positivo especifica el número de columnas por las que desplazarse. Un número de coma flotante (cuyo valor debe estar entre 0 y 1) especifica la fracción del ancho de la ventana por la que desplazarse.</p>
<p>También puede realizar un desplazamiento horizontal explícito con los siguientes comandos:</p>
@ -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#id21"><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#id22"><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>
@ -293,25 +293,25 @@ línea superior, la inferior y así sucesivamente en orden cíclico. Es posible
<p><code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">view-buffer</span></code> pide un buffer Emacs existente, cambia a él, y activa el modo Vista. <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">view-file</span></code> pide un archivo y lo visita con el modo Vista activado.</p>
</section>
<section id="modo-de-seguimiento">
<h2>15.7 Modo de Seguimiento<a class="headerlink" href="#modo-de-seguimiento" title="Link to this heading"></a></h2>
<span id="id7"></span><h2>15.7 Modo de Seguimiento<a class="headerlink" href="#modo-de-seguimiento" title="Link to this heading"></a></h2>
<p>El modo Follow (<em>modo de Seguimiento</em>) es un modo menor que hace que dos ventanas, ambas mostrando el mismo búfer, se desplacen como una única ventana virtual alta. Para usar este modo, vaya a un marco con una sola ventana, divídala en dos ventanas contiguas usando <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">3</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">3</span></code>), y luego 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">follow-mode</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">follow-mode</span></code>). A partir de ese momento, puede editar el búfer en cualquiera de las dos ventanas, o desplazarse por cualquiera de ellas; la otra ventana la sigue.</p>
<p>En el modo de Seguimiento, si mueve el punto fuera de la parte visible en una ventana y dentro de la parte visible en la otra ventana, eso selecciona la otra ventana, de nuevo, tratando las dos como si fueran partes de una ventana grande.</p>
<p>Para desactivar el modo de Seguimiento, 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">follow-mode</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">follow-mode</span></code>) por segunda vez.</p>
</section>
<section id="caras-de-texto">
<span id="id7"></span><h2>15.8. Caras de Texto<a class="headerlink" href="#caras-de-texto" title="Link to this heading"></a></h2>
<p>Emacs puede mostrar texto en varios estilos diferentes, llamados <em>caras</em> (faces). Cada cara puede especificar varios <em>atributos de cara</em>, como la fuente, altura, peso, inclinación, color de primer plano y de fondo, y subrayado o superposición. La mayoría de los modos principales asignan caras al texto automáticamente, mediante el modo Bloqueo de Fuente (Font Lock mode). Consulte <a class="reference internal" href="#id11"><span class="std std-ref">15.13 Modo de Bloqueo de Fuente</span></a>, para más información sobre cómo se asignan estas caras.</p>
<span id="id8"></span><h2>15.8. Caras de Texto<a class="headerlink" href="#caras-de-texto" title="Link to this heading"></a></h2>
<p>Emacs puede mostrar texto en varios estilos diferentes, llamados <em>caras</em> (faces). Cada cara puede especificar varios <em>atributos de cara</em>, como la fuente, altura, peso, inclinación, color de primer plano y de fondo, y subrayado o superposición. La mayoría de los modos principales asignan caras al texto automáticamente, mediante el modo Bloqueo de Fuente (Font Lock mode). Consulte <a class="reference internal" href="#id12"><span class="std std-ref">15.13 Modo de Bloqueo de Fuente</span></a>, para más información sobre cómo se asignan estas caras.</p>
<p>Para ver qué fuentes están actualmente definidas y qué aspecto tienen, 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">list-faces-display</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">list-faces-display</span></code>). Con un prefijo como argumento, se pide una expresión regular y se muestran sólo las caras cuyos nombres coincidan con esa 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>).</p>
<p>Es posible que una misma cara tenga un aspecto diferente en distintos marcos. Por ejemplo, algunos terminales de texto no soportan todos los atributos de las carátulas, particularmente fuente, altura y anchura, y algunos soportan una gama limitada de colores. Además, la mayoría de las caras de Emacs están definidas para que sus atributos sean diferentes en fondos claros y oscuros, por razones de legibilidad. Por defecto, Emacs elige automáticamente qué conjunto de atributos de cara mostrar en cada marco, basándose en el color de fondo actual del marco. Sin embargo, se puede anular esto dando a la variable <code class="docutils literal notranslate"><span class="pre">frame-background-mode</span></code> un valor no nulo. Un valor de <code class="docutils literal notranslate"><span class="pre">dark</span></code> que Emacs trate todos los marcos como si tuvieran un fondo oscuro, mientras que un valor de <code class="docutils literal notranslate"><span class="pre">light</span></code> hace que trate todos los marcos como si tuvieran un fondo claro.</p>
<p>Puede personalizar una cara para alterar sus atributos, y guardar esas personalizaciones para futuras sesiones de Emacs. Ver <a class="reference internal" href="50_Personlzc.html#id3"><span class="std std-ref">50.1.5. Personalización de Caras</span></a>, para más detalles.</p>
<p>La cara por defecto es la predeterminada para mostrar texto, y todos sus atributos están especificados. Su color de fondo también se usa como color de fondo del marco. Ver <a class="reference internal" href="#id8"><span class="std std-ref">15.9 Colores de las Caras</span></a>.</p>
<p>Puede personalizar una cara para alterar sus atributos, y guardar esas personalizaciones para futuras sesiones de Emacs. Ver <a class="reference internal" href="50_Personlzc.html#id4"><span class="std std-ref">50.1.5. Personalización de Caras</span></a>, para más detalles.</p>
<p>La cara por defecto es la predeterminada para mostrar texto, y todos sus atributos están especificados. Su color de fondo también se usa como color de fondo del marco. Ver <a class="reference internal" href="#id9"><span class="std std-ref">15.9 Colores de las Caras</span></a>.</p>
<p>Otra cara especial es la cara <code class="docutils literal notranslate"><span class="pre">cursor</span></code>. En las pantallas gráficas, el color de fondo de esta cara se usa para dibujar el cursor de texto. Ninguno de los otros atributos de esta cara tiene ningún efecto; el color de primer plano para el texto bajo el cursor se toma del color de fondo del texto subyacente. En los terminales de texto, el aspecto del cursor de texto viene determinado por el terminal, no por la cara de este.</p>
<p>También puede utilizar recursos X para especificar los atributos de una cara determinada. Véase <a class="reference internal" href="ApendiceD.html#d-1"><span class="std std-ref">D.1 Recursos X</span></a>.</p>
<p>Emacs puede mostrar fuentes de anchura variable, pero algunos comandos de Emacs, en particular los comandos de sangrado, no tienen en cuenta la anchura variable de los caracteres. Por lo tanto, recomendamos no usar fuentes de ancho variable para la mayoría de las caras, particularmente aquellas asignadas por el modo Font Lock.</p>
</section>
<section id="colores-de-las-caras">
<span id="id8"></span><h2>15.9 Colores de las Caras<a class="headerlink" href="#colores-de-las-caras" title="Link to this heading"></a></h2>
<p>Las caras pueden tener varios colores de primer plano y de fondo. Cuando se especifica un color para una cara, por ejemplo, al personalizar la cara (véase <a class="reference internal" href="50_Personlzc.html#id3"><span class="std std-ref">50.1.5. Personalización de Caras</span></a>), se puede usar un <em>nombre de color</em> o un <em>triplete RGB</em>.</p>
<span id="id9"></span><h2>15.9 Colores de las Caras<a class="headerlink" href="#colores-de-las-caras" title="Link to this heading"></a></h2>
<p>Las caras pueden tener varios colores de primer plano y de fondo. Cuando se especifica un color para una cara, por ejemplo, al personalizar la cara (véase <a class="reference internal" href="50_Personlzc.html#id4"><span class="std std-ref">50.1.5. Personalización de Caras</span></a>), se puede usar un <em>nombre de color</em> o un <em>triplete RGB</em>.</p>
<section id="nombres-de-los-colores">
<h3>15.9.1 Nombres de los Colores<a class="headerlink" href="#nombres-de-los-colores" title="Link to this heading"></a></h3>
<p>Un nombre de color es un nombre predefinido, como <code class="docutils literal notranslate"><span class="pre">dark</span> <span class="pre">orange</span></code> (naranja oscuro) o <code class="docutils literal notranslate"><span class="pre">medium</span> <span class="pre">sea</span> <span class="pre">green</span></code> (verde mar medio). Para ver una lista de nombres de colores, 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">list-colors-display</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">list-colors-display</span></code>). Para controlar el orden en que se muestran los colores, personalice <code class="docutils literal notranslate"><span class="pre">list-colors-sort</span></code>. Si ejecuta este comando en una pantalla gráfica, muestra toda la gama de nombres de color conocidos por Emacs (son los nombres de color estándar de X11, definidos en el archivo <code class="docutils literal notranslate"><span class="pre">rgb.txt</span></code> de X). Si ejecuta el comando en un terminal de texto, sólo muestra un pequeño subconjunto de colores que pueden mostrarse con seguridad en dichos terminales. Sin embargo, Emacs entiende los nombres de color X11 incluso en terminales de texto; si a una cara se le da un color especificado por un nombre de color X11, se muestra usando el color del terminal que más se aproxime.</p>
@ -324,7 +324,7 @@ línea superior, la inferior y así sucesivamente en orden cíclico. Es posible
</section>
</section>
<section id="caras-normalizadas">
<span id="id9"></span><h2>15.10 Caras Normalizadas<a class="headerlink" href="#caras-normalizadas" title="Link to this heading"></a></h2>
<span id="id10"></span><h2>15.10 Caras Normalizadas<a class="headerlink" href="#caras-normalizadas" title="Link to this heading"></a></h2>
<p>Estas son las caras estándar (o normalizadas) para especificar la apariencia del texto. Puede aplicarlas a un texto concreto cuando desee los efectos que producen.</p>
<dl class="simple">
<dt><code class="docutils literal notranslate"><span class="pre">default</span></code></dt><dd><p>Esta cara se usa para texto ordinario que no especifica ninguna cara. Su color de fondo se usa como color de fondo del marco.</p>
@ -367,15 +367,15 @@ primer plano por defecto, blanco o negro.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">secondary-selection</span></code></dt><dd><p>Esta cara se usa para mostrar una selección X secundaria (véase <a class="reference internal" href="13_MatarMoverTxt.html#id11"><span class="std std-ref">13.3.3 Selección Secundaria</span></a>).</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">trailing-whitespace</span></code></dt><dd><p>La cara para resaltar el exceso de espacios y tabuladores al final de una línea cuando <code class="docutils literal notranslate"><span class="pre">show-trailing-whitespace</span></code> es distinto de nil (véase <a class="reference internal" href="#id15"><span class="std std-ref">15.17 Espacios en Blanco Innecesarios</span></a>).</p>
<dt><code class="docutils literal notranslate"><span class="pre">trailing-whitespace</span></code></dt><dd><p>La cara para resaltar el exceso de espacios y tabuladores al final de una línea cuando <code class="docutils literal notranslate"><span class="pre">show-trailing-whitespace</span></code> es distinto de nil (véase <a class="reference internal" href="#id16"><span class="std std-ref">15.17 Espacios en Blanco Innecesarios</span></a>).</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">escape-glyph</span></code></dt><dd><p>Cara para mostrar caracteres de control y secuencias de escape (véase <a class="reference internal" href="#id17"><span class="std std-ref">15.20 Cómo se Muestra el Texto</span></a> ).</p>
<dt><code class="docutils literal notranslate"><span class="pre">escape-glyph</span></code></dt><dd><p>Cara para mostrar caracteres de control y secuencias de escape (véase <a class="reference internal" href="#id18"><span class="std std-ref">15.20 Cómo se Muestra el Texto</span></a> ).</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">homoglyph</span></code></dt><dd><p>La cara para mostrar caracteres semejantes, es decir, caracteres que se parecen pero no son los caracteres representados (véase <a class="reference internal" href="#id17"><span class="std std-ref">15.20 Cómo se Muestra el Texto</span></a>).</p>
<dt><code class="docutils literal notranslate"><span class="pre">homoglyph</span></code></dt><dd><p>La cara para mostrar caracteres semejantes, es decir, caracteres que se parecen pero no son los caracteres representados (véase <a class="reference internal" href="#id18"><span class="std std-ref">15.20 Cómo se Muestra el Texto</span></a>).</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">nobreak-space</span></code></dt><dd><p>Cara para mostrar caracteres espaciados sin salto (véase <a class="reference internal" href="#id17"><span class="std std-ref">15.20 Cómo se Muestra el Texto</span></a>).</p>
<dt><code class="docutils literal notranslate"><span class="pre">nobreak-space</span></code></dt><dd><p>Cara para mostrar caracteres espaciados sin salto (véase <a class="reference internal" href="#id18"><span class="std std-ref">15.20 Cómo se Muestra el Texto</span></a>).</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">nobreak-hyphen</span></code></dt><dd><p>La cara para mostrar caracteres de guión sin ruptura (véase <a class="reference internal" href="#id17"><span class="std std-ref">15.20 Cómo se Muestra el Texto</span></a>).</p>
<dt><code class="docutils literal notranslate"><span class="pre">nobreak-hyphen</span></code></dt><dd><p>La cara para mostrar caracteres de guión sin ruptura (véase <a class="reference internal" href="#id18"><span class="std std-ref">15.20 Cómo se Muestra el Texto</span></a>).</p>
</dd>
</dl>
<p>Las siguientes caras controlan la apariencia de partes del marco de Emacs:</p>
@ -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#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>
<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#id19"><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>
@ -406,11 +406,11 @@ una cara independiente porque la cara de la línea de encabezado puede personali
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">minibuffer-prompt</span></code></dt><dd><p>Esta cara se usa para las cadenas del prompt mostradas en el minibuffer. Por defecto, Emacs añade automáticamente esta cara al valor de <code class="docutils literal notranslate"><span class="pre">minibuffer-prompt-properties</span></code>, que es una lista de propiedades de texto (ver <strong>Propiedades de Texto</strong> en el Manual de Referencia de Emacs Lisp) usadas para mostrar el texto del prompt. (Esta variable tiene efecto cuando entra en el minibuffer).</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">fringe</span></code></dt><dd><p>La cara de los márgenes a la izquierda y a la derecha de las ventanas en las pantallas gráficas. (La franja son las partes estrechas del marco de Emacs entre el área de texto y los bordes derecho e izquierdo de la ventana). Véase <a class="reference internal" href="#id13"><span class="std std-ref">15.15 Bordes de ventana</span></a>.</p>
<dt><code class="docutils literal notranslate"><span class="pre">fringe</span></code></dt><dd><p>La cara de los márgenes a la izquierda y a la derecha de las ventanas en las pantallas gráficas. (La franja son las partes estrechas del marco de Emacs entre el área de texto y los bordes derecho e izquierdo de la ventana). Véase <a class="reference internal" href="#id14"><span class="std std-ref">15.15 Bordes de ventana</span></a>.</p>
</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>
<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="#id19"><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#id18"><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#id19"><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#id15"><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#id16"><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#id16"><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#id17"><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#id14"><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#id15"><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>
@ -451,7 +451,7 @@ una cara independiente porque la cara de la línea de encabezado puede personali
<p>Para obtener una descripción rápida de un icono, use el comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">describe-icon</span></code>.</p>
</section>
<section id="escala-de-texto">
<span id="id10"></span><h2>15.12 Escala de Texto<a class="headerlink" href="#escala-de-texto" title="Link to this heading"></a></h2>
<span id="id11"></span><h2>15.12 Escala de Texto<a class="headerlink" href="#escala-de-texto" title="Link to this heading"></a></h2>
<p>Para aumentar el tamaño de fuente de la cara por defecto en el buffer actual, 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">+</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-+</span></code>) o <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">e</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-=</span></code>). Para disminuirlo, 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">-</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C--</span></code>). Para restablecer el tamaño de fuente predeterminado (global), 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">x</kbd> <kbd class="kbd docutils literal notranslate">0</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-0</span></code>). Todas estas teclas están vinculadas al mismo comando, ajuste de escala de texto, que se basa en la última tecla pulsada para determinar qué acción realizar y ajusta el tamaño de la fuente en consecuencia cambiando la altura de la cara por defecto.</p>
<p>La mayoría de las caras no tienen un ajuste explícito del atributo <code class="docutils literal notranslate"><span class="pre">:height</span></code> por lo que heredan la altura de la cara por defecto. Estas caras también se escalan con los comandos anteriores.</p>
<p>Las caras distintas de la predeterminada que tienen un ajuste explícito del atributo <code class="docutils literal notranslate"><span class="pre">:height</span></code> no se ven afectadas por estos cambios de tamaño de fuente. La cara de la línea de cabecera es una excepción: se escalará incluso si tiene un ajuste explícito del atributo <code class="docutils literal notranslate"><span class="pre">:height</span></code>.</p>
@ -465,19 +465,19 @@ una cara independiente porque la cara de la línea de encabezado puede personali
<p>El comando <code class="docutils literal notranslate"><span class="pre">mouse-wheel-text-scale</span></code> también cambia la escala del texto. Normalmente, se ejecuta al pulsar <kbd class="kbd docutils literal notranslate">Ctrl</kbd> (<code class="docutils literal notranslate"><span class="pre">Ctrl</span></code>) mientras se mueve la rueda del ratón. La escala del texto aumenta cuando la rueda se mueve hacia abajo, y disminuye cuando la rueda se mueve hacia arriba.</p>
</section>
<section id="modo-de-bloqueo-de-fuente">
<span id="id11"></span><h2>15.13 Modo de Bloqueo de Fuente<a class="headerlink" href="#modo-de-bloqueo-de-fuente" title="Link to this heading"></a></h2>
<span id="id12"></span><h2>15.13 Modo de Bloqueo de Fuente<a class="headerlink" href="#modo-de-bloqueo-de-fuente" title="Link to this heading"></a></h2>
<p>El modo Font Lock es un modo menor, siempre local a un búfer en particular, que asigna caras (o <em>tipografía</em>) al texto del búfer. El modo principal de cada búfer indica al modo Font Lock qué texto debe tipificar; por ejemplo, los modos del lenguaje de programación tipifican construcciones sintácticamente relevantes como comentarios, cadenas y nombres de funciones.</p>
<p>El modo Font Lock está activado por defecto en los modos principales que lo admiten. Para activarlo 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">font-lock-mode</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">font-lock-mode</span></code>). Un argumento numérico positivo activa incondicionalmente el modo Font Lock, y un argumento negativo o cero lo desactiva.</p>
<p>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-font-lock-mode</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">global-font-lock-mode</span></code>) para activar el modo Font Lock en todos los búferes. Para imponer esta configuración para futuras sesiones de Emacs, personalice la variable <code class="docutils literal notranslate"><span class="pre">global-font-lock-mode</span></code> (ver <a class="reference internal" href="50_Personlzc.html#id2"><span class="std std-ref">50.1 Interfaz de Personalización Fácil</span></a>), o añada la siguiente línea a su fichero init:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="k">global</span><span class="o">-</span><span class="n">font</span><span class="o">-</span><span class="n">lock</span><span class="o">-</span><span class="n">mode</span> <span class="mi">0</span><span class="p">)</span>
</pre></div>
</div>
<p>Si ha desactivado el modo de Bloqueo de Fuente Global, aún puede activar el Bloqueo de Fuente para modos principales específicos añadiendo la función <code class="docutils literal notranslate"><span class="pre">font-lock-mode</span></code> a los ganchos de modo (ver <a class="reference internal" href="50_Personlzc.html#id6"><span class="std std-ref">50.2.2 Ganchos (Hooks)</span></a>). Por ejemplo, para habilitar el modo Font Lock para editar archivos C, puede hacer esto:</p>
<p>Si ha desactivado el modo de Bloqueo de Fuente Global, aún puede activar el Bloqueo de Fuente para modos principales específicos añadiendo la función <code class="docutils literal notranslate"><span class="pre">font-lock-mode</span></code> a los ganchos de modo (ver <a class="reference internal" href="50_Personlzc.html#id7"><span class="std std-ref">50.2.2 Ganchos (Hooks)</span></a>). Por ejemplo, para habilitar el modo Font Lock para editar archivos C, puede hacer esto:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="n">add</span><span class="o">-</span><span class="n">hook</span> <span class="s1">&#39;c-mode-hook &#39;</span><span class="n">font</span><span class="o">-</span><span class="n">lock</span><span class="o">-</span><span class="n">mode</span><span class="p">)</span>
</pre></div>
</div>
<p>El modo Font Lock usa varias caras específicamente nombradas para hacer su trabajo, incluyendo <code class="docutils literal notranslate"><span class="pre">font-lock-string-face</span></code>, <code class="docutils literal notranslate"><span class="pre">font-lock-comment-face</span></code>, y otras. La forma más sencilla de encontrarlas es utilizar <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <code class="docutils literal notranslate"><span class="pre">customize-group</span></code> <kbd class="kbd docutils literal notranslate">RETURN</kbd> <code class="docutils literal notranslate"><span class="pre">font-lock-faces</span></code> <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">customize-group</span> <span class="pre">RET</span> <span class="pre">font-lock-faces</span> <span class="pre">RET</span></code>). A continuación, puede usar ese búfer de personalización para cambiar el aspecto de estas caras. Véase <a class="reference internal" href="50_Personlzc.html#id3"><span class="std std-ref">50.1.5. Personalización de Caras</span></a>.</p>
<p>Fontificar búferes muy grandes puede llevar mucho tiempo. Para evitar grandes retrasos cuando se visita un fichero, Emacs inicialmente tipifica sólo la porción visible de un búfer. A medida que se desplaza por el búfer, cada porción que se hace visible se tipifica tan pronto como se muestra; este tipo de Bloqueo de Fuente se llama <em>Just-In-Time</em> (o JIT, Bloqueo Justo-a-Tiempo). Puede controlar cómo se comporta el bloqueo JIT, incluso indicándole que realice la fuentetificación mientras está inactivo, personalizando variables en el grupo de personalización <code class="docutils literal notranslate"><span class="pre">jit-lock</span></code>. Consulte <a class="reference internal" href="50_Personlzc.html#id4"><span class="std std-ref">50.1.6 Personalización de elementos concretos</span></a> .</p>
<p>El modo Font Lock usa varias caras específicamente nombradas para hacer su trabajo, incluyendo <code class="docutils literal notranslate"><span class="pre">font-lock-string-face</span></code>, <code class="docutils literal notranslate"><span class="pre">font-lock-comment-face</span></code>, y otras. La forma más sencilla de encontrarlas es utilizar <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <code class="docutils literal notranslate"><span class="pre">customize-group</span></code> <kbd class="kbd docutils literal notranslate">RETURN</kbd> <code class="docutils literal notranslate"><span class="pre">font-lock-faces</span></code> <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">customize-group</span> <span class="pre">RET</span> <span class="pre">font-lock-faces</span> <span class="pre">RET</span></code>). A continuación, puede usar ese búfer de personalización para cambiar el aspecto de estas caras. Véase <a class="reference internal" href="50_Personlzc.html#id4"><span class="std std-ref">50.1.5. Personalización de Caras</span></a>.</p>
<p>Fontificar búferes muy grandes puede llevar mucho tiempo. Para evitar grandes retrasos cuando se visita un fichero, Emacs inicialmente tipifica sólo la porción visible de un búfer. A medida que se desplaza por el búfer, cada porción que se hace visible se tipifica tan pronto como se muestra; este tipo de Bloqueo de Fuente se llama <em>Just-In-Time</em> (o JIT, Bloqueo Justo-a-Tiempo). Puede controlar cómo se comporta el bloqueo JIT, incluso indicándole que realice la fuentetificación mientras está inactivo, personalizando variables en el grupo de personalización <code class="docutils literal notranslate"><span class="pre">jit-lock</span></code>. Consulte <a class="reference internal" href="50_Personlzc.html#id5"><span class="std std-ref">50.1.6 Personalización de elementos concretos</span></a> .</p>
<p>La información que utilizan los modos principales para determinar qué partes del texto del búfer se van a tipificar y qué fuentes se van a utilizar puede basarse en varias formas diferentes de analizar el texto:</p>
<blockquote>
<div><ul class="simple">
@ -524,11 +524,11 @@ propiedades, variables, etc.</p>
</dd>
</dl>
<p>Lo que constituye exactamente cada una de las categorías sintácticas mencionadas depende del modo principal y de la gramática del analizador sintáctico utilizada por <em>tree-sitter</em> para el lenguaje del modo principal. Sin embargo, en general las categorías siguen las convenciones del lenguaje de programación o del formato de fichero soportado por el modo principal. El valor buffer-local de la variable <code class="docutils literal notranslate"><span class="pre">treesit-font-lock-feature-list</span></code> contiene las características de fontificación soportadas por un modo principal basado en <em>tree-sitter</em>, donde cada sub-lista muestra las características proporcionadas por el nivel de fontificación correspondiente.</p>
<p>Una vez que cambie el valor de <code class="docutils literal notranslate"><span class="pre">treesit-font-lock-level</span></code> mediante <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">customize-variable</span></code> (véase <a class="reference internal" href="50_Personlzc.html#id4"><span class="std std-ref">50.1.6 Personalización de elementos concretos</span></a>), tendrá efecto inmediato en todos los buffers existentes y para los archivos que visite en el futuro en la misma sesión.</p>
<p>Una vez que cambie el valor de <code class="docutils literal notranslate"><span class="pre">treesit-font-lock-level</span></code> mediante <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">customize-variable</span></code> (véase <a class="reference internal" href="50_Personlzc.html#id5"><span class="std std-ref">50.1.6 Personalización de elementos concretos</span></a>), tendrá efecto inmediato en todos los buffers existentes y para los archivos que visite en el futuro en la misma sesión.</p>
</section>
</section>
<section id="resaltado-interactivo">
<span id="id12"></span><h2>15.14 Resaltado Interactivo<a class="headerlink" href="#resaltado-interactivo" title="Link to this heading"></a></h2>
<span id="id13"></span><h2>15.14 Resaltado Interactivo<a class="headerlink" href="#resaltado-interactivo" title="Link to this heading"></a></h2>
<p>El modo Highlight Changes (Resaltar cambios) es un modo menor que <em>resalta</em> las partes del búfer que se han modificado más recientemente, dándole a ese texto una cara diferente. Para activar o desactivar este modo, utilice <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">highlight-changes-mode</span></code>.</p>
<p>El modo Hi Lock es un modo menor que resalta el texto que coincide con las expresiones regulares que especifique. Por ejemplo, puede usarlo para resaltar todas las referencias a una determinada variable en un archivo fuente de un programa, resaltar ciertas partes en una salida voluminosa de algún programa o resaltar ciertos nombres en un artículo. Para activar o desactivar el modo Hi Lock, use el comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">hi-lock-mode</span></code>. Para activar el modo Hi Lock para todos los búferes, use <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">global-hi-lock-mode</span></code> o coloque <code class="docutils literal notranslate"><span class="pre">(global-hi-lock-mode</span> <span class="pre">1)</span></code> en su archivo <code class="docutils literal notranslate"><span class="pre">.emacs</span></code>.</p>
<p>El modo Hi Lock funciona como el modo Font Lock (ver <a class="reference internal" href="#id3"><span class="std std-ref">15.3 Desplazamiento Automático</span></a>), excepto que Usted especifica explícitamente las expresiones regulares a resaltar. Puede controlarlas con los siguientes comandos. (Las combinaciones de teclas de abajo que empiezan por <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">w</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">w</span></code>) están obsoletas en favor de las combinaciones globales <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">s</kbd> <kbd class="kbd docutils literal notranslate">h</kbd> (<code class="docutils literal notranslate"><span class="pre">M-s</span> <span class="pre">h</span></code>), y serán eliminadas en alguna versión futura de Emacs).</p>
@ -602,16 +602,16 @@ directamente, independientemente del valor de esta variable.</p>
</div></blockquote>
</section>
<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>
<span id="id14"></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#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>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#id23"><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="#id20"><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="#id15"><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="#id16"><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#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>
<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="#id20"><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#id23"><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>
<span id="id15"></span><h2>15.16 Mostrar Límites<a class="headerlink" href="#mostrar-limites" title="Link to this heading"></a></h2>
<p>Emacs puede mostrar una indicación de la posición de la columna de relleno (véase <a class="reference internal" href="26_ComandsLengsHuma.html#id8"><span class="std std-ref">26.6.2 Comandos de Relleno Explícito</span></a>). El indicador de columna de relleno es una funcionalidad útil especialmente en modo prog y sus descendientes (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>) para indicar la posición de una columna específica que tiene algún significado especial para formatear el código fuente de un programa. Esto supone que el búfer usa una fuente de paso fijo, donde todos los caracteres (con la posible excepción de los caracteres de doble ancho) tienen el mismo ancho en pantalla. Si el búfer usa fuentes de paso variable, los indicadores de relleno de columna en diferentes líneas pueden aparecer desalineados.</p>
<p>Para activar la indicación de columna de relleno, use los modos menores <code class="docutils literal notranslate"><span class="pre">display-fill-column-indicator-mode</span></code> y <code class="docutils literal notranslate"><span class="pre">global-display-fill-column-indicator-mode</span></code>, que activan el indicador local o globalmente, respectivamente.</p>
<p>Alternativamente, puede establecer las dos variables locales del búfer <code class="docutils literal notranslate"><span class="pre">display-fill-column-indicator</span></code> y <code class="docutils literal notranslate"><span class="pre">display-fill-column-indicator-character</span></code> para activar el indicador y controlar el carácter utilizado para la indicación. Tenga en cuenta que ambas variables deben ser no nulas para que se muestre la indicación. (Activar el modo menor activa ambas variables).</p>
@ -635,12 +635,12 @@ establecer el color de primer plano de esta cara.</p>
<p>Por ejemplo, <code class="docutils literal notranslate"><span class="pre">((top</span> <span class="pre">.</span> <span class="pre">left)</span> <span class="pre">(t</span> <span class="pre">.</span> <span class="pre">right))</span></code> ((arriba . izquierda) (t . derecha)) coloca el mapa de bits de ángulo superior en la franja izquierda, el mapa de bits de ángulo inferior en la franja derecha y ambos mapas de bits de flecha en la franja derecha. Para mostrar sólo los mapas de bits de ángulo en la franja izquierda, pero no los mapas de bits de flecha, use <code class="docutils literal notranslate"><span class="pre">((top</span> <span class="pre">.</span> <span class="pre">left)</span> <span class="pre">(bottom</span> <span class="pre">.</span> <span class="pre">left))</span></code> ((arriba . izquierda) (abajo . izquierda)).</p>
</section>
<section id="espacios-en-blanco-innecesarios">
<span id="id15"></span><h2>15.17 Espacios en Blanco Innecesarios<a class="headerlink" href="#espacios-en-blanco-innecesarios" title="Link to this heading"></a></h2>
<span id="id16"></span><h2>15.17 Espacios en Blanco Innecesarios<a class="headerlink" href="#espacios-en-blanco-innecesarios" title="Link to this heading"></a></h2>
<p>Es fácil dejar espacios innecesarios al final de una línea, o líneas vacías al final de un búfer, sin darse cuenta. En la mayoría de los casos, estos <em>espacios en blanco</em> al final no tienen ningún efecto, pero a veces pueden ser una molestia.</p>
<p>Puede hacer visibles los espacios en blanco al final de una línea estableciendo la variable local del buffer <code class="docutils literal notranslate"><span class="pre">show-trailing-whitespace</span></code> a <code class="docutils literal notranslate"><span class="pre">t</span></code>. Entonces Emacs muestra los espacios en blanco al final de la línea, usando la cara <code class="docutils literal notranslate"><span class="pre">trailing-whitespace</span></code>.</p>
<p>Esta característica no se aplica cuando el punto está al final de la línea que contiene el espacio en blanco. Estrictamente hablando, eso no deja de ser un espacio en blanco final, pero mostrarlo especialmente en ese caso queda feo mientras escribe un nuevo texto. En este caso especial, la ubicación del punto es suficiente para mostrar que los espacios están presentes.</p>
<p>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">delete-trailing-whitespace</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">delete-trailing-whitespace</span></code>) para borrar todos los espacios blancos finales. Este comando borra todos los espacios extra al final de cada línea del búfer, y todas las líneas vacías al final de este; para ignorar estas últimas, cambie la variable <code class="docutils literal notranslate"><span class="pre">delete-trailing-lines</span></code> a <code class="docutils literal notranslate"><span class="pre">nil</span></code>. Si la región está activa, el comando elimina los espacios adicionales al final de cada línea de la región.</p>
<p>En pantallas gráficas, Emacs puede indicar las líneas no usadas al final de la ventana con una pequeña imagen en la franja izquierda (ver <a class="reference internal" href="#id13"><span class="std std-ref">15.15 Bordes de ventana</span></a>). La imagen aparece para las líneas de pantalla que no corresponden a ningún texto del búfer, por lo que las líneas en blanco al final del búfer destacan porque carecen de esta imagen. Para activar esta función, ajuste la variable local del búfer <code class="docutils literal notranslate"><span class="pre">indicate-empty-lines</span></code> a un valor no nulo. Puede activar o desactivar esta función para todos los nuevos búferes estableciendo el valor predeterminado de esta variable, por ejemplo, <code class="docutils literal notranslate"><span class="pre">(setq-default</span> <span class="pre">indicate-empty-lines</span> <span class="pre">t)</span></code>.</p>
<p>En pantallas gráficas, Emacs puede indicar las líneas no usadas al final de la ventana con una pequeña imagen en la franja izquierda (ver <a class="reference internal" href="#id14"><span class="std std-ref">15.15 Bordes de ventana</span></a>). La imagen aparece para las líneas de pantalla que no corresponden a ningún texto del búfer, por lo que las líneas en blanco al final del búfer destacan porque carecen de esta imagen. Para activar esta función, ajuste la variable local del búfer <code class="docutils literal notranslate"><span class="pre">indicate-empty-lines</span></code> a un valor no nulo. Puede activar o desactivar esta función para todos los nuevos búferes estableciendo el valor predeterminado de esta variable, por ejemplo, <code class="docutils literal notranslate"><span class="pre">(setq-default</span> <span class="pre">indicate-empty-lines</span> <span class="pre">t)</span></code>.</p>
<p>El modo de espacios en blanco es un modo menor localizado en el búfer que permite visualizar muchos tipos de espacios en blanco en el búfer, ya sea dibujando los caracteres de los espacios en blanco con una cara especial o mostrándolos como glifos especiales. Para activar este modo, 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">whitespace-mode</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">whitespace-mode</span></code>). Los tipos de espacios en blanco visualizados están determinados por la variable de lista <code class="docutils literal notranslate"><span class="pre">whitespace-style</span></code>. Los elementos individuales de esa lista pueden activarse o desactivarse en el búfer actual 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">whitespace-toggle-options</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">whitespace-toggle-options</span></code>). A continuación se muestra una lista parcial de los posibles elementos (consulte la documentación de la variable para ver la lista completa):</p>
<dl class="simple">
<dt><code class="docutils literal notranslate"><span class="pre">face</span></code></dt><dd><p>Habilita todas las visualizaciones que usan caras especiales. Este elemento tiene un significado especial: si está ausente de la lista, ninguna de las otras visualizaciones tiene
@ -682,7 +682,7 @@ cambiar esto, personalice la expresión regular <code class="docutils literal no
<p>Véase también <a class="reference internal" href="26_ComandsLengsHuma.html#id11"><span class="std std-ref">26.9 Modo Esquema</span></a> para otra forma de ocultar parte del texto en un búfer.</p>
</section>
<section id="caracteristicas-opcionales-de-la-linea-de-modo">
<span id="id16"></span><h2>15.19 Características Opcionales de la Línea de Modo<a class="headerlink" href="#caracteristicas-opcionales-de-la-linea-de-modo" title="Link to this heading"></a></h2>
<span id="id17"></span><h2>15.19 Características Opcionales de la Línea de Modo<a class="headerlink" href="#caracteristicas-opcionales-de-la-linea-de-modo" title="Link to this heading"></a></h2>
<p>El porcentaje del búfer <em>pos</em> indica el porcentaje del búfer por encima de la parte superior de la ventana. Además, puede mostrar el tamaño del búfer escribiendo <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">size-indication-mode</span></code> para activar el modo de indicación de tamaño. El tamaño se mostrará inmediatamente después del porcentaje del búfer, de la siguiente manera:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pos</span> <span class="k">del</span> <span class="n">tamaño</span>
</pre></div>
@ -701,28 +701,28 @@ cambiar esto, personalice la expresión regular <code class="docutils literal no
<p>Aquí <em>hh</em> y <em>mm</em> son la hora y el minuto, seguidos siempre de <code class="docutils literal notranslate"><span class="pre">AM</span></code> o <code class="docutils literal notranslate"><span class="pre">PM</span></code> <em>. l.ll</em> es el número medio, recogido durante los últimos minutos, de procesos en todo el sistema que estaban en ejecución o listos para ejecutarse (es decir, estaban esperando un procesador disponible). (Algunos campos pueden faltar si su sistema operativo no los soporta.) Si prefiere la visualización de la hora en formato de 24 horas, ajuste la variable <code class="docutils literal notranslate"><span class="pre">display-time-24hr-format</span></code> a <code class="docutils literal notranslate"><span class="pre">t</span></code>.</p>
<p>La palabra <code class="docutils literal notranslate"><span class="pre">Mail</span></code> (Correo) aparece después del nivel de carga si hay correos para Usted que todavía no ha leído. En pantallas gráficas, puede usar un icono en lugar de <code class="docutils literal notranslate"><span class="pre">Mail</span></code> personalizando <code class="docutils literal notranslate"><span class="pre">display-time-use-mail-icon</span></code>; esto puede ahorrar algo de espacio en la línea de modo. Puede personalizar <code class="docutils literal notranslate"><span class="pre">display-time-mail-face</span></code> para que el indicador de correo sea prominente. Use <code class="docutils literal notranslate"><span class="pre">display-time-mail-file</span></code> para especificar el archivo de correo a comprobar, o configure <code class="docutils literal notranslate"><span class="pre">display-time-mail-directory</span></code> para especificar el directorio a comprobar para el correo entrante (cualquier archivo regular no vacío en el directorio se considera correo recién llegado).</p>
<p>Cuando se ejecuta Emacs en un ordenador portátil, se puede mostrar la carga de la batería en la línea de modo, usando el comando <code class="docutils literal notranslate"><span class="pre">display-battery-mode</span></code> o personalizando la variable <code class="docutils literal notranslate"><span class="pre">display-battery-mode</span></code>. La variable <code class="docutils literal notranslate"><span class="pre">battery-mode-line-format</span></code> determina la forma en que se muestra la carga de la batería; el mensaje exacto de la línea de modo depende del sistema operativo, y normalmente muestra la carga actual de la batería como un porcentaje de la carga total. Las funciones en <code class="docutils literal notranslate"><span class="pre">battery-update-functions</span></code> se ejecutan después de actualizar la línea de modo, y se pueden usar para activar acciones basadas en el estado de la batería.</p>
<p>En las pantallas gráficas, la línea de modo se dibuja como una caja 3D. Si no le gusta este efecto, puede desactivarlo personalizando la cara de la línea de modo y estableciendo su atributo <code class="docutils literal notranslate"><span class="pre">box</span></code> en <code class="docutils literal notranslate"><span class="pre">nil</span></code>. Véase <a class="reference internal" href="50_Personlzc.html#id3"><span class="std std-ref">50.1.5. Personalización de Caras</span></a>.</p>
<p>En las pantallas gráficas, la línea de modo se dibuja como una caja 3D. Si no le gusta este efecto, puede desactivarlo personalizando la cara de la línea de modo y estableciendo su atributo <code class="docutils literal notranslate"><span class="pre">box</span></code> en <code class="docutils literal notranslate"><span class="pre">nil</span></code>. Véase <a class="reference internal" href="50_Personlzc.html#id4"><span class="std std-ref">50.1.5. Personalización de Caras</span></a>.</p>
<p>Por defecto, la línea de modo de las ventanas no seleccionadas se muestra en una cara diferente, llamada <code class="docutils literal notranslate"><span class="pre">mode-line-inactive</span></code> (línea de modo inactiva). Sólo la ventana seleccionada se muestra en la línea de modo. Esto ayuda a mostrar qué ventana está seleccionada. Cuando se selecciona el minibúfer, como no tiene línea de modo, la ventana desde la que se activó el minibúfer tiene su línea de modo mostrada usando mode-line; como resultado, la entrada ordinaria al minibúfer no cambia ninguna línea de modo.</p>
<p>Puede desactivar el uso de <code class="docutils literal notranslate"><span class="pre">mode-line-inactive</span></code> estableciendo la variable <code class="docutils literal notranslate"><span class="pre">mode-line-in-non-selected-windows</span></code> a <code class="docutils literal notranslate"><span class="pre">nil</span></code>; entonces todas las líneas de modo se muestran en la cara <code class="docutils literal notranslate"><span class="pre">mode-line</span></code>.</p>
<p>Puede personalizar la visualización de la línea de modo para cada uno de los formatos de fin de línea estableciendo cada una de las variables <code class="docutils literal notranslate"><span class="pre">eol-mnemonic-unix</span></code>, <code class="docutils literal notranslate"><span class="pre">eol-mnemonic-dos</span></code>, <code class="docutils literal notranslate"><span class="pre">eol-mnemonic-mac</span></code> y <code class="docutils literal notranslate"><span class="pre">eol-mnemonic-undecided</span></code> a las cadenas que prefiera.</p>
</section>
<section id="como-se-muestra-el-texto">
<span id="id17"></span><h2>15.20 Cómo se Muestra el Texto<a class="headerlink" href="#como-se-muestra-el-texto" title="Link to this heading"></a></h2>
<span id="id18"></span><h2>15.20 Cómo se Muestra el Texto<a class="headerlink" href="#como-se-muestra-el-texto" title="Link to this heading"></a></h2>
<p>La mayoría de los caracteres son <em>caracteres de impresión</em>: cuando aparecen en un búfer, se muestran literalmente en la pantalla. Los caracteres de impresión incluyen números ASCII, letras y caracteres de puntuación, así como muchos caracteres no ASCII.</p>
<p>El conjunto de caracteres ASCII contiene <em>caracteres de control</em> no imprimibles. Dos de ellos se muestran de forma especial: el carácter de nueva línea (punto de código Unicode U+000A) se muestra iniciando una nueva línea, mientras que el carácter de tabulación (U+0009) se muestra como un espacio que se extiende hasta la siguiente columna de tabulación (normalmente cada 8 columnas). El número de espacios por tabulación se controla mediante la variable <code class="docutils literal notranslate"><span class="pre">tab-width</span></code> del búfer-local, que debe tener un valor entero entre 1 y 1000, ambos inclusive. Tenga en cuenta que la forma en que se muestra el carácter de tabulación en el búfer no tiene nada que ver con la definición de <code class="docutils literal notranslate"><span class="pre">TAB</span></code> como comando.</p>
<p>Otros caracteres de control ASCII, cuyos códigos son inferiores a U+0020 (octal 40, decimal 32), se muestran como un signo de intercalación (<code class="docutils literal notranslate"><span class="pre">^</span></code>) seguido de la versión sin control del carácter, con la cara del glifo de escape. Por ejemplo, el carácter <code class="docutils literal notranslate"><span class="pre">control-A</span></code>, U+0001, se muestra como <code class="docutils literal notranslate"><span class="pre">^A</span></code>.</p>
<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>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="#id22"><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#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>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#id14"><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>
</section>
<section id="visualizacion-del-cursor">
<span id="id18"></span><h2>15.21 Visualización del Cursor<a class="headerlink" href="#visualizacion-del-cursor" title="Link to this heading"></a></h2>
<span id="id19"></span><h2>15.21 Visualización del Cursor<a class="headerlink" href="#visualizacion-del-cursor" title="Link to this heading"></a></h2>
<p>En un terminal de texto, la apariencia del cursor está controlada por el terminal, en gran parte fuera del control de Emacs. Algunos terminales ofrecen dos cursores diferentes: un cursor estático visible, y un cursor parpadeante muy visible. Por defecto, Emacs usa el cursor muy visible, y cambia a él cuando arranca o reanuda Emacs. Si la variable <code class="docutils literal notranslate"><span class="pre">visible-cursor</span></code> es nula (<code class="docutils literal notranslate"><span class="pre">nil</span></code>) cuando Emacs arranca o se reanuda, usa el cursor normal.</p>
<p>En una pantalla gráfica, pueden modificarse muchas más propiedades del cursor de texto. Para personalizar su color, cambie el atributo <code class="docutils literal notranslate"><span class="pre">:background</span></code> de la cara denominada cursor (véase <a class="reference internal" href="50_Personlzc.html#id3"><span class="std std-ref">50.1.5. Personalización de Caras</span></a>). (Los demás atributos de esta cara no tienen ningún efecto; el texto que se muestra bajo el cursor se dibuja utilizando el color de fondo del marco). Para cambiar su forma, personalice la variable local del búfer <code class="docutils literal notranslate"><span class="pre">cursor-type</span></code>; los valores posibles son <code class="docutils literal notranslate"><span class="pre">box</span></code> (por defecto), <code class="docutils literal notranslate"><span class="pre">(box</span> <span class="pre">.</span> <span class="pre">size)</span></code> (el cursor en forma de caja se convierte en una caja hueca bajo imágenes enmascaradas de tamaño superior a píxeles en cualquiera de sus dimensiones), <code class="docutils literal notranslate"><span class="pre">hollow</span></code> (una caja hueca), <code class="docutils literal notranslate"><span class="pre">bar</span></code> (una barra vertical), <code class="docutils literal notranslate"><span class="pre">(bar</span> <span class="pre">.</span> <span class="pre">n)</span></code> (una barra vertical de <em>n</em> píxeles de ancho), <code class="docutils literal notranslate"><span class="pre">hbar</span></code> (una barra horizontal), <code class="docutils literal notranslate"><span class="pre">(hbar</span> <span class="pre">.</span> <span class="pre">n)</span></code> (una barra horizontal de <em>n</em> píxeles de alto), o <code class="docutils literal notranslate"><span class="pre">nil</span></code> (no hay cursor).</p>
<p>En una pantalla gráfica, pueden modificarse muchas más propiedades del cursor de texto. Para personalizar su color, cambie el atributo <code class="docutils literal notranslate"><span class="pre">:background</span></code> de la cara denominada cursor (véase <a class="reference internal" href="50_Personlzc.html#id4"><span class="std std-ref">50.1.5. Personalización de Caras</span></a>). (Los demás atributos de esta cara no tienen ningún efecto; el texto que se muestra bajo el cursor se dibuja utilizando el color de fondo del marco). Para cambiar su forma, personalice la variable local del búfer <code class="docutils literal notranslate"><span class="pre">cursor-type</span></code>; los valores posibles son <code class="docutils literal notranslate"><span class="pre">box</span></code> (por defecto), <code class="docutils literal notranslate"><span class="pre">(box</span> <span class="pre">.</span> <span class="pre">size)</span></code> (el cursor en forma de caja se convierte en una caja hueca bajo imágenes enmascaradas de tamaño superior a píxeles en cualquiera de sus dimensiones), <code class="docutils literal notranslate"><span class="pre">hollow</span></code> (una caja hueca), <code class="docutils literal notranslate"><span class="pre">bar</span></code> (una barra vertical), <code class="docutils literal notranslate"><span class="pre">(bar</span> <span class="pre">.</span> <span class="pre">n)</span></code> (una barra vertical de <em>n</em> píxeles de ancho), <code class="docutils literal notranslate"><span class="pre">hbar</span></code> (una barra horizontal), <code class="docutils literal notranslate"><span class="pre">(hbar</span> <span class="pre">.</span> <span class="pre">n)</span></code> (una barra horizontal de <em>n</em> píxeles de alto), o <code class="docutils literal notranslate"><span class="pre">nil</span></code> (no hay cursor).</p>
<p>Por defecto, el cursor deja de parpadear después de 10 destellos, si Emacs no recibe ninguna entrada durante ese tiempo; cualquier evento de entrada reinicia la cuenta. Puede personalizar la variable <code class="docutils literal notranslate"><span class="pre">blink-cursor-blinks</span></code> para controlar eso: su valor dice cuántas veces parpadear sin entrada antes de parar. Establecer esa variable a cero o a un valor negativo hará que el cursor parpadee para siempre. Para desactivar completamente el parpadeo del cursor, cambie la variable <code class="docutils literal notranslate"><span class="pre">blink-cursor-mode</span></code> a <code class="docutils literal notranslate"><span class="pre">nil</span></code> (vea <a class="reference internal" href="50_Personlzc.html#id2"><span class="std std-ref">50.1 Interfaz de Personalización Fácil</span></a>), o añada la línea</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="n">blink</span><span class="o">-</span><span class="n">cursor</span><span class="o">-</span><span class="n">mode</span> <span class="mi">0</span><span class="p">)</span>
</pre></div>
@ -733,25 +733,25 @@ cambiar esto, personalice la expresión regular <code class="docutils literal no
<p>Para que el cursor sea aún más visible, puede usar el modo Línea HL, un modo menor que resalta la línea que contiene el punto. Use <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">hl-line-mode</span></code> para activarlo o desactivarlo en el búfer actual. <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">global-hl-line-mode</span></code> activa o desactiva el mismo modo globalmente.</p>
</section>
<section id="truncado-de-linea">
<span id="id19"></span><h2>15.22 Truncado de Línea<a class="headerlink" href="#truncado-de-linea" title="Link to this heading"></a></h2>
<span id="id20"></span><h2>15.22 Truncado de Línea<a class="headerlink" href="#truncado-de-linea" title="Link to this heading"></a></h2>
<p>Como alternativa a la 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>), Emacs puede mostrar líneas largas mediante <em>truncamiento</em>. Esto significa que todos los caracteres que no caben en el ancho de la pantalla o ventana no aparecen en absoluto. En las pantallas gráficas, una pequeña flecha recta en la franja indica el truncamiento en cualquiera de los extremos de la línea. En los terminales de texto, esto se indica con signos <code class="docutils literal notranslate"><span class="pre">$</span></code> en las columnas del extremo derecho y/o izquierdo.</p>
<p>El desplazamiento horizontal provoca automáticamente el truncamiento de la línea (véase <a class="reference internal" href="#id4"><span class="std std-ref">15.4 Desplazamiento Horizontal</span></a>). Puede activar explícitamente el truncamiento de líneas para un búfer en particular con el comando <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">x</span> <span class="pre">t</span></code> (<code class="docutils literal notranslate"><span class="pre">toggle-truncate-lines</span></code>). Esto funciona cambiando localmente la variable <code class="docutils literal notranslate"><span class="pre">truncate-lines</span></code>. Si esta variable no es nula, las líneas largas se truncan; si es nula, continúan en varias líneas de la pantalla. Cualquier cambio en la variable <code class="docutils literal notranslate"><span class="pre">truncate-lines</span></code> (truncar-líneas) la hace local al búfer actual; hasta ese momento, el valor por defecto, que normalmente es <code class="docutils literal notranslate"><span class="pre">nil</span></code>, está en efecto.</p>
<p>Dado que el truncamiento y el ajuste de línea (descrito en la siguiente sección) son contradictorios, <code class="docutils literal notranslate"><span class="pre">toggle-truncate-lines</span></code> desactiva el ajuste de línea cuando activa el truncamiento de línea.</p>
<p>Si una ventana dividida se vuelve demasiado estrecha, Emacs puede activar automáticamente el truncamiento de línea. Ver <a class="reference internal" href="21_VariasVentanas.html#id3"><span class="std std-ref">21.3 Utilización de Otras Ventanas</span></a>, para la variable <code class="docutils literal notranslate"><span class="pre">truncate-partial-width-windows</span></code> que controla esto.</p>
</section>
<section id="modo-de-linea-visual">
<span id="id20"></span><h2>15.23 Modo de Línea Visual<a class="headerlink" href="#modo-de-linea-visual" title="Link to this heading"></a></h2>
<span id="id21"></span><h2>15.23 Modo de Línea Visual<a class="headerlink" href="#modo-de-linea-visual" title="Link to this heading"></a></h2>
<p>Otra alternativa a la continuación de línea ordinaria es usar el <em>ajuste de línea</em>. Aquí, cada línea lógica larga se divide en dos o más líneas de pantalla, como en la continuación de línea ordinaria. Sin embargo, Emacs intenta ajustar la línea en los límites de palabra cercanos al borde derecho de la ventana. (si la dirección de la línea es de derecha a izquierda, se envuelve en el borde izquierdo de la ventana). Esto hace que el texto sea más fácil de leer, ya que el ajuste no se produce en medio de las palabras.</p>
<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#id18"><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#id19"><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>
</section>
<section id="personalizacion-de-la-pantalla">
<span id="id21"></span><h2>15.24 Personalización de la Pantalla<a class="headerlink" href="#personalizacion-de-la-pantalla" title="Link to this heading"></a></h2>
<span id="id22"></span><h2>15.24 Personalización de la Pantalla<a class="headerlink" href="#personalizacion-de-la-pantalla" title="Link to this heading"></a></h2>
<p>Esta sección describe variables que controlan varios aspectos de la apariencia de la pantalla de Emacs. Los Usuarios principiantes pueden saltársela.</p>
<p>Si quiere que Emacs muestre números de línea para cada línea en el búfer, personalice la variable de búfer local <code class="docutils literal notranslate"><span class="pre">display-line-numbers</span></code>; por defecto es <code class="docutils literal notranslate"><span class="pre">nil</span></code>. Esta variable puede tener varios valores diferentes para soportar varios modos de mostrar números de línea:</p>
<dl class="simple">
@ -770,7 +770,7 @@ línea, por lo que los números crecen tanto hacia arriba como hacia abajo a med
<p>Cuando Emacs muestra números de línea relativos, puede controlar el número mostrado antes de la línea actual, el punto de visualización de dicha línea. Por defecto, Emacs muestra el número absoluto de la línea actual, aunque todos los demás números de línea sean relativos. Si personaliza la variable <code class="docutils literal notranslate"><span class="pre">display-line-numbers-current-absolute</span></code> a un valor nulo (<code class="docutils literal notranslate"><span class="pre">nil</span></code>), el número mostrado para la línea actual será cero. Esto es útil si no le importa el número de la línea actual, y quiere dejar más espacio horizontal para el texto en búferes grandes.</p>
<p>En un búfer estrechado (ver <a class="reference internal" href="#id5"><span class="std std-ref">15.5 Estrechamiento</span></a>) las líneas se numeran normalmente empezando por el principio del estrechamiento. Sin embargo, si personaliza la variable <code class="docutils literal notranslate"><span class="pre">display-line-numbers-widen</span></code> con un valor distinto de cero, los números de línea ignorarán cualquier estrechamiento y comenzarán en el primer carácter del búfer.</p>
<p>Si el valor de <code class="docutils literal notranslate"><span class="pre">display-line-numbers-offset</span></code> es distinto de cero, se añade a cada número de línea absoluto, y las líneas se cuentan desde el principio del búfer, como si <code class="docutils literal notranslate"><span class="pre">display-line-numbers-widen</span></code> fuera distinto de cero. No tiene ningún efecto cuando se pone a cero, o cuando los números de línea no son absolutos.</p>
<p>En el modo de visualización selectiva (ver <a class="reference internal" href="#id7"><span class="std std-ref">15.8. Caras de Texto</span></a>), y otros modos que ocultan muchas líneas de la visualización (como los modos Outline y Org), puede que desee personalizar las variables <code class="docutils literal notranslate"><span class="pre">display-line-numbers-width-start</span></code> y <code class="docutils literal notranslate"><span class="pre">display-line-numbers-grow-only</span></code>, o establecer <code class="docutils literal notranslate"><span class="pre">display-line-numbers-width</span></code> a un valor suficientemente grande, para evitar errores de cálculo ocasionales del espacio reservado para los números de línea.</p>
<p>En el modo de visualización selectiva (ver <a class="reference internal" href="#id8"><span class="std std-ref">15.8. Caras de Texto</span></a>), y otros modos que ocultan muchas líneas de la visualización (como los modos Outline y Org), puede que desee personalizar las variables <code class="docutils literal notranslate"><span class="pre">display-line-numbers-width-start</span></code> y <code class="docutils literal notranslate"><span class="pre">display-line-numbers-grow-only</span></code>, o establecer <code class="docutils literal notranslate"><span class="pre">display-line-numbers-width</span></code> a un valor suficientemente grande, para evitar errores de cálculo ocasionales del espacio reservado para los números de línea.</p>
<p>Los números de línea se muestran con una cara especial (<code class="docutils literal notranslate"><span class="pre">line-number</span></code>). El número de línea actual se muestra en una cara diferente (<code class="docutils literal notranslate"><span class="pre">line-number-current-line</span></code>), para que pueda hacer que el número de la línea actual tenga un aspecto distinto, lo que ayudará a localizar el punto de visualización de la línea. Se pueden usar caras adicionales (<code class="docutils literal notranslate"><span class="pre">line-number-major-tick</span></code> y <code class="docutils literal notranslate"><span class="pre">line-number-minor-tick</span></code>) para resaltar los números de línea de las líneas que son múltiplos de ciertos números. Personalice <code class="docutils literal notranslate"><span class="pre">display-line-numbers-major-tick</span></code> y <code class="docutils literal notranslate"><span class="pre">display-line-numbers-minor-tick</span></code> respectivamente para establecer esos números.</p>
<p>Si la variable <code class="docutils literal notranslate"><span class="pre">visible-bell</span></code> no es nula, Emacs intenta hacer que toda la pantalla parpadee cuando normalmente haría sonar una campana. Esta variable no tiene efecto si su terminal no tiene una forma de hacer que la pantalla parpadee.</p>
<p>La variable <code class="docutils literal notranslate"><span class="pre">echo-keystrokes</span></code> controla el eco de las teclas multicarácter; su valor es el número de segundos de pausa necesarios para que comience el eco, o cero, lo que significa que no se hace eco en absoluto. El valor tiene efecto cuando hay algo de lo que hacerse eco. Véase <a class="reference internal" href="../01_OrgPant.html#id5"><span class="std std-ref">1.2 El área de Eco</span></a>.</p>

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.56
Traducción Revisón: 1.59
</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#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>
<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#id10"><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>
@ -191,7 +191,7 @@
</div></blockquote>
<p><code class="docutils literal notranslate"><span class="pre">C-s</span></code> (<code class="docutils literal notranslate"><span class="pre">isearch-forward</span></code>) inicia una búsqueda incremental hacia adelante. Lee los caracteres del teclado y mueve el punto justo después del final de la siguiente aparición de esos caracteres en el búfer.</p>
<p>Por ejemplo, si teclea <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>) y luego <kbd class="kbd docutils literal notranslate">F</kbd> (<code class="docutils literal notranslate"><span class="pre">F</span></code>), el cursor se situará tras la primera <code class="docutils literal notranslate"><span class="pre">F</span></code> que aparezca en el búfer después del punto de inicio. Si entonces teclea <kbd class="kbd docutils literal notranslate">O</kbd> (<code class="docutils literal notranslate"><span class="pre">O</span></code>, o mayúscula), el cursor se mueve justo después de la primera <code class="docutils literal notranslate"><span class="pre">FO</span></code>; la <code class="docutils literal notranslate"><span class="pre">F</span></code> en esa <code class="docutils literal notranslate"><span class="pre">FO</span></code> podría no ser la primera <code class="docutils literal notranslate"><span class="pre">F</span></code> encontrada previamente. Después de otra <code class="docutils literal notranslate"><span class="pre">O</span></code>, el cursor se mueve justo después del primer <code class="docutils literal notranslate"><span class="pre">FOO</span></code>.</p>
<p>En cada paso, Emacs resalta la <em>coincidencia actual</em> -el texto del buffer que coincide con la cadena de búsqueda- usando la cara <code class="docutils literal notranslate"><span class="pre">isearch</span></code> (ver <a class="reference internal" href="15_ControlDisplay.html#id7"><span class="std std-ref">15.8. Caras de Texto</span></a>). Consulte <a class="reference internal" href="#id20"><span class="std std-ref">16.12 Adaptar la Búsqueda a sus Necesidades</span></a>, para conocer las distintas opciones que personalizan este resaltado. La cadena de búsqueda actual también se muestra en el área de eco.</p>
<p>En cada paso, Emacs resalta la <em>coincidencia actual</em> -el texto del buffer que coincide con la cadena de búsqueda- usando la cara <code class="docutils literal notranslate"><span class="pre">isearch</span></code> (ver <a class="reference internal" href="15_ControlDisplay.html#id8"><span class="std std-ref">15.8. Caras de Texto</span></a>). Consulte <a class="reference internal" href="#id20"><span class="std std-ref">16.12 Adaptar la Búsqueda a sus Necesidades</span></a>, para conocer las distintas opciones que personalizan este resaltado. La cadena de búsqueda actual también se muestra en el área de eco.</p>
<p>Si se equivoca al escribir la cadena de búsqueda, escriba <code class="docutils literal notranslate"><span class="pre">DEL</span></code> (<code class="docutils literal notranslate"><span class="pre">isearch-delete-char</span></code>). Cada <code class="docutils literal notranslate"><span class="pre">DEL</span></code> cancela el último elemento de entrada introducido durante la búsqueda. Emacs registra un <em>nuevo elemento</em> de entrada cada vez que escribe un comando que cambia la cadena de búsqueda, la posición del punto, el éxito o fracaso de la búsqueda, la dirección de la búsqueda, la posición del otro extremo del resultado de la búsqueda actual, o la «envoltura» de la búsqueda. Consulte <a class="reference internal" href="#id6"><span class="std std-ref">16.1.4 Errores en la Búsqueda Incremental</span></a>, para más información sobre cómo tratar una búsqueda fallida.</p>
<p>Cuando esté satisfecho con el lugar al que ha llegado, escriba <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">isearch-exit</span></code>). Esto detiene la búsqueda, dejando el cursor donde lo trajo la búsqueda. Además, cualquier comando no especialmente significativo en las búsquedas detiene la búsqueda y se ejecuta a continuación. Así, tecleando <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>) se sale de la búsqueda y se mueve al principio de la línea; tecleando una de las teclas de flecha se sale de la búsqueda y se ejecuta el comando de movimiento respectivo; etc. <code class="docutils literal notranslate"><span class="pre">RET</span></code> sólo es necesario si el siguiente comando que desea escribir es un carácter de impresión, <code class="docutils literal notranslate"><span class="pre">DEL</span></code>, <code class="docutils literal notranslate"><span class="pre">RET</span></code> u otro carácter especial dentro de las búsquedas (<code class="docutils literal notranslate"><span class="pre">C-q</span></code>, <code class="docutils literal notranslate"><span class="pre">C-w</span></code>, <code class="docutils literal notranslate"><span class="pre">C-r</span></code>, <code class="docutils literal notranslate"><span class="pre">C-s</span></code>, <code class="docutils literal notranslate"><span class="pre">C-y</span></code>, <code class="docutils literal notranslate"><span class="pre">M-y</span></code>, <code class="docutils literal notranslate"><span class="pre">M-r</span></code>, <code class="docutils literal notranslate"><span class="pre">M-c</span></code>, <code class="docutils literal notranslate"><span class="pre">M-e</span></code> y algunos otros que se describen más adelante). Puede ajustar los comandos que salen de la búsqueda; consulte <a class="reference internal" href="#id8"><span class="std std-ref">16.1.6 No Salir de la Búsqueda Incremental</span></a>.</p>
<p>Como excepción especial, si se introduce <code class="docutils literal notranslate"><span class="pre">RET</span></code> cuando la cadena de búsqueda está vacía, se inicia la búsqueda no incremental (consulte <a class="reference internal" href="#id10"><span class="std std-ref">16.2 Búsqueda no Incremental</span></a>). (Esto puede personalizarse; consulte <a class="reference internal" href="#id10"><span class="std std-ref">16.2 Búsqueda no Incremental</span></a>).</p>
@ -202,7 +202,7 @@
<section id="repeticion-de-la-busqueda-incremental">
<span id="id4"></span><h3>16.1.2 Repetición de la Búsqueda Incremental<a class="headerlink" href="#repeticion-de-la-busqueda-incremental" title="Link to this heading"></a></h3>
<p>Supongamos que busca <code class="docutils literal notranslate"><span class="pre">FOO</span></code> hacia adelante y encuentra una coincidencia, pero no la que esperaba encontrar: el <code class="docutils literal notranslate"><span class="pre">FOO</span></code> que buscaba aparece más adelante en el búfer. En este caso, escriba otra combinación <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>, <code class="docutils literal notranslate"><span class="pre">isearch-repeat-forward</span></code>) para pasar a la siguiente aparición de la cadena de búsqueda, o <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>, <code class="docutils literal notranslate"><span class="pre">isearch-repeat-backward</span></code>) para pasar a la aparición anterior. Puede repetir estos comandos tantas veces como desee. Alternativamente, puede proporcionar un argumento numérico de prefijo <em>n</em> a <code class="docutils literal notranslate"><span class="pre">C-s</span></code> y <code class="docutils literal notranslate"><span class="pre">C-r</span></code> para encontrar la enésima aparición siguiente o anterior. Si se excede, puede cancelar algunos comandos <code class="docutils literal notranslate"><span class="pre">C-s</span></code> con <code class="docutils literal notranslate"><span class="pre">DEL</span></code>. Del mismo modo, cada <code class="docutils literal notranslate"><span class="pre">C-r</span></code> (<code class="docutils literal notranslate"><span class="pre">isearch-repeat-backward</span></code>) en una búsqueda incremental hacia atrás repite la búsqueda hacia atrás.</p>
<p>Si hace una pequeña pausa durante la búsqueda incremental, Emacs resalta todas las otras posibles coincidencias para la cadena de búsqueda que están presentes en la pantalla. Esto le ayuda a anticipar a dónde puede llegar tecleando <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>) o <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>) para repetir la búsqueda. Las otras coincidencias se resaltan de forma diferente a la coincidencia actual, usando la cara personalizable <code class="docutils literal notranslate"><span class="pre">lazy-highlight</span></code> (ver <a class="reference internal" href="15_ControlDisplay.html#id7"><span class="std std-ref">15.8. Caras de Texto</span></a>). Si no le gusta esta característica, puede desactivarla poniendo <code class="docutils literal notranslate"><span class="pre">isearch-lazy-highlight</span></code> a <code class="docutils literal notranslate"><span class="pre">nil</span></code>. Para otras personalizaciones relacionadas con el resaltado de coincidencias, consulte <a class="reference internal" href="#id20"><span class="std std-ref">16.12 Adaptar la Búsqueda a sus Necesidades</span></a>.</p>
<p>Si hace una pequeña pausa durante la búsqueda incremental, Emacs resalta todas las otras posibles coincidencias para la cadena de búsqueda que están presentes en la pantalla. Esto le ayuda a anticipar a dónde puede llegar tecleando <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>) o <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>) para repetir la búsqueda. Las otras coincidencias se resaltan de forma diferente a la coincidencia actual, usando la cara personalizable <code class="docutils literal notranslate"><span class="pre">lazy-highlight</span></code> (ver <a class="reference internal" href="15_ControlDisplay.html#id8"><span class="std std-ref">15.8. Caras de Texto</span></a>). Si no le gusta esta característica, puede desactivarla poniendo <code class="docutils literal notranslate"><span class="pre">isearch-lazy-highlight</span></code> a <code class="docutils literal notranslate"><span class="pre">nil</span></code>. Para otras personalizaciones relacionadas con el resaltado de coincidencias, consulte <a class="reference internal" href="#id20"><span class="std std-ref">16.12 Adaptar la Búsqueda a sus Necesidades</span></a>.</p>
<p>Después de salir de una búsqueda, puede volver a buscar la misma cadena escribiendo sólo <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">s</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-s</span> <span class="pre">C-s</span></code>). La primera <code class="docutils literal notranslate"><span class="pre">C-s</span></code> es la tecla que invoca la búsqueda incremental, y la segunda <code class="docutils literal notranslate"><span class="pre">C-s</span></code> significa volver a buscar la última cadena buscada. Del mismo modo, <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">r</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-r</span> <span class="pre">C-r</span></code>) busca hacia atrás la última cadena de búsqueda. Para determinar la última cadena de búsqueda, no importa si esa cadena se buscó con <code class="docutils literal notranslate"><span class="pre">C-s</span></code> o <code class="docutils literal notranslate"><span class="pre">C-r</span></code>.</p>
<p>Si está buscando hacia delante pero se da cuenta de que estaba buscando algo antes del punto de partida, escriba <code class="docutils literal notranslate"><span class="pre">C-r</span></code> para cambiar a una búsqueda hacia atrás, sin cambiar la cadena de búsqueda. Del mismo modo, <code class="docutils literal notranslate"><span class="pre">C-s</span></code> en una búsqueda hacia atrás cambia a una búsqueda hacia delante.</p>
<p>Cuando cambie la dirección de una búsqueda, el primer comando que escriba permanecerá, por defecto, en la misma coincidencia, y el cursor se moverá al otro extremo de la coincidencia. Para pasar inmediatamente a otra coincidencia, personalice la variable <code class="docutils literal notranslate"><span class="pre">isearch-repeat-on-direction-change</span></code> a <code class="docutils literal notranslate"><span class="pre">t</span></code>.</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#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#id16"><span class="std std-ref">50.3.1 Mapas de teclas</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#id18"><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#id13"><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#id17"><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">
@ -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#id9"><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#id8"><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>
@ -774,7 +774,7 @@ y continúa con el siguiente búfer de la secuencia.</p>
<p>Aparte de esto, cualquier otro carácter sale de la consulta-reemplazo (<code class="docutils literal notranslate"><span class="pre">query-replace</span></code>) y se vuelve a leer como parte de una secuencia de teclas. De este modo, si escribe <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">k</kbd> (<code class="docutils literal notranslate"><span class="pre">C-k</span></code>), sale de la consulta-reemplazo y pasa al final de la línea. En particular, <code class="docutils literal notranslate"><span class="pre">C-g</span></code> simplemente sale de la consulta-reemplazo.</p>
<p>Para reiniciar una consulta-reemplazo una vez que se ha salido, utilice <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">ESC</kbd><kbd class="kbd docutils literal notranslate">ESC</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">ESC</span> <span class="pre">ESC</span></code>), que repite la consulta-reemplazo porque ha utilizado el minibúfer para leer sus argumentos. Véase <a class="reference internal" href="09_ElMinibufer.html#id10"><span class="std std-ref">9.6 Repetición de Comandos del Minibúfer</span></a>.</p>
<p>La opción <code class="docutils literal notranslate"><span class="pre">search-invisible</span></code> (búsqueda-invisible) determina cómo <code class="docutils literal notranslate"><span class="pre">query-replace</span></code> trata el texto invisible. Véase <em>Búsqueda de Contornos</em> en <a class="reference internal" href="26_ComandsLengsHuma.html#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>
<p>Véase <a class="reference internal" href="31_DiredEditDirect.html#id10"><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#id11"><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.56
Traducción Revisón: 1.59
</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#id11"><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#id12"><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>
@ -353,9 +353,9 @@ reemplazo tecleando un dígito. Puede usar <code class="docutils literal notrans
<p>Una vez iniciado, el subproceso del corrector ortográfico continúa ejecutándose, a la espera de algo que hacer, de modo que los siguientes comandos de corrección ortográfica se completen más rápidamente. Si desea deshacerse del proceso, use <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">ispell-kill-ispell</span></code>. Esto no suele ser necesario, ya que el proceso no usa tiempo del procesador excepto cuando hace la corrección ortográfica.</p>
<p>Los correctores ortográficos buscan la ortografía en dos diccionarios: el diccionario estándar y su diccionario personal. El diccionario estándar se especifica mediante la variable <code class="docutils literal notranslate"><span class="pre">ispell-local-dictionary</span></code> o, si es nula, mediante la variable <code class="docutils literal notranslate"><span class="pre">ispell-dictionary</span></code>. Si ambas son nulas, se usa el diccionario por defecto del programa de ortografía. El comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">ispell-change-dictionary</span></code> establece el diccionario estándar para el búfer y luego reinicia el subproceso, para que use un diccionario estándar diferente. Su diccionario personal se especifica mediante la variable <code class="docutils literal notranslate"><span class="pre">ispell-personal-dictionary</span></code>. Si es <code class="docutils literal notranslate"><span class="pre">nil</span></code>, el programa de ortografía busca un diccionario personal en una ubicación predeterminada, que es específica para cada corrector ortográfico.</p>
<p>Para completar palabras se usa un diccionario distinto. La variable <code class="docutils literal notranslate"><span class="pre">ispell-complete-word-dict</span> <span class="pre">especifica</span></code> el nombre de archivo de este diccionario. El diccionario de completado debe ser diferente porque no puede usar la información sobre raíces y afijos de las palabras, que el corrector ortográfico utiliza para detectar variaciones de las palabras. Para algunos idiomas, existe un diccionario de corrección ortográfica pero no un diccionario de completado de palabras.</p>
<p>El modo Flyspell es un modo secundario que realiza una corrección ortográfica automática del texto que escribe a medida que lo teclea. Cuando encuentra una palabra que no reconoce, la resalta. 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">flyspell-mode</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">flyspell-mode</span></code>) para activar el modo Flyspell en el búfer actual. Para activar el modo Flyspell en todos los búfers de modo texto, añada <code class="docutils literal notranslate"><span class="pre">flyspell-mode</span></code> a <code class="docutils literal notranslate"><span class="pre">text-mode-hook</span></code>. Ver <a class="reference internal" href="50_Personlzc.html#id6"><span class="std std-ref">50.2.2 Ganchos (Hooks)</span></a>. Tenga en cuenta que, como el modo Flyspell necesita comprobar cada palabra por la que se mueve, ralentizará el movimiento del cursor y los comandos de desplazamiento. Tampoco comprueba automáticamente el texto que no ha escrito o por el que no se ha movido; para ello utilice <code class="docutils literal notranslate"><span class="pre">flyspell-region</span></code> o <code class="docutils literal notranslate"><span class="pre">flyspell-búfer</span></code>.</p>
<p>El modo Flyspell es un modo secundario que realiza una corrección ortográfica automática del texto que escribe a medida que lo teclea. Cuando encuentra una palabra que no reconoce, la resalta. 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">flyspell-mode</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">flyspell-mode</span></code>) para activar el modo Flyspell en el búfer actual. Para activar el modo Flyspell en todos los búfers de modo texto, añada <code class="docutils literal notranslate"><span class="pre">flyspell-mode</span></code> a <code class="docutils literal notranslate"><span class="pre">text-mode-hook</span></code>. Ver <a class="reference internal" href="50_Personlzc.html#id7"><span class="std std-ref">50.2.2 Ganchos (Hooks)</span></a>. Tenga en cuenta que, como el modo Flyspell necesita comprobar cada palabra por la que se mueve, ralentizará el movimiento del cursor y los comandos de desplazamiento. Tampoco comprueba automáticamente el texto que no ha escrito o por el que no se ha movido; para ello utilice <code class="docutils literal notranslate"><span class="pre">flyspell-region</span></code> o <code class="docutils literal notranslate"><span class="pre">flyspell-búfer</span></code>.</p>
<p>Cuando el modo Flyspell resalta una palabra como mal escrita, puede hacer clic sobre ella con <code class="docutils literal notranslate"><span class="pre">ratón-2</span></code> (<code class="docutils literal notranslate"><span class="pre">flyspell-correct-word</span></code>) para mostrar un menú de posibles correcciones y acciones. Si desea que el menú aparezca con <code class="docutils literal notranslate"><span class="pre">ratón-3</span></code>, active el modo de menú contextual. Además, <code class="docutils literal notranslate"><span class="pre">C-</span></code>. o <code class="docutils literal notranslate"><span class="pre">ESC</span> <span class="pre">TAB</span></code> (<code class="docutils literal notranslate"><span class="pre">flyspell-auto-correct-word</span></code>) propondrá varias correcciones sucesivas para la palabra en el punto, y <code class="docutils literal notranslate"><span class="pre">C-c</span> <span class="pre">$</span></code> (<code class="docutils literal notranslate"><span class="pre">flyspell-correct-word-before-point</span></code>) desplegará un menú de posibles correcciones. Por supuesto, siempre puede corregir la palabra mal escrita editándola manualmente como desee.</p>
<p>El modo Flyspell Prog funciona igual que el modo Flyspell normal, con la diferencia de que sólo comprueba las palabras de los comentarios y las constantes de cadena. Esta función es útil para editar programas. 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">flyspell-prog-mode</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">flyspell-prog-mode</span></code>) para activar o desactivar este modo en el búfer actual. Para activar este modo en todos los búferes del modo de programación, añada <code class="docutils literal notranslate"><span class="pre">flyspell-prog-mode</span></code> a <code class="docutils literal notranslate"><span class="pre">prog-mode-hook</span></code> (ver <a class="reference internal" href="50_Personlzc.html#id6"><span class="std std-ref">50.2.2 Ganchos (Hooks)</span></a>).</p>
<p>El modo Flyspell Prog funciona igual que el modo Flyspell normal, con la diferencia de que sólo comprueba las palabras de los comentarios y las constantes de cadena. Esta función es útil para editar programas. 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">flyspell-prog-mode</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">flyspell-prog-mode</span></code>) para activar o desactivar este modo en el búfer actual. Para activar este modo en todos los búferes del modo de programación, añada <code class="docutils literal notranslate"><span class="pre">flyspell-prog-mode</span></code> a <code class="docutils literal notranslate"><span class="pre">prog-mode-hook</span></code> (ver <a class="reference internal" href="50_Personlzc.html#id7"><span class="std std-ref">50.2.2 Ganchos (Hooks)</span></a>).</p>
</section>
</section>

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.56
Traducción Revisón: 1.59
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -309,7 +309,7 @@ oportunidad de hacer alguna edición particular en cada repetición. Véase <a c
<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 <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>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#id17"><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 <a c
<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 <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>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#id25"><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.56
Traducción Revisón: 1.59
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -196,8 +196,8 @@
<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 <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 <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>
<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="#id16"><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#id13"><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>
@ -227,26 +227,26 @@
</div></blockquote>
<p><em>Visitar</em> un archivo significa leer su contenido en un buffer de Emacs para poder editarlo. Emacs crea un nuevo buffer para cada archivo que visita.</p>
<p>Para visitar un archivo, teclee <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">f</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-f</span></code>, <code class="docutils literal notranslate"><span class="pre">find-file</span></code>, buscar-archivo) y use el minibuffer para introducir el nombre del archivo requerido. Mientras esté en el minibúfer, puede abortar el comando tecleando <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">g</kbd> (<code class="docutils literal notranslate"><span class="pre">C-g</span></code>). Consulte <a class="reference internal" href="#id2"><span class="std std-ref">19.1 Nombres de Archivos</span></a> , para más detalles sobre la introducción de nombres de archivos en los minibúferes.</p>
<p>Si el archivo especificado existe pero el sistema no le permite leerlo, se muestra un mensaje de error en el área de eco (en sistemas GNU y Unix podría ser capaz de visitar tal archivo usando los métodos <code class="docutils literal notranslate"><span class="pre">su</span></code> o <code class="docutils literal notranslate"><span class="pre">sudo</span></code>; vea <a class="reference internal" href="#id12"><span class="std std-ref">19.5 Reversión Automática: Mantener los Búferes Actualizados Automáticamente</span></a>). De otro modo, puede saber que <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-f</span></code> se ha completado con éxito por la aparición de nuevo texto en la pantalla, y por el nombre del buffer mostrado en la línea de modo (vea <a class="reference internal" href="../01_OrgPant.html#id6"><span class="std std-ref">1.3 La línea de Modo</span></a>). Emacs normalmente construye el nombre del buffer a partir del nombre del archivo, omitiendo el nombre del directorio. Por ejemplo, un archivo llamado <code class="docutils literal notranslate"><span class="pre">/usr/rms/emacs.tex</span></code> es visitado en un búfer llamado <code class="docutils literal notranslate"><span class="pre">emacs.tex</span></code>. Si ya existe un búfer con ese nombre, Emacs construye un nombre único; el método normal es añadir un sufijo basado en el nombre del directorio (e.g., <code class="docutils literal notranslate"><span class="pre">&lt;rms&gt;</span></code>, <code class="docutils literal notranslate"><span class="pre">&lt;tmp&gt;</span></code>, y así sucesivamente), pero puede elegir otros métodos. Consulte <a class="reference internal" href="20_UsarVariosBuferes.html#id5"><span class="std std-ref">20.7.1 Hacer que los Nombres de los Búferes sean Únicos</span></a>.</p>
<p>Si el archivo especificado existe pero el sistema no le permite leerlo, se muestra un mensaje de error en el área de eco (en sistemas GNU y Unix podría ser capaz de visitar tal archivo usando los métodos <code class="docutils literal notranslate"><span class="pre">su</span></code> o <code class="docutils literal notranslate"><span class="pre">sudo</span></code>; vea <a class="reference internal" href="#id13"><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#id7"><span class="std std-ref">20.7.1 Hacer que los Nombres de los Búferes sean Únicos</span></a>.</p>
<p>Para crear un nuevo archivo, simplemente visítelo usando el mismo comando, <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">f</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-f</span></code>). Emacs muestra <code class="docutils literal notranslate"><span class="pre">(New</span> <span class="pre">file)</span></code> (Archivo nuevo) en el área de eco, pero en otros aspectos se comporta como si hubiera visitado un archivo vacío existente.</p>
<p>Después de visitar un archivo, los cambios que haga con los comandos de edición se hacen en el búfer de Emacs. No tienen efecto en el archivo visitado, hasta que guarde el búfer (vea <a class="reference internal" href="#id4"><span class="std std-ref">19.3 Guardar Archivos</span></a>). Si un búfer contiene cambios que no han sido guardados, decimos que el búfer está <em>modificado</em>. Esto implica que algunos cambios se perderán si no se guarda el búfer. La línea de modo muestra dos asteriscos cerca del margen izquierdo para indicar que el búfer está modificado.</p>
<p>Si visita un archivo que ya está en Emacs, <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-f</span></code> cambia al búfer existente en lugar de hacer otra copia. Antes de hacerlo, comprueba si el archivo ha cambiado desde la última vez que lo visitó o lo guardó. Si el fichero ha cambiado, Emacs ofrece releerlo.</p>
<p>Si se intenta visitar un archivo mayor que el umbral de advertencia de archivo grande (por defecto es 10000000, que son unos 10 megabytes), Emacs pide confirmación primero. Puede responder <code class="docutils literal notranslate"><span class="pre">y</span></code> para proceder a visitar el archivo o <code class="docutils literal notranslate"><span class="pre">l</span></code> para visitarlo literalmente (ver más abajo). Visitar archivos grandes literalmente acelera la navegación y edición de tales archivos, porque varias características potencialmente complejas están desactivadas. Tenga en cuenta, sin embargo, que Emacs no puede visitar ficheros que sean más grandes que el tamaño máximo del búfer, que está limitado por la cantidad de memoria que el Editor puede asignar y por los enteros que puede representar (vea <a class="reference internal" href="20_UsarVariosBuferes.html#id1"><span class="std std-ref">20 Uso de Varios Búferes</span></a>). Si lo intenta, Emacs muestra un mensaje de error diciendo que se ha excedido el tamaño máximo del búfer.</p>
<p>Si intenta visitar un archivo cuyo modo principal (ver <a class="reference internal" href="24_ModosMayores-Y-Menores.html#id2"><span class="std std-ref">24.1 Modos Mayores (o Principales)</span></a>) usa la biblioteca de análisis sintáctico tree-sitter, Emacs mostrará una advertencia si el tamaño del archivo en bytes es mayor que el valor de la variable <code class="docutils literal notranslate"><span class="pre">treesit-max-buffer-size</span></code>. El valor por defecto es 40 megabytes para Emacs de 64 bits y 15 megabytes para Emacs de 32 bits. Esto evita el peligro de que el Editor se quede sin memoria impidiendo la activación de modos principales basados en tree-sitter en búferes tan grandes, porque un típico analizador tree-sitter necesita unas 10 veces más memoria que el texto que analiza.</p>
<p>Si el nombre de archivo que especifica contiene caracteres comodín del tipo shell, Emacs visita todos los archivos que coincidan con él. (En los sistemas de ficheros que no distinguen entre mayúsculas y minúsculas, Emacs busca los comodines sin tener en cuenta las mayúsculas y minúsculas). Los comodines incluyen las secuencias <code class="docutils literal notranslate"><span class="pre">?</span></code>, <code class="docutils literal notranslate"><span class="pre">*</span></code> y <code class="docutils literal notranslate"><span class="pre">[...]</span></code>. Para introducir el comodín <code class="docutils literal notranslate"><span class="pre">?</span></code> en un nombre de archivo en el minibúfer, debe teclear <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">q</kbd> <kbd class="kbd docutils literal notranslate">?</kbd> (<code class="docutils literal notranslate"><span class="pre">C-q</span> <span class="pre">?</span></code>) Consulte <a class="reference internal" href="#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 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="#id26"><span class="std std-ref">19.16 Nombres de Archivos Entrecomillados</span></a>, para obtener información sobre cómo visitar un archivo cuyo nombre contiene realmente caracteres comodín. Puede desactivar la función de comodines personalizando <code class="docutils literal notranslate"><span class="pre">find-file-wildcards</span></code>.</p>
<p>Si está pidiendo visitar un archivo que ya ha sido visitado en un búfer, pero el archivo ha cambiado externamente, Emacs normalmente le pregunta si quiere releer el archivo desde el disco. Pero si configura <code class="docutils literal notranslate"><span class="pre">query-about-changed-file</span></code> a <code class="docutils literal notranslate"><span class="pre">nil</span></code>, Emacs no le preguntará, sino que simplemente mostrará el contenido del búfer antes de los cambios, y mostrará un mensaje en el echo-area diciéndole cómo revertir el búfer desde el archivo.</p>
<p>Si visita el archivo equivocado sin querer al escribir su nombre de manera incorrecta, escriba <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">v</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-v</span></code>, <code class="docutils literal notranslate"><span class="pre">find-alternate-file</span></code>) para visitar el archivo que realmente quería. <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-v</span></code> es similar a <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-f</span></code>, pero elimina el búfer actual (después de ofrecer primero guardarlo si se modifica). Cuando <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-v</span></code> lee el nombre del archivo a visitar, inserta todo el nombre del archivo por defecto en el búfer, con el punto justo después de la parte del directorio; esto es conveniente si cometió un pequeño error al teclear el nombre.</p>
<p>Si visita un archivo que en realidad es un directorio, Emacs invoca Dired, el navegador de directorios de Emacs. Ver <a class="reference internal" href="31_DiredEditDirect.html#id1"><span class="std std-ref">31 Dired, el Editor de Directorios</span></a>. Puede desactivar este comportamiento estableciendo la variable <code class="docutils literal notranslate"><span class="pre">find-file-run-dired</span></code> a <code class="docutils literal notranslate"><span class="pre">nil</span></code>; en ese caso, es un error intentar visitar un directorio.</p>
<p>Los archivos que en realidad <em>son colecciones de otros archivos</em>, o archivos de archivos, se visitan en modos especiales que invocan un entorno similar a Dired para permitir operaciones sobre los miembros de dichos archivo. Ver <a class="reference internal" href="#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>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="#id24"><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#id4"><span class="std std-ref">20.3 Operaciones Varias del Búfer</span></a>.</p>
<p>Si desea visitar un archivo como sólo-lectura para protegerse de introducir cambios accidentalmente, visítelo con el comando <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-r</span></code> (<code class="docutils literal notranslate"><span class="pre">find-file-read-only</span></code>, buscar-archivo-sólo-lectura) en lugar de <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-f</span></code>.</p>
<p><code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">4</span> <span class="pre">f</span></code> (<code class="docutils literal notranslate"><span class="pre">find-file-other-window</span></code>, buscar-archivo-otra-ventana) es como <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-f</span></code> excepto en que el búfer que contiene el archivo especificado se selecciona en otra ventana. La ventana que estaba seleccionada antes de <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">4</span> <span class="pre">f</span></code> sigue mostrando el mismo búfer que ya estaba mostrando. Si se usa este comando cuando sólo se está mostrando una ventana, esa ventana se divide en dos, con una ventana mostrando el mismo búfer que antes, y la otra mostrando el nuevo archivo solicitado. Véase <a class="reference internal" href="21_VariasVentanas.html#id1"><span class="std std-ref">21 Varias Ventanas</span></a>.</p>
<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 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#id18"><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#id14"><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>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="#id23"><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="#id8"><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>
@ -261,14 +261,14 @@
</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 <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>
<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#id7"><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#id9"><span class="std std-ref">50.2.4. Variables locales en Archivos</span></a>).</p>
</section>
<section id="guardar-archivos">
<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>
<span id="id5"></span><h3>19.3.1 Comandos para Guardar Archivos<a class="headerlink" href="#comandos-para-guardar-archivos" title="Link to this heading"></a></h3>
<p>Estos son los comandos relacionados con guardar y escribir archivos.</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">s</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-s</span></code>)</p>
<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 <a class="reference internal" href="#id5"><span class="std std-ref">19.3.2 Archivos de Copia de Seguridad</span></a>.</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="#id6"><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,7 +344,7 @@
</div></blockquote>
<p><kbd class="kbd docutils literal notranslate">d</kbd> (<code class="docutils literal notranslate"><span class="pre">d</span></code>)</p>
<blockquote>
<div><p>Compara el búfer con su archivo correspondiente, para que pueda ver qué cambios estaría guardando. Para ello se invoca el comando <code class="docutils literal notranslate"><span class="pre">diff-buffer-with-file</span></code> (véase <a class="reference internal" href="#id15"><span class="std std-ref">19.9 Comparación de Archivos</span></a>).</p>
<div><p>Compara el búfer con su archivo correspondiente, para que pueda ver qué cambios estaría guardando. Para ello se invoca el comando <code class="docutils literal notranslate"><span class="pre">diff-buffer-with-file</span></code> (véase <a class="reference internal" href="#id20"><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>
@ -352,23 +352,23 @@
</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 <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>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="#id12"><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 <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>
<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="#id9"><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">
<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>
<span id="id6"></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 <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>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="#id7"><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">
<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>
<span id="id7"></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>
@ -382,7 +382,7 @@ defecto.</p>
<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>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#id8"><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#id9"><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>
@ -391,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 <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>
<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#id9"><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>
@ -414,7 +414,7 @@ copiar.</p>
</section>
</section>
<section id="personalizar-el-guardado-de-archivos">
<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>
<span id="id8"></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>
@ -424,10 +424,10 @@ copiar.</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">
<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>
<span id="id9"></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 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>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="#id11" id="id10" 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">
@ -441,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 <a class="reference internal" href="#id15"><span class="std std-ref">19.9 Comparación de Archivos</span></a>.</p>
<p>Una forma de comparar el búfer con su archivo es el comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">diff-buffer-with-file</span></code>. Véase <a class="reference internal" href="#id20"><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="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>
<aside class="footnote brackets" id="id11" role="doc-footnote">
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id10">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>
@ -496,11 +496,11 @@ 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 <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>
<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#id7"><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#id25"><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="id11"></span><h2>19.4 Revertir un Búfer<a class="headerlink" href="#revertir-un-bufer" title="Link to this heading"></a></h2>
<span id="id12"></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 <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>
@ -508,10 +508,10 @@ copiar.</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>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 <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>
<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="#id13"><span class="std std-ref">19.5 Reversión Automática: Mantener los Búferes Actualizados Automáticamente</span></a>.</p>
</section>
<section id="reversion-automatica-mantener-los-buferes-actualizados-automaticamente">
<span id="id12"></span><h2>19.5 Reversión Automática: Mantener los Búferes Actualizados Automáticamente<a class="headerlink" href="#reversion-automatica-mantener-los-buferes-actualizados-automaticamente" title="Link to this heading"></a></h2>
<span id="id13"></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>
@ -523,7 +523,7 @@ copiar.</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>
<span id="id14"></span><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>
<p>Al igual que los búferes de archivo, los búferes que no son de archivo normalmente no deberían revertirse mientras se está trabajando en ellos, o mientras contienen información que podría perderse tras la reversión. Por lo tanto, no se revierten si se modifican. Esto puede resultar complicado, ya que decidir cuándo un búfer que no es de archivo debe marcarse como modificado suele ser más difícil que en el caso de los búferes de archivo.</p>
<p>Otro detalle delicado es que, por razones de eficiencia, la reversión automática a menudo no intenta detectar todos los cambios posibles en el búfer, sino sólo los cambios importantes o fáciles de detectar. Por lo tanto, habilitar la reversión automática para un búfer que no sea de archivos no siempre garantiza que toda la información del búfer esté actualizada, y no hace necesariamente inútiles las reversiones manuales.</p>
@ -531,8 +531,8 @@ copiar.</p>
<p>Algunos búferes que no son archivos pueden actualizarse de forma fiable mediante la notificación de archivos en su directorio por defecto; los búferes Dired son un ejemplo. El modo principal puede indicar esto estableciendo <code class="docutils literal notranslate"><span class="pre">buffer-auto-revert-by-notification</span></code> a un valor no nulo en ese búfer, permitiendo que Auto Revert evite el sondeo periódico. Dicha notificación no incluye los cambios en los archivos de ese directorio, sólo en el directorio en sí.</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 <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>
<span id="id15"></span><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 <a class="reference internal" href="20_UsarVariosBuferes.html#id6"><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,22 +549,22 @@ modificado usando <code class="docutils literal notranslate"><span class="pre">M
</section>
</section>
<section id="guardado-automatico-proteccion-frente-a-desastres">
<span id="id13"></span><h2>19.6 Guardado Automático: Protección Frente a Desastres<a class="headerlink" href="#guardado-automatico-proteccion-frente-a-desastres" title="Link to this heading"></a></h2>
<span id="id16"></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>
<span id="id17"></span><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 <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>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="#id25"><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 <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>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="#id18"><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">
<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>
<span id="id18"></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>
@ -598,7 +598,7 @@ modificado usando <code class="docutils literal notranslate"><span class="pre">M
</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>
<span id="id19"></span><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 <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>
@ -633,12 +633,12 @@ modificado usando <code class="docutils literal notranslate"><span class="pre">M
<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 <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>
<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="#id22"><span class="std std-ref">19.12 Operaciones Varias con Archivos</span></a>, para obtener más información sobre el uso de la Papelera.</p>
</section>
<section id="comparacion-de-archivos">
<span id="id15"></span><h2>19.9 Comparación de Archivos<a class="headerlink" href="#comparacion-de-archivos" title="Link to this heading"></a></h2>
<span id="id20"></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 <a class="reference internal" href="#id16"><span class="std std-ref">19.10 Modo Diff</span></a>.</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="#id21"><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>
@ -650,11 +650,11 @@ modificado usando <code class="docutils literal notranslate"><span class="pre">M
<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">
<span id="id16"></span><h2>19.10 Modo Diff<a class="headerlink" href="#modo-diff" title="Link to this heading"></a></h2>
<span id="id21"></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 <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>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#id4"><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>
@ -745,7 +745,7 @@ está activa, solo convierte los fragmentos dentro de la región.</p>
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 <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>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#id16"><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">
@ -758,47 +758,47 @@ actual, pero obtiene el nombre de la función del propio parche. Esto es útil 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 <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 <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>
<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="#id26"><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">
<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>
<span id="id22"></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">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 <code class="docutils literal notranslate"><span class="pre">delete-file</span></code>. Consulte <a class="reference internal" href="31_DiredEditDirect.html#id8"><span class="std std-ref">31.3 Borrar Archivos con Dired</span></a>.</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>
<p>Por defecto, los comandos de borrado de Emacs <em>no</em> utilizan la Papelera. Para usar la Papelera (cuando esté disponible) para los comandos comunes de borrado, cambie 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>. Esto afecta a los comandos <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">delete-file</span></code> y <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">delete-directory</span></code> (ver <strong>Directorios de Archivos</strong>), así como a los comandos de borrado en Dired (ver <strong>Borrado de Archivos con Dired</strong>). Suministrar un argumento prefijo a <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">delete-file</span></code> o <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">delete-directory</span></code> hace que se borren directamente, en lugar de usar la Papelera, independientemente de <code class="docutils literal notranslate"><span class="pre">delete-by-moving-to-trash</span></code>.</p>
<p>Por defecto, los comandos de borrado de Emacs <em>no</em> utilizan la Papelera. Para usar la Papelera (cuando esté disponible) para los comandos comunes de borrado, cambie 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>. Esto afecta a los comandos <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">delete-file</span></code> y <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">delete-directory</span></code> (ver <a class="reference internal" href="#id19"><span class="std std-ref">19.8 Directorios de Archivos</span></a>), así como a los comandos de borrado en Dired (ver <a class="reference internal" href="31_DiredEditDirect.html#id8"><span class="std std-ref">31.3 Borrar Archivos con Dired</span></a>). Suministrar un argumento prefijo a <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">delete-file</span></code> o <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">delete-directory</span></code> hace que se borren directamente, en lugar de usar la Papelera, independientemente de <code class="docutils literal notranslate"><span class="pre">delete-by-moving-to-trash</span></code>.</p>
<p>Si tiene configurado <code class="docutils literal notranslate"><span class="pre">delete-by-moving-to-trash</span></code>, y quiere borrar archivos manualmente en Emacs desde el directorio Trash, usar comandos como <code class="docutils literal notranslate"><span class="pre">D</span></code> (<code class="docutils literal notranslate"><span class="pre">dired-do-delete</span></code>) no funciona
bien en este directorio (sólo le dará un nuevo nombre al archivo, pero no borrará nada). Si desea poder hacer esto, debe crear un archivo <code class="docutils literal notranslate"><span class="pre">.dir-locals.el</span></code> que contenga algo como lo siguiente en el directorio Papelera:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">((</span><span class="n">dired</span><span class="o">-</span><span class="n">mode</span> <span class="o">.</span> <span class="p">((</span><span class="n">delete</span><span class="o">-</span><span class="n">by</span><span class="o">-</span><span class="n">moving</span><span class="o">-</span><span class="n">to</span><span class="o">-</span><span class="n">trash</span> <span class="o">.</span> <span class="n">nil</span><span class="p">))))</span>
</pre></div>
</div>
<p>Tenga en cuenta, sin embargo, que si usa el comando del sistema «vaciar papelera», es probable que también borre este archivo <code class="docutils literal notranslate"><span class="pre">.dir-locals.el</span></code>, por lo que esto sólo debería hacerse si borra archivos del directorio Papelera manualmente.</p>
<p>Si un archivo está bajo control de versiones (vea <strong>Control de Versiones</strong>), debería borrarlo usando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">vc-delete-file</span></code> en lugar de <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">delete-file</span></code>. Consulte <strong>Borrar y Renombrar Archivos Controlados por Sistema de Control de Versiones</strong>.</p>
<p><code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">insert-file</span></code> (también <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">i</span></code>) inserta una copia del contenido del archivo especificado en el búfer actual en el punto, dejando el punto sin cambios antes del contenido. La posición después del contenido insertado se añade al anillo de marcas, sin activar la marca (véase <strong>El Anillo de Marcas</strong>).</p>
<p><code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">insert-file-literally</span></code> es como <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">insert-file</span></code>, excepto que el archivo se inserta literalmente: se trata como una secuencia de caracteres ASCII sin codificación especial ni conversión, de forma similar al comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">find-file-literally</span></code> (ver <strong>Visitar Archivos</strong>).</p>
<p><code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">write-región</span></code> es el comando inverso de <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">insert-file</span></code>; copia el contenido de la región en el archivo especificado. <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">append-to-file</span></code> añade el texto de la región al final del archivo especificado. Véase <strong>Acumular Texto</strong>. La variable <code class="docutils literal notranslate"><span class="pre">write-region-inhibit-fsync</span></code> se aplica a estos comandos, así como al guardado de archivos; véase <strong>Personalización del Guardado de Archivos</strong>.</p>
<p>Si un archivo está bajo control de versiones (vea <a class="reference internal" href="29_ManyProgrsGrands.html#id2"><span class="std std-ref">29.1 Control de Versiones</span></a>), debería borrarlo usando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">vc-delete-file</span></code> en lugar de <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">delete-file</span></code>. Consulte :ref:`` <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">insert-file</span></code> (también <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">i</span></code>) inserta una copia del contenido del archivo especificado en el búfer actual en el punto, dejando el punto sin cambios antes del contenido. La posición después del contenido insertado se añade al anillo de marcas, sin activar la marca (véase <a class="reference internal" href="12_LaMarca-y-LaRegion.html#id7"><span class="std std-ref">12.4 El Anillo de Marcas</span></a>).</p>
<p><code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">insert-file-literally</span></code> es como <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">insert-file</span></code>, excepto que el archivo se inserta literalmente: se trata como una secuencia de caracteres ASCII sin codificación especial ni conversión, de forma similar al comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">find-file-literally</span></code> (ver <a class="reference internal" href="#id3"><span class="std std-ref">19.2 Visitar Archivos</span></a>).</p>
<p><code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">write-región</span></code> es el comando inverso de <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">insert-file</span></code>; copia el contenido de la región en el archivo especificado. <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">append-to-file</span></code> añade el texto de la región al final del archivo especificado. Véase <a class="reference internal" href="13_MatarMoverTxt.html#id12"><span class="std std-ref">13.4 Acumular Texto</span></a>. La variable <code class="docutils literal notranslate"><span class="pre">write-region-inhibit-fsync</span></code> se aplica a estos comandos, así como al guardado de archivos; véase <a class="reference internal" href="#id8"><span class="std std-ref">19.3.3 Personalizar el Guardado de Archivos</span></a>.</p>
<p><code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">set-file-modes</span></code> lee un nombre de archivo seguido de un <em>modo de archivo</em> y aplica ese modo de archivo al archivo especificado. Los modos de archivo, también llamados <em>permisos de archivo</em>, determinan si un archivo puede leerse, escribirse o ejecutarse, y quién puede hacerlo. Este comando lee los modos de archivo usando el mismo formato simbólico u octal aceptado por el comando chmod; por ejemplo, <code class="docutils literal notranslate"><span class="pre">u+x</span></code> significa añadir permiso de ejecución para el Usuario propietario del archivo. No tiene efecto en sistemas operativos que no soportan modos de archivo. <code class="docutils literal notranslate"><span class="pre">chmod</span></code> es un alias de conveniencia para esta función.</p>
</section>
<section id="acceso-a-archivos-comprimidos">
<span id="id18"></span><h2>19.13. Acceso a Archivos Comprimidos<a class="headerlink" href="#acceso-a-archivos-comprimidos" title="Link to this heading"></a></h2>
<span id="id23"></span><h2>19.13. Acceso a Archivos Comprimidos<a class="headerlink" href="#acceso-a-archivos-comprimidos" title="Link to this heading"></a></h2>
<p>Emacs descomprime automáticamente los archivos comprimidos cuando los visita, y los recomprime automáticamente si los modifica y guarda. Emacs reconoce los archivos comprimidos por sus nombres. Los nombres de archivo que terminan en <code class="docutils literal notranslate"><span class="pre">.gz</span></code> indican un archivo comprimido con <code class="docutils literal notranslate"><span class="pre">gzip</span></code>. Otras terminaciones indican otros programas de compresión.</p>
<p>La descompresión y compresión automáticas se aplican a todas las operaciones en las que Emacs usa el contenido de un archivo. Esto incluye visitarlo, guardarlo, insertar su contenido en un búfer, cargarlo y compilarlo en bytes.</p>
<p>Para desactivar esta función, escriba el comando <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <code class="docutils literal notranslate"><span class="pre">auto-compression-mode</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">auto-compression-mode</span></code>). Puede desactivarla permanentemente personalizando la variable <code class="docutils literal notranslate"><span class="pre">auto-compression-mode</span></code>.</p>
</section>
<section id="archivos-de-archivos">
<span id="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>
<span id="id24"></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 <a class="reference internal" href="31_DiredEditDirect.html#id1"><span class="std std-ref">31 Dired, el Editor de Directorios</span></a>). 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 <a class="reference internal" href="#id23"><span class="std std-ref">19.13. Acceso a Archivos Comprimidos</span></a>), 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 contenedor 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. <code class="docutils literal notranslate"><span class="pre">v</span></code> extrae un archivo a un búfer en modo Visualizar (ver <a class="reference internal" href="15_ControlDisplay.html#id6"><span class="std std-ref">15.6 Modo Vista</span></a>). <code class="docutils literal notranslate"><span class="pre">o</span></code> extrae el archivo y lo muestra en otra ventana, de forma que pueda editar el archivo y operar en el archivo simultáneamente.</p>
<p>La tecla <kbd class="kbd docutils literal notranslate">I</kbd> (<code class="docutils literal notranslate"><span class="pre">I</span></code>) añade un nuevo archivo (normal) al archivo. El archivo está inicialmente vacío, pero puede editarse fácilmente usando los comandos anteriores. El comando inserta el nuevo archivo antes que el actual, de modo que usarlo en la primera línea del búfer Tar hace que el nuevo archivo sea el primero del archivo, y usarlo al final del búfer hace que sea el último.</p>
<p><kbd class="kbd docutils literal notranslate">d</kbd> (<code class="docutils literal notranslate"><span class="pre">d</span></code>) marca un archivo para que se borre cuando más tarde use <kbd class="kbd docutils literal notranslate">x</kbd> (<code class="docutils literal notranslate"><span class="pre">x</span></code>), y <kbd class="kbd docutils literal notranslate">u</kbd> (<code class="docutils literal notranslate"><span class="pre">u</span></code>) desmarca un archivo, como en Dired. <kbd class="kbd docutils literal notranslate">C</kbd> (<code class="docutils literal notranslate"><span class="pre">C</span></code>) copia un archivo del archivo al disco y <kbd class="kbd docutils literal notranslate">R</kbd> (<code class="docutils literal notranslate"><span class="pre">R</span></code>) renombra un archivo dentro del archivo. <kbd class="kbd docutils literal notranslate">g</kbd> (<code class="docutils literal notranslate"><span class="pre">g</span></code>) revierte el búfer del archivo al disco. Las teclas <kbd class="kbd docutils literal notranslate">M</kbd> (<code class="docutils literal notranslate"><span class="pre">M</span></code>), <kbd class="kbd docutils literal notranslate">G</kbd> (<code class="docutils literal notranslate"><span class="pre">G</span></code>) y <kbd class="kbd docutils literal notranslate">O</kbd> (<code class="docutils literal notranslate"><span class="pre">O</span></code>) cambian los bits de permiso, el grupo y el propietario del archivo, respectivamente.</p>
<p>Al guardar el búfer Tar se escribe una nueva versión del archivo en el disco con los cambios realizados en los componentes.</p>
<p>No necesita el programa <code class="docutils literal notranslate"><span class="pre">tar</span></code> para usar el modo Tar: Emacs lee los archivos directamente. Sin embargo, para acceder a archivos comprimidos se necesita el programa de descompresión adecuado.</p>
<p>Se usa un modo de archivo separado pero similar para los archivos <code class="docutils literal notranslate"><span class="pre">arc</span></code>, <code class="docutils literal notranslate"><span class="pre">jar</span></code>, <code class="docutils literal notranslate"><span class="pre">lzh</span></code>, <code class="docutils literal notranslate"><span class="pre">zip</span></code>, <code class="docutils literal notranslate"><span class="pre">rar</span></code>, <code class="docutils literal notranslate"><span class="pre">7z</span></code> y <code class="docutils literal notranslate"><span class="pre">zoo</span></code>, así como para los archivos exe que son ejecutables autoextraíbles.</p>
<p>Las combinaciones de teclas del modo Archivo son similares a las del modo Tar, con la adición de la tecla <kbd class="kbd docutils literal notranslate">m</kbd> (<code class="docutils literal notranslate"><span class="pre">m</span></code>), que marca un archivo para operaciones posteriores, y <code class="docutils literal notranslate"><span class="pre">M-DEL</span></code>, que desmarca todos los archivos marcados. Además, la tecla a activa la visualización de información detallada del archivo, para aquellos tipos de archivo en los que no cabe en una sola línea. Operaciones como renombrar un subarchivo, o cambiar su modo o propietario, sólo están soportadas para algunos de los formatos de archivo.</p>
<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>
<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 <a class="reference internal" href="50_Personlzc.html#id3"><span class="std std-ref">50.1.1 Grupos de Personalización</span></a>).</p>
</section>
<section id="archivos-remotos">
<span id="id20"></span><h2>19.15 Archivos Remotos<a class="headerlink" href="#archivos-remotos" title="Link to this heading"></a></h2>
<span id="id25"></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>
@ -815,21 +815,21 @@ bien en este directorio (sólo le dará un nuevo nombre al archivo, pero no borr
<li><p>Si no, Emacs usa <code class="docutils literal notranslate"><span class="pre">ssh</span></code>.</p></li>
</ol>
</div></blockquote>
<p>Puede desactivar completamente la función de nombre de archivo remoto estableciendo la variable <code class="docutils literal notranslate"><span class="pre">tramp-mode</span></code> a <code class="docutils literal notranslate"><span class="pre">nil</span></code>. Puede desactivar la función en casos individuales entrecomillando el nombre de archivo con <code class="docutils literal notranslate"><span class="pre">/:</span></code> (consulte <strong>Nombres de Archivos Entrecomillados</strong>).</p>
<p>Puede desactivar completamente la función de nombre de archivo remoto estableciendo la variable <code class="docutils literal notranslate"><span class="pre">tramp-mode</span></code> a <code class="docutils literal notranslate"><span class="pre">nil</span></code>. Puede desactivar la función en casos individuales entrecomillando el nombre de archivo con <code class="docutils literal notranslate"><span class="pre">/:</span></code> (consulte <a class="reference internal" href="#id26"><span class="std std-ref">19.16 Nombres de Archivos Entrecomillados</span></a>).</p>
<p>El acceso remoto a archivos a través de FTP se gestiona mediante el paquete Ange-FTP, que se documenta a continuación. El acceso remoto a archivos a través de otros métodos es gestionado por el paquete Tramp, que tiene su propio manual. Ver <strong>El Manual de Tramp</strong>.</p>
<p>Cuando se usa el paquete Ange-FTP, Emacs entra a través de FTP usando el nombre <em>Usuario</em>, si se especifica en el nombre del archivo remoto. Si no especifica Usuario, Emacs inicia la sesión usando su nombre de Usuario en el sistema local; pero si establece la variable <code class="docutils literal notranslate"><span class="pre">ange-ftp-default-user</span></code> a una cadena, se usará esa cadena en su lugar. Al iniciar sesión, Emacs también puede pedir una contraseña.</p>
<p>Cuando se usa el paquete Ange-FTP, Emacs entra a través de FTP usando el nombre <em>usuario</em>, si se especifica en el nombre del archivo remoto. Si no especifica <em>usuario</em>, Emacs inicia la sesión usando su nombre de Usuario en el sistema local; pero si establece la variable <code class="docutils literal notranslate"><span class="pre">ange-ftp-default-user</span></code> a una cadena, se usará esa cadena en su lugar. Al iniciar sesión, Emacs también puede pedir una contraseña.</p>
<p>Por razones de rendimiento, Emacs no hace por defecto copias de seguridad de los archivos a los que se accede por FTP. Para hacerlo, cambie la variable <code class="docutils literal notranslate"><span class="pre">ange-ftp-make-backup-files</span></code> a un valor no nulo.</p>
<p>Por defecto, los archivos de autoguardado para archivos remotos se realizan en el directorio de archivos temporales de la máquina local, tal y como especifica la variable <code class="docutils literal notranslate"><span class="pre">auto-save-file-name-transforms</span></code>. Véase <strong>Autoguardar Archivos</strong>.</p>
<p>Para visitar archivos accesibles por FTP anónimo, se usan nombres de Usuario especiales <code class="docutils literal notranslate"><span class="pre">anonymous</span></code> o <code class="docutils literal notranslate"><span class="pre">ftp</span></code>. Las contraseñas para estos nombres de Usuario se tratan de forma especial. La variable <code class="docutils literal notranslate"><span class="pre">ange-ftp-generate-anonymous-password</span></code> controla lo que ocurre: si el valor de esta variable es una cadena, entonces esa cadena se usa como contraseña; si no es nula (por defecto), entonces se usa el valor de <code class="docutils literal notranslate"><span class="pre">user-mail-address</span></code>; si es nula, Emacs le pide una contraseña como siempre (vea <strong>Ingreso de Contraseñas</strong>).</p>
<p>Por defecto, los archivos de autoguardado para archivos remotos se realizan en el directorio de archivos temporales de la máquina local, tal y como especifica la variable <code class="docutils literal notranslate"><span class="pre">auto-save-file-name-transforms</span></code>. Véase <a class="reference internal" href="#id17"><span class="std std-ref">19.6.1 Autoguardar Archivos</span></a>.</p>
<p>Para visitar archivos accesibles por FTP anónimo, se usan nombres de Usuario especiales <code class="docutils literal notranslate"><span class="pre">anonymous</span></code> o <code class="docutils literal notranslate"><span class="pre">ftp</span></code>. Las contraseñas para estos nombres de Usuario se tratan de forma especial. La variable <code class="docutils literal notranslate"><span class="pre">ange-ftp-generate-anonymous-password</span></code> controla lo que ocurre: si el valor de esta variable es una cadena, entonces esa cadena se usa como contraseña; si no es nula (por defecto), entonces se usa el valor de <code class="docutils literal notranslate"><span class="pre">user-mail-address</span></code>; si es nula, Emacs le pide una contraseña como siempre (vea <a class="reference internal" href="09_ElMinibufer.html#id11"><span class="std std-ref">9.7 Ingresar Contraseñas</span></a>).</p>
<p>A veces puede que no pueda acceder a los archivos de una máquina remota porque un cortafuegos intermedio bloquea la conexión por razones de seguridad. Si puede conectarse a una máquina pasarela desde la que se pueda acceder a los archivos de destino, y cuyo servidor FTP admita las funciones de pasarela, puede seguir usando nombres de archivo remotos; todo lo que tiene que hacer es especificar el nombre de la máquina pasarela configurando la variable <code class="docutils literal notranslate"><span class="pre">ange-ftp-gateway-host</span></code>, y configurar <code class="docutils literal notranslate"><span class="pre">ange-ftp-smart-gateway</span></code> como <code class="docutils literal notranslate"><span class="pre">t</span></code>. De lo contrario, puede hacer que funcionen los nombres de archivo remotos, pero el procedimiento es complejo. Puede leer las instrucciones escribiendo <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <code class="docutils literal notranslate"><span class="pre">finder-commentary</span></code> <kbd class="kbd docutils literal notranslate">RETURN</kbd> <code class="docutils literal notranslate"><span class="pre">ange-ftp</span></code> <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">finder-commentary</span> <span class="pre">RET</span> <span class="pre">ange-ftp</span> <span class="pre">RET</span></code>).</p>
</section>
<section id="nombres-de-archivos-entrecomillados">
<span id="id21"></span><h2>19.16 Nombres de Archivos Entrecomillados<a class="headerlink" href="#nombres-de-archivos-entrecomillados" title="Link to this heading"></a></h2>
<span id="id26"></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>
<p><code class="docutils literal notranslate"><span class="pre">/:</span></code> también puede evitar que <code class="docutils literal notranslate"><span class="pre">~</span></code> sea tratado como un carácter especial para el directorio personal de un Usuario. Por ejemplo, <code class="docutils literal notranslate"><span class="pre">/:/tmp/~hack</span></code> se refiere a un archivo cuyo nombre es <code class="docutils literal notranslate"><span class="pre">~hack</span></code> en el directorio <code class="docutils literal notranslate"><span class="pre">/tmp</span></code>.</p>
<p>Citar con <code class="docutils literal notranslate"><span class="pre">/:</span></code> es también una forma de introducir en el minibúfer un nombre de archivo que contenga <code class="docutils literal notranslate"><span class="pre">$</span></code>. Para que esto funcione, el <code class="docutils literal notranslate"><span class="pre">/:</span></code> debe estar al principio del contenido del minibúfer. (También puede duplicar cada <code class="docutils literal notranslate"><span class="pre">$</span></code>; consulte <strong>Nombres de Archivo con $</strong></p>
<p>Citar con <code class="docutils literal notranslate"><span class="pre">/:</span></code> es también una forma de introducir en el minibúfer un nombre de archivo que contenga <code class="docutils literal notranslate"><span class="pre">$</span></code>. Para que esto funcione, el <code class="docutils literal notranslate"><span class="pre">/:</span></code> debe estar al principio del contenido del minibúfer. (También puede duplicar cada <code class="docutils literal notranslate"><span class="pre">$</span></code>; consulte <em>Nombres de Archivo con $</em> en ref:<cite>19.1</cite></p>
<p>También puede entrecomillar caracteres comodín con <code class="docutils literal notranslate"><span class="pre">/:</span></code>, para visitas. Por ejemplo, <code class="docutils literal notranslate"><span class="pre">/:/tmp/foo*bar</span></code> visita el archivo <code class="docutils literal notranslate"><span class="pre">/tmp/foo*bar</span></code>.</p>
<p>Otro método para obtener el mismo resultado es introducir <code class="docutils literal notranslate"><span class="pre">/tmp/foo[*]bar</span></code>, que es una especificación comodín que sólo coincide con <code class="docutils literal notranslate"><span class="pre">/tmp/foo*bar</span></code>. Sin embargo, en muchos casos no es necesario entrecomillar los caracteres comodín porque incluso sin entrecomillar dan el resultado correcto. Por ejemplo, si el único nombre de archivo de /tmp que empieza por <code class="docutils literal notranslate"><span class="pre">foo</span></code> y termina por <code class="docutils literal notranslate"><span class="pre">bar</span></code> es <code class="docutils literal notranslate"><span class="pre">foo*bar</span></code>, al especificar <code class="docutils literal notranslate"><span class="pre">/tmp/foo*bar</span></code> sólo se visitará <code class="docutils literal notranslate"><span class="pre">/tmp/foo*bar</span></code>.</p>
</section>
@ -858,8 +858,10 @@ bien en este directorio (sólo le dará un nuevo nombre al archivo, pero no borr
<blockquote>
<div><p>Añade cada nombre de archivo del <em>directorio</em> y todos sus subdirectorios anidados a la caché de nombres de archivo, usando <code class="docutils literal notranslate"><span class="pre">locate</span></code> para encontrarlos a todos.</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">file-cache-add-directory</span></code> <em>variable</em> <kbd class="kbd docutils literal notranslate">RETURN</kbd>
| (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">file-cache-add-directory-list</span> <span class="pre">RET</span></code> <em>variable</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">file-cache-add-directory</span></code> <em>variable</em> <kbd class="kbd docutils literal notranslate">RETURN</kbd></div>
<div class="line">(<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">file-cache-add-directory-list</span> <span class="pre">RET</span></code> <em>variable</em> <code class="docutils literal notranslate"><span class="pre">RET</span></code>)</div>
</div>
<blockquote>
<div><p>Añade cada nombre de archivo de cada <em>directorio</em> enumerado en variable a la caché de nombres de archivo. <em>variable</em> ser una variable Lisp cuyo valor sea una lista de directorios,
como <code class="docutils literal notranslate"><span class="pre">load-path</span></code>.</p>
@ -877,10 +879,10 @@ como <code class="docutils literal notranslate"><span class="pre">load-path</spa
<h2>19.18 Funciones Útiles para Encontrar Archivos<a class="headerlink" href="#funciones-utiles-para-encontrar-archivos" title="Link to this heading"></a></h2>
<p>En esta sección, presentamos algunas facilidades convenientes para encontrar archivos abiertos recientemente, leyendo nombres de archivos desde un búfer.</p>
<p>Si habilita el modo recentf, con <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">recentf-mode</span></code>, Emacs mantiene una lista de archivos abiertos recientemente. Para abrir un archivo de esta lista, use el comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">recentf-open</span></code>. Cuando este modo está activado, el menú <code class="docutils literal notranslate"><span class="pre">File</span></code> (Archivo) incluirá un submenú que puede usar para visitar uno de estos archivos. <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">recentf-save-list</span></code> guarda la lista <code class="docutils literal notranslate"><span class="pre">recentf</span></code> actual en un archivo, y <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">recentf-edit-list</span></code> la edita.</p>
<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>
<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 <a class="reference internal" href="47_FuncHiperv-Y-NavWeb.html#id3"><span class="std std-ref">47.5 Encontrar Archivos y URLs en un Punto</span></a>), 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 <a class="reference internal" href="09_ElMinibufer.html#id8"><span class="std std-ref">9.4.5 Opciones de Completado</span></a>.</p>
</section>
<section id="visualizacion-de-archivos-de-imagen">
<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>
<span id="id27"></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>
@ -946,15 +948,15 @@ Con el argumento prefijo, el comando pregunta por el color a usar.</p>
</pre></div>
</div>
<p>La función toma dos parámetros, donde el primero es un sufijo de nombre de archivo, y el segundo es una función para hacer la «conversión». Esta función toma dos parámetros, donde el primero es el nombre del archivo o una cadena con los datos, y el segundo dice si el primer parámetro son datos o no, y debe dar salida a una imagen en formato <code class="docutils literal notranslate"><span class="pre">image-convert-to-format</span></code> (<code class="docutils literal notranslate"><span class="pre">image-convert-to-format</span></code>) en el búfer actual.</p>
<p>El paquete Image-Dired también puede usarse para ver imágenes como miniaturas. Vea <strong>Visualización de Miniaturas de Imágenes en Dired</strong>.</p>
<p>El paquete Image-Dired también puede usarse para ver imágenes como miniaturas. Vea <a class="reference internal" href="31_DiredEditDirect.html#id12"><span class="std std-ref">31.19 Ver Miniaturas de Imágenes en Dired</span></a>.</p>
</section>
<section id="conjunto-de-archivos">
<h2>19.20 Conjunto de Archivos<a class="headerlink" href="#conjunto-de-archivos" title="Link to this heading"></a></h2>
<p>Si edita regularmente un determinado grupo de ficheros, puede definirlos como un <em>conjunto de archivos</em> (fileset). Esto le permite realizar ciertas operaciones, como visitar, <code class="docutils literal notranslate"><span class="pre">query-replace</span></code> (consultar-reemplazar), y comandos shell en todos ellos a la vez. Para usar conjuntos de archivos, primero debe añadir la expresión (<code class="docutils literal notranslate"><span class="pre">filesets-init</span></code>) a su archivo de inicio (vea <strong>El Archivo de Inicialización de Emacs</strong>). Esto añade un submenú <code class="docutils literal notranslate"><span class="pre">Filesets</span></code> al menú <code class="docutils literal notranslate"><span class="pre">File</span></code> de la barra de menú.</p>
<p>Si edita regularmente un determinado grupo de ficheros, puede definirlos como un <em>conjunto de archivos</em> (fileset). Esto le permite realizar ciertas operaciones, como visitar, <code class="docutils literal notranslate"><span class="pre">query-replace</span></code> (consultar-reemplazar), y comandos shell en todos ellos a la vez. Para usar conjuntos de archivos, primero debe añadir la expresión (<code class="docutils literal notranslate"><span class="pre">filesets-init</span></code>) a su archivo de inicio (vea <a class="reference internal" href="50_Personlzc.html#id25"><span class="std std-ref">50.4. El Archivo de Inicialización de Emacs</span></a>). Esto añade un submenú <code class="docutils literal notranslate"><span class="pre">Filesets</span></code> al menú <code class="docutils literal notranslate"><span class="pre">File</span></code> de la barra de menú.</p>
<p>La forma más sencilla de definir un conjunt de archivos es añadiéndole archivos de uno en uno. Para añadir un archivo a este conjunto de archivos, visite el archivo y 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">filesets-add-buffer</span></code> <kbd class="kbd docutils literal notranslate">RETURN</kbd> <em>nombre</em> <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">filesets-add-buffer</span> <span class="pre">RET</span></code> <em>nombre</em> <code class="docutils literal notranslate"><span class="pre">RET</span></code>). Si no hay ningún nombre de fileset, se crea uno nuevo, que inicialmente sólo contiene el archivo actual. El comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">filesets-remove-buffer</span></code> elimina el archivo actual de un conjunto de ficheros.</p>
<p>También puede editar la lista de conjuntos de archivos directamente, con <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">filesets-edit</span></code> (o eligiendo <code class="docutils literal notranslate"><span class="pre">Edit</span> <span class="pre">Filesets</span></code> (Editar <strong>Conjuntos de Archivos</strong>) en el menú <code class="docutils literal notranslate"><span class="pre">Filesets</span></code> (Conjuntos de Archivos)). La edición se realiza en un búfer de personalización (véase <strong>Interfaz de Personalización Fácil</strong>). Normalmente, un conjunto de archivos es una simple lista de archivos, pero también puede definir un conjunto de archivos como una expresión regular que coincida con nombres de archivo. Algunos ejemplos de estos conjuntos de ficheros más complicados se muestran en el búfer Personalizar. Recuerde seleccionar <code class="docutils literal notranslate"><span class="pre">Save</span> <span class="pre">for</span> <span class="pre">future</span> <span class="pre">sessions</span></code> (Guardar para futuras sesiones) si quiere usar los mismos conjuntos de archivos en futuras sesiones de Emacs.</p>
<p>También puede editar la lista de conjuntos de archivos directamente, con <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">filesets-edit</span></code> (o eligiendo <code class="docutils literal notranslate"><span class="pre">Edit</span> <span class="pre">Filesets</span></code> (Editar Conjunto de Archivos) en el menú <code class="docutils literal notranslate"><span class="pre">Filesets</span></code> (Conjuntos de Archivos)). La edición se realiza en un búfer de personalización (véase <a class="reference internal" href="50_Personlzc.html#id2"><span class="std std-ref">50.1 Interfaz de Personalización Fácil</span></a>). Normalmente, un conjunto de archivos es una simple lista de archivos, pero también puede definir un conjunto de archivos como una expresión regular que coincida con nombres de archivo. Algunos ejemplos de estos conjuntos de ficheros más complicados se muestran en el búfer Personalizar. Recuerde seleccionar <code class="docutils literal notranslate"><span class="pre">Save</span> <span class="pre">for</span> <span class="pre">future</span> <span class="pre">sessions</span></code> (Guardar para futuras sesiones) si quiere usar los mismos conjuntos de archivos en futuras sesiones de Emacs.</p>
<p>Puede usar el comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">filesets-open</span></code> para visitar todos los archivos de un fileset, y <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">filesets-close</span></code> para cerrarlos. Use <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">filesets-run-cmd</span></code> para ejecutar un comando de shell en todos los archivos de un fileset. Estos comandos también están disponibles en el menú <code class="docutils literal notranslate"><span class="pre">Filesets</span></code>, donde cada conjunto de archivos existente está representado por un submenú.</p>
<p><strong>Véase Control de Versiones</strong>, para un concepto diferente de los conjuntos de archivos: grupos de archivos organizados para operaciones de control de versiones. Los conjuntos de archivos de este tipo no tienen nombre, y no permanecen a través de las sesiones de Emacs.</p>
<p><a class="reference internal" href="29_ManyProgrsGrands.html#id2"><span class="std std-ref">29.1 Control de Versiones</span></a>, para un concepto diferente de los conjuntos de archivos: grupos de archivos organizados para operaciones de control de versiones. Los conjuntos de archivos de este tipo no tienen nombre, y no permanecen a través de las sesiones de Emacs.</p>
</section>
</section>

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.56
Traducción Revisón: 1.59
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -151,11 +151,11 @@
<section id="uso-de-varios-buferes">
<span id="id1"></span><h1>20 Uso de Varios Búferes<a class="headerlink" href="#uso-de-varios-buferes" title="Link to this heading"></a></h1>
<p>El texto que está editando en Emacs reside en un objeto llamado <em>búfer</em>. Cada vez que visita un archivo, se usa un búfer para guardar el texto del archivo. Cada vez que invoca Dired, se usa un búfer para guardar el listado de directorios. Si envía un mensaje con <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">m</span></code>, se usa un búfer para guardar el texto del mensaje. Cuando se solicita la documentación de un comando, ésta aparece en un búfer llamado <code class="docutils literal notranslate"><span class="pre">*Help*</span></code> (Ayuda).</p>
<p>Los búferes existen mientras están siendo usados, y son borrados («matados») cuando ya no son necesarios, ya sea por el Usuario (ver <strong>Matando Búferes</strong>) o por Emacs (por ejemplo, cuando se sale del programa, ver <strong>Saliendo de Emacs</strong>).</p>
<p>Cada búfer tiene un nombre único, que puede ser de cualquier longitud. Cuando un búfer se muestra en una ventana, su nombre se muestra en la línea de modo (ver <strong>La Línea de Modo</strong>). La distinción entre mayúsculas y minúsculas es importante en los nombres de los búferes. La mayoría de los búferes se crean visitando archivos, y sus nombres se derivan de los nombres de los archivos; sin embargo, también se puede crear un búfer vacío con cualquier nombre que se desee. Un Emacs recién iniciado tiene varios búferes, incluyendo uno llamado <code class="docutils literal notranslate"><span class="pre">*scratch*</span></code>, que puede usarse para evaluar expresiones Lisp y no está asociado a ningún archivo (ver <strong>Búferes de Interacción Lisp</strong>).</p>
<p>En cualquier momento, sólo se <em>selecciona</em> un búfer, al que llamamos <em>búfer actual</em>. A veces decimos que un comando opera sobre «el búfer»; esto significa realmente que opera sobre el búfer actual. Cuando sólo hay una ventana Emacs, el búfer mostrado en esa ventana es el actual. Cuando hay múltiples ventanas, el búfer mostrado en la <em>ventana seleccionada</em> es el actual. Ver <strong>Ventanas Múltiples</strong>.</p>
<p>El contenido de un búfer consiste en una serie de caracteres, cada uno de los cuales lleva opcionalmente un conjunto de propiedades de texto (ver <strong>Propiedades de Texto</strong>) que pueden especificar más información sobre ese carácter.</p>
<p>Aparte de su contenido textual, cada búfer registra varios datos, como qué archivo está visitando (si lo hay), si está modificado y qué modos mayor y menor están en vigor (véase <strong>Modos Mayor y Menor</strong>). Estos datos se almacenan en <em>variables locales del búfer</em>, variables que pueden tener un valor diferente en cada búfer. Véase <strong>Variables Locales</strong>.</p>
<p>Los búferes existen mientras están siendo usados, y son borrados («matados») cuando ya no son necesarios, ya sea por el Usuario (ver <a class="reference internal" href="#id5"><span class="std std-ref">20.4 Matar Búferes</span></a>) o por Emacs (por ejemplo, cuando se sale del programa, ver <a class="reference internal" href="../07_SalirDeEmacs.html#id1"><span class="std std-ref">7 Cómo Salir de Emacs</span></a>).</p>
<p>Cada búfer tiene un nombre único, que puede ser de cualquier longitud. Cuando un búfer se muestra en una ventana, su nombre se muestra en la línea de modo (ver <a class="reference internal" href="../01_OrgPant.html#id6"><span class="std std-ref">1.3 La línea de Modo</span></a>). La distinción entre mayúsculas y minúsculas es importante en los nombres de los búferes. La mayoría de los búferes se crean visitando archivos, y sus nombres se derivan de los nombres de los archivos; sin embargo, también se puede crear un búfer vacío con cualquier nombre que se desee. Un Emacs recién iniciado tiene varios búferes, incluyendo uno llamado <code class="docutils literal notranslate"><span class="pre">*scratch*</span></code>, que puede usarse para evaluar expresiones Lisp y no está asociado a ningún archivo (ver <a class="reference internal" href="28_CompProbProg.html#id11"><span class="std std-ref">28.10. Búferes de Interacción Lisp</span></a>).</p>
<p>En cualquier momento, sólo se <em>selecciona</em> un búfer, al que llamamos <em>búfer actual</em>. A veces decimos que un comando opera sobre «el búfer»; esto significa realmente que opera sobre el búfer actual. Cuando sólo hay una ventana Emacs, el búfer mostrado en esa ventana es el actual. Cuando hay múltiples ventanas, el búfer mostrado en la <em>ventana seleccionada</em> es el actual. Ver <a class="reference internal" href="21_VariasVentanas.html#id1"><span class="std std-ref">21 Varias Ventanas</span></a>.</p>
<p>El contenido de un búfer consiste en una serie de caracteres, cada uno de los cuales lleva opcionalmente un conjunto de propiedades de texto (ver <a class="reference internal" href="23_SoporteJuegoCaracIntern.html#id2"><span class="std std-ref">23.1 Introducción a los Juegos de Caracteres Internacionales</span></a>) que pueden especificar más información sobre ese carácter.</p>
<p>Aparte de su contenido textual, cada búfer registra varios datos, como qué archivo está visitando (si lo hay), si está modificado y qué modos mayor y menor están en vigor (véase <a class="reference internal" href="24_ModosMayores-Y-Menores.html#id1"><span class="std std-ref">24 Modos Mayores y Menores</span></a>). Estos datos se almacenan en <em>variables locales del búfer</em>, variables que pueden tener un valor diferente en cada búfer. Véase <a class="reference internal" href="50_Personlzc.html#id8"><span class="std std-ref">50.2.3 Variables Locales</span></a>.</p>
<p>El tamaño de un búfer no puede ser mayor que un máximo, que está definido por la posición más grande del búfer representable por los enteros de Emacs. Esto se debe a que Emacs rastrea las posiciones del búfer usando ese tipo de datos. Para máquinas típicas de 64 bits, este tamaño máximo del búfer es <em>2^{61} - 2</em> bytes, o unos 2 EiB. Para máquinas típicas de 32 bits, el máximo suele ser <em>2^{29} - 2</em> bytes, o unos 512 MiB. El tamaño de los búferes también está limitado por la cantidad de memoria del sistema.</p>
<section id="creacion-y-seleccion-de-buferes">
<span id="id2"></span><h2>20.1 Creación y Selección de Búferes<a class="headerlink" href="#creacion-y-seleccion-de-buferes" title="Link to this heading"></a></h2>
@ -169,7 +169,7 @@
</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">5</kbd><kbd class="kbd docutils literal notranslate">b</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">5</span> <span class="pre">b</span></code> <em>búfer</em> <code class="docutils literal notranslate"><span class="pre">RET</span></code>)</p>
<blockquote>
<div><p>Similar, pero selecciona <em>búfer</em> en una trama separada (<code class="docutils literal notranslate"><span class="pre">switch-to-buffer-other-frame</span></code>).</p>
<div><p>Similar, pero selecciona <em>búfer</em> en un marco separado (<code class="docutils literal notranslate"><span class="pre">switch-to-buffer-other-frame</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"></kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">IZQUIERDA</span></code>)</p>
<blockquote>
@ -187,24 +187,24 @@
<div><p>Lee un número <em>n</em> y se desplaza a la línea <em>n</em> en el último búfer seleccionado distinto del búfer actual, en otra ventana.</p>
</div></blockquote>
<p>El comando <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">b</span></code> (<code class="docutils literal notranslate"><span class="pre">switch-to-buffer</span></code>) lee el nombre de un búfer usando el minibúfer. A continuación, actualiza ese búfer y lo muestra en la ventana seleccionada en ese momento. Una entrada vacía especifica el búfer que fue actual más recientemente entre los que no se muestran ahora en ninguna ventana.</p>
<p>Mientras escribe el nombre del búfer, puede usar los comandos habituales de completado e historial (véase <strong>El Minibúfer</strong>). Tenga en cuenta que <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">b</span></code>, y los comandos relacionados, usan <em>completado permisivo con confirmación</em> para el completado del minibúfer: si teclea <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">RET</span></code>) cuando el texto del minibúfer nombra un búfer 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 enviar ese nombre de búfer. Vea <strong>Salida de Completado</strong>, para más detalles. Para otras opciones y características de completado, vea <strong>Opciones de Completado</strong>.</p>
<p>Si especifica un búfer que no existe, <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">b</span></code> crea un nuevo búfer vacío que no está visitando ningún archivo, y lo selecciona para editarlo. El valor por defecto de la variable <code class="docutils literal notranslate"><span class="pre">major-mode</span></code> (modo-mayor) determina el modo mayor del nuevo búfer; el valor por defecto es el modo Fundamental. Véase <strong>Modos Principales</strong>. Una razón para crear un nuevo búfer es usarlo para hacer notas temporales. Si intenta guardarlo, Emacs le preguntará por el nombre de archivo a usar, y el modo principal del búfer se restablecerá teniendo en cuenta ese nombre de archivo (vea <strong>Elegir Modos de Archivo</strong>).</p>
<p>Mientras escribe el nombre del búfer, puede usar los comandos habituales de completado e historial (véase <a class="reference internal" href="09_ElMinibufer.html#id1"><span class="std std-ref">9 El Minibúfer</span></a>). Tenga en cuenta que <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">b</span></code>, y los comandos relacionados, usan <em>completado permisivo con confirmación</em> para el completado del minibúfer: si teclea <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">RET</span></code>) cuando el texto del minibúfer nombra un búfer 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 enviar ese nombre de búfer. Vea <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. Para otras opciones y características de completado, vea <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 especifica un búfer que no existe, <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">b</span></code> crea un nuevo búfer vacío que no está visitando ningún archivo, y lo selecciona para editarlo. El valor por defecto de la variable <code class="docutils literal notranslate"><span class="pre">major-mode</span></code> (modo-mayor) determina el modo mayor del nuevo búfer; el valor por defecto es el modo Fundamental. Véase <a class="reference internal" href="24_ModosMayores-Y-Menores.html#id2"><span class="std std-ref">24.1 Modos Mayores (o Principales)</span></a>. Una razón para crear un nuevo búfer es usarlo para hacer notas temporales. Si intenta guardarlo, Emacs le preguntará por el nombre de archivo a usar, y el modo principal del búfer se restablecerá teniendo en cuenta ese nombre de archivo (vea <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>Para cambiar convenientemente entre varios búferes, use los comandos <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">IZQUIERDA</span></code> y <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">DERECHA</span></code>. <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">IZQUIERDA</span></code> (<code class="docutils literal notranslate"><span class="pre">previous-buffer</span></code>) selecciona el búfer anterior (siguiendo el orden de selección más reciente en el marco actual), mientras que <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">DERECHA</span></code> (<code class="docutils literal notranslate"><span class="pre">next-buffer</span></code>) se desplaza por los búferes en sentido inverso. Ambos comandos admiten un argumento de prefijo numérico que sirve como recuento de repeticiones.</p>
<p>Para seleccionar un búfer en una ventana distinta de la actual (véase <strong>Ventanas Múltiples</strong>), escriba <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">b</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">4</span> <span class="pre">b</span></code>, <code class="docutils literal notranslate"><span class="pre">switch-to-buffer-other-window</span></code>). Esto solicita un nombre de búfer usando el minibúfer, muestra ese búfer en otra ventana y selecciona esa ventana.</p>
<p>De forma similar, <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">b</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">5</span> <span class="pre">b</span></code>, <code class="docutils literal notranslate"><span class="pre">switch-to-buffer-other-frame</span></code>) pide un nombre de búfer, muestra ese búfer en otro marco (ver <strong>Marcos y Pantallas Gráficas</strong>), y selecciona ese marco. Si el búfer ya está siendo mostrado en una ventana en otro marco, Emacs selecciona esa ventana y marco en lugar de crear un nuevo marco.</p>
<p>Ver <strong>Mostrar un Búfer en una Ventana</strong>, para saber cómo los comandos <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">4</span> <span class="pre">b</span></code> y <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">5</span> <span class="pre">b</span></code> obtienen la ventana y/o el marco en el que se mostrará.</p>
<p>Además, <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-f</span></code>, y cualquier otro comando para visitar un archivo, también puede usarse para cambiar a un búfer de visita de archivo existente. Véase <strong>Visitar archivos</strong>.</p>
<p><code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">M-g</span> <span class="pre">M-g</span></code>, es decir <code class="docutils literal notranslate"><span class="pre">goto-line</span></code> con un argumento de prefijo simple, lee un número <em>n</em> usando el minibúfer, selecciona el último búfer seleccionado que no sea el búfer actual en otra ventana, y luego mueve punto al principio de la línea número <em>n</em> en ese búfer. Esto es útil principalmente en un búfer que hace referencia a números de línea en otro búfer: si punto está sobre o justo después de un número, <code class="docutils literal notranslate"><span class="pre">goto-line</span></code> usa ese número como el predeterminado para <em>n</em>. Tenga en cuenta que los argumentos de prefijo distintos de sólo <code class="docutils literal notranslate"><span class="pre">C-u</span></code> se comportan de forma diferente. <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">u</kbd> <kbd class="kbd docutils literal notranslate">4</kbd> <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">g</kbd> <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">g</kbd> (<code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">4</span> <span class="pre">M-g</span> <span class="pre">M-g</span></code>) va a la línea 4 en el búfer actual, sin leer un número del minibúfer. ( Recuerde que <code class="docutils literal notranslate"><span class="pre">M-g</span> <span class="pre">M-g</span></code> sin argumento prefijo lee un número <em>n</em> y luego se mueve a la línea número <em>n</em> en el búfer actual. Ver <strong>Cambiar la Localización del Punto</strong>).</p>
<p>Para seleccionar un búfer en una ventana distinta de la actual (véase <a class="reference internal" href="21_VariasVentanas.html#id1"><span class="std std-ref">21 Varias Ventanas</span></a>), escriba <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">b</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">4</span> <span class="pre">b</span></code>, <code class="docutils literal notranslate"><span class="pre">switch-to-buffer-other-window</span></code>). Esto solicita un nombre de búfer usando el minibúfer, muestra ese búfer en otra ventana y selecciona esa ventana.</p>
<p>De forma similar, <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">b</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">5</span> <span class="pre">b</span></code>, <code class="docutils literal notranslate"><span class="pre">switch-to-buffer-other-frame</span></code>) pide un nombre de búfer, muestra ese búfer en otro marco (ver <a class="reference internal" href="22_MarcosPantallasGraf.html#id1"><span class="std std-ref">22 Marcos y Pantallas Gráficas</span></a>), y selecciona ese marco. Si el búfer ya está siendo mostrado en una ventana en otro marco, Emacs selecciona esa ventana y marco en lugar de crear un nuevo marco.</p>
<p>Ver <a class="reference internal" href="21_VariasVentanas.html#id5"><span class="std std-ref">21.6. Mostrar un Búfer en una Ventana</span></a>, para saber cómo los comandos <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">4</span> <span class="pre">b</span></code> y <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">5</span> <span class="pre">b</span></code> obtienen la ventana y/o el marco en el que se mostrará.</p>
<p>Además, <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-f</span></code>, y cualquier otro comando para visitar un archivo, también puede usarse para cambiar a un búfer de visita de archivo existente. Véase <a class="reference internal" href="19_ManejoArchivos.html#id3"><span class="std std-ref">19.2 Visitar Archivos</span></a>.</p>
<p><code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">M-g</span> <span class="pre">M-g</span></code>, es decir <code class="docutils literal notranslate"><span class="pre">goto-line</span></code> con un argumento de prefijo simple, lee un número <em>n</em> usando el minibúfer, selecciona el último búfer seleccionado que no sea el búfer actual en otra ventana, y luego mueve punto al principio de la línea número <em>n</em> en ese búfer. Esto es útil principalmente en un búfer que hace referencia a números de línea en otro búfer: si punto está sobre o justo después de un número, <code class="docutils literal notranslate"><span class="pre">goto-line</span></code> usa ese número como el predeterminado para <em>n</em>. Tenga en cuenta que los argumentos de prefijo distintos de sólo <code class="docutils literal notranslate"><span class="pre">C-u</span></code> se comportan de forma diferente. <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">u</kbd> <kbd class="kbd docutils literal notranslate">4</kbd> <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">g</kbd> <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">g</kbd> (<code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">4</span> <span class="pre">M-g</span> <span class="pre">M-g</span></code>) va a la línea 4 en el búfer actual, sin leer un número del minibúfer. ( Recuerde que <code class="docutils literal notranslate"><span class="pre">M-g</span> <span class="pre">M-g</span></code> sin argumento prefijo lee un número <em>n</em> y luego se mueve a la línea número <em>n</em> en el búfer actual. Ver <a class="reference internal" href="08_ComBasicEdic.html#id3"><span class="std std-ref">8.2 Cambiar la Ubicación del Punto</span></a>).</p>
<p>Emacs usa nombres de búfer que empiezan con un espacio para propósitos internos. Trata estos búferes de forma especial en aspectos menores, por ejemplo, por defecto no registran información de deshacer. Es mejor evitar usar tales nombres de búfer.</p>
</section>
<section id="listado-de-buferes-existentes">
<h2>20.2 Listado de Búferes Existentes<a class="headerlink" href="#listado-de-buferes-existentes" title="Link to this heading"></a></h2>
<span id="id3"></span><h2>20.2 Listado de Búferes Existentes<a class="headerlink" href="#listado-de-buferes-existentes" 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">b</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-b</span></code>)</p>
<blockquote>
<div><p>Lista los búferes existentes (<code class="docutils literal notranslate"><span class="pre">list-buffers</span></code>).</p>
</div></blockquote>
<p>Para ver una lista de los búferes existentes, 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">b</kbd> <code class="docutils literal notranslate"><span class="pre">(C-x</span> <span class="pre">C-b</span></code>). Aparecerá un menú de búferes en un búfer llamado <code class="docutils literal notranslate"><span class="pre">*Buffer</span> <span class="pre">List*</span></code> (Lista de búferes). Cada línea de la lista muestra el nombre de un búfer, su tamaño, el modo principal y el archivo visitado. Los búferes se listan en el orden en que fueron actualizados; los búferes que fueron actualizados más recientemente aparecen en primer lugar. Esta sección describe cómo se muestra la lista de búferes y cómo interpretar las distintas indicaciones de la lista; véase <strong>Operar en Varios Búferes</strong>, para una descripción del modo especial en el búfer <code class="docutils literal notranslate"><span class="pre">*Buffer</span> <span class="pre">List*</span></code> y los comandos disponibles en él.</p>
<p><code class="docutils literal notranslate"><span class="pre">.</span></code> (punto) en el primer campo de una línea indica que el búfer es actual. <code class="docutils literal notranslate"><span class="pre">%</span></code> indica que el búfer es de sólo lectura. <code class="docutils literal notranslate"><span class="pre">*</span></code> indica que el búfer ha sido modificado. Si se modifican varios búferes, puede ser el momento de guardar algunos con <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">s</span></code> (ver <strong>Comandos para Guardar Archivos</strong>). He aquí un ejemplo de lista de búferes:</p>
<p>Para ver una lista de los búferes existentes, 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">b</kbd> <code class="docutils literal notranslate"><span class="pre">(C-x</span> <span class="pre">C-b</span></code>). Aparecerá un menú de búferes en un búfer llamado <code class="docutils literal notranslate"><span class="pre">*Buffer</span> <span class="pre">List*</span></code> (Lista de búferes). Cada línea de la lista muestra el nombre de un búfer, su tamaño, el modo principal y el archivo visitado. Los búferes se listan en el orden en que fueron actualizados; los búferes que fueron actualizados más recientemente aparecen en primer lugar. Esta sección describe cómo se muestra la lista de búferes y cómo interpretar las distintas indicaciones de la lista; véase <a class="reference internal" href="#id6"><span class="std std-ref">20.5 Trabajar con Varios Búferes</span></a>, para una descripción del modo especial en el búfer <code class="docutils literal notranslate"><span class="pre">*Buffer</span> <span class="pre">List*</span></code> y los comandos disponibles en él.</p>
<p><code class="docutils literal notranslate"><span class="pre">.</span></code> (punto) en el primer campo de una línea indica que el búfer es actual. <code class="docutils literal notranslate"><span class="pre">%</span></code> indica que el búfer es de sólo lectura. <code class="docutils literal notranslate"><span class="pre">*</span></code> indica que el búfer ha sido modificado. Si se modifican varios búferes, puede ser el momento de guardar algunos con <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">s</span></code> (ver <a class="reference internal" href="19_ManejoArchivos.html#id5"><span class="std std-ref">19.3.1 Comandos para Guardar Archivos</span></a>). He aquí un ejemplo de lista de búferes:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">CRM</span> <span class="n">Buffer</span> <span class="n">Size</span> <span class="n">Mode</span> <span class="n">File</span>
<span class="o">.</span> <span class="o">*</span> <span class="o">.</span><span class="n">emacs</span> <span class="mi">3294</span> <span class="n">Emacs</span><span class="o">-</span><span class="n">Lisp</span> <span class="o">~/.</span><span class="n">emacs</span>
<span class="o">%</span> <span class="o">*</span><span class="n">Help</span><span class="o">*</span> <span class="mi">101</span> <span class="n">Help</span>
@ -217,11 +217,11 @@
<span class="o">*</span> <span class="o">*</span><span class="n">Messages</span><span class="o">*</span> <span class="mi">1554</span> <span class="n">Messages</span>
</pre></div>
</div>
<p>El búfer <code class="docutils literal notranslate"><span class="pre">*Help*</span></code> fue hecho por una petición de ayuda (ver <strong>Ayuda</strong>); no está visitando ningún archivo. El búfer <code class="docutils literal notranslate"><span class="pre">src</span></code> fue creado por Dired en el directorio <code class="docutils literal notranslate"><span class="pre">~/cvs/emacs/src/</span></code>. Puede listar sólo los búferes que están visitando archivos dando al comando un argumento prefijo, como en <code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">C-x</span> <span class="pre">C-b</span></code>.</p>
<p>El búfer <code class="docutils literal notranslate"><span class="pre">*Help*</span></code> fue hecho por una petición de ayuda (ver <a class="reference internal" href="11_Ayuda.html#id1"><span class="std std-ref">11 Ayuda</span></a>); no está visitando ningún archivo. El búfer <code class="docutils literal notranslate"><span class="pre">src</span></code> fue creado por Dired en el directorio <code class="docutils literal notranslate"><span class="pre">~/cvs/emacs/src/</span></code>. Puede listar sólo los búferes que están visitando archivos dando al comando un argumento prefijo, como en <code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">C-x</span> <span class="pre">C-b</span></code>.</p>
<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">
<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>
<span id="id4"></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>
@ -230,22 +230,22 @@
<blockquote>
<div><p>Modifica el <em>nombre</em> del búfer actual.</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">u</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">x</span> <span class="pre">u</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">x</kbd> <kbd class="kbd docutils literal notranslate">u</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">x</span> <span class="pre">u</span></code>)</p>
<blockquote>
<div><p>Renombra el búfer actual añadiendo <em>&lt;número&gt;</em> al final.</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">view-buffer</span></code> <kbd class="kbd docutils literal notranslate">RETURN</kbd> <em>búfer</em> <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">view-buffer</span> <span class="pre">RET</span></code> <em>búfer</em> <code class="docutils literal notranslate"><span class="pre">RET</span></code>)</p>
<blockquote>
<div><p>Se desplaza por el búfer. Véase <strong>Modo de Visualización</strong>.</p>
<div><p>Se desplaza por el búfer. Véase <a class="reference internal" href="15_ControlDisplay.html#id6"><span class="std std-ref">15.6 Modo Vista</span></a>.</p>
</div></blockquote>
<p>Un búfer puede ser de <em>sólo lectura</em>, lo que significa que los comandos para insertar o borrar su texto no están permitidos. (Sin embargo, otros comandos, como <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">RET</span> <span class="pre">f</span></code>, pueden marcarlo como modificado, véase <strong>Especificar un Sistema de Codificación para el Texto de un Archivo</strong>). La línea de modo indica búferes de sólo lectura con <code class="docutils literal notranslate"><span class="pre">%%</span></code> o <code class="docutils literal notranslate"><span class="pre">%*</span></code> cerca del margen izquierdo. Vea <strong>La Línea de Modo</strong>. Los búferes de sólo lectura son normalmente hechos por subsistemas como Dired y Rmail que tienen comandos especiales para operar sobre el texto. Visitar un archivo cuyo control de acceso dice que no se puede escribir también hace que el búfer sea de sólo lectura.</p>
<p>El comando <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>) hace que un búfer de sólo lectura sea escribible, y hace que un búfer escribible sea de sólo lectura. Esto funciona estableciendo la variable <code class="docutils literal notranslate"><span class="pre">buffer-read-only</span></code>, que tiene un valor local en cada búfer y hace que el búfer sea de sólo lectura si su valor no es nulo. Si se cambia la opción <code class="docutils literal notranslate"><span class="pre">view-read-only</span></code> a un valor no nulo, al hacer que el búfer sea de sólo lectura con <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-q</span></code> también se activa el modo Vista en el búfer (véase <strong>Modo Vista</strong>).</p>
<p>Un búfer puede ser de <em>sólo lectura</em>, lo que significa que los comandos para insertar o borrar su texto no están permitidos. (Sin embargo, otros comandos, como <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">RET</span> <span class="pre">f</span></code>, pueden marcarlo como modificado, véase <a class="reference internal" href="23_SoporteJuegoCaracIntern.html#id11"><span class="std std-ref">23.9 Especificar un Sistema de Codificación para el Texto de un Archivo</span></a>). La línea de modo indica búferes de sólo lectura con <code class="docutils literal notranslate"><span class="pre">%%</span></code> o <code class="docutils literal notranslate"><span class="pre">%*</span></code> cerca del margen izquierdo. Vea <a class="reference internal" href="../01_OrgPant.html#id6"><span class="std std-ref">1.3 La línea de Modo</span></a>. Los búferes de sólo lectura son normalmente hechos por subsistemas como Dired y Rmail que tienen comandos especiales para operar sobre el texto. Visitar un archivo cuyo control de acceso dice que no se puede escribir también hace que el búfer sea de sólo lectura.</p>
<p>El comando <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>) hace que un búfer de sólo lectura sea escribible, y hace que un búfer escribible sea de sólo lectura. Esto funciona estableciendo la variable <code class="docutils literal notranslate"><span class="pre">buffer-read-only</span></code>, que tiene un valor local en cada búfer y hace que el búfer sea de sólo lectura si su valor no es nulo. Si se cambia la opción <code class="docutils literal notranslate"><span class="pre">view-read-only</span></code> a un valor no nulo, al hacer que el búfer sea de sólo lectura con <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-q</span></code> también se activa el modo Vista en el búfer (véase <a class="reference internal" href="15_ControlDisplay.html#id6"><span class="std std-ref">15.6 Modo Vista</span></a>).</p>
<p><code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">x</span> <span class="pre">r</span></code> (<code class="docutils literal notranslate"><span class="pre">rename-buffer</span></code> cambia el nombre del búfer actual. Se especifica el nuevo nombre como argumento del minibúfer; no hay un valor por defecto. Si especifica un nombre que está siendo usado por algún otro búfer, se produce un error y no se realiza el renombrado.</p>
<p><code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">x</span> <span class="pre">u</span></code> (<code class="docutils literal notranslate"><span class="pre">rename-uniquely</span></code>) renombra el búfer actual a un nombre similar con un sufijo numérico añadido para hacerlo diferente y único. Este comando no necesita argumento. Es útil para crear múltiples búferes de shell: si renombra el búfer <code class="docutils literal notranslate"><span class="pre">*shell*</span></code>, y luego hace <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">shell</span></code> de nuevo, se crea un nuevo búfer de shell llamado <code class="docutils literal notranslate"><span class="pre">*shell*</span></code>; mientras tanto, el antiguo búfer de shell sigue existiendo con su nuevo nombre. Este método también es bueno para búferes de correo, búferes de compilación, y la mayoría de las características de Emacs que crean búferes especiales con nombres particulares. (Con algunas de estas características, como <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">compile</span></code>, <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">grep</span></code>, necesita cambiar a algún otro búfer antes de volver a usar el comando, de lo contrario reutilizará el búfer actual a pesar del cambio de nombre).</p>
<p>Los comandos <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">append-to-buffer</span></code> y <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">x</span> <span class="pre">i</span></code> (<code class="docutils literal notranslate"><span class="pre">insert-buffer</span></code>) también se pueden usar para copiar texto de un búfer a otro. Véase <strong>Acumular Texto</strong>.</p>
<p>Los comandos <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">append-to-buffer</span></code> y <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">x</span> <span class="pre">i</span></code> (<code class="docutils literal notranslate"><span class="pre">insert-buffer</span></code>) también se pueden usar para copiar texto de un búfer a otro. Véase <a class="reference internal" href="13_MatarMoverTxt.html#id12"><span class="std std-ref">13.4 Acumular Texto</span></a>.</p>
</section>
<section id="matar-buferes">
<h2>20.4 Matar Búferes<a class="headerlink" href="#matar-buferes" title="Link to this heading"></a></h2>
<span id="id5"></span><h2>20.4 Matar Búferes<a class="headerlink" href="#matar-buferes" title="Link to this heading"></a></h2>
<p>Si continúa una sesión Emacs durante un tiempo, puede acumular un gran número de búferes. Entonces puede que encuentre conveniente <em>matar</em> los búferes que ya no necesita. (Algunos otros editores a esta operación la llaman <em>cerrar</em>, y hablan de «cerrar el búfer» o «cerrar el archivo» visitado en el búfer). En la mayoría de los sistemas operativos, <em>matar</em> un búfer libera la memoria que Emacs usó para el búfer de vuelta al sistema operativo para que otros programas puedan usarla. Aquí tiene algunos comandos para matar búferes:</p>
<p><kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">k</kbd> <em>búfer</em> <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">k</span></code> <em>búfer</em> <code class="docutils literal notranslate"><span class="pre">RET</span></code>)</p>
<blockquote>
@ -261,14 +261,14 @@
</div></blockquote>
<p><code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">k</span></code> (<code class="docutils literal notranslate"><span class="pre">kill-buffer</span></code>) elimina un búfer, cuyo nombre se especifica en el minibúfer. El valor por defecto, usado si sólo escribe <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">RET</span></code>) en el minibúfer, es matar el búfer actual. Si elimina el búfer actual, otro búfer se convierte en actual: uno que fue actual con anterioridad pero que ahora no se muestra en ninguna ventana. Si pide que se elimine un búfer que está visitando un archivo y que ha sido modificado, debe confirmar con un <code class="docutils literal notranslate"><span class="pre">yes</span></code> (sí) antes de que se elimine el búfer.</p>
<p>El comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">kill-some-buffers</span></code> (<code class="docutils literal notranslate"><span class="pre">kill-some-buffers</span></code>) pregunta sobre cada búfer, uno por uno. Una respuesta afirmativa significa matar el búfer, igual que <code class="docutils literal notranslate"><span class="pre">kill-buffer</span></code>. Este comando ignora los búferes cuyos nombres comienzan con un espacio, los cuales son usados internamente por Emacs.</p>
<p>El comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">kill-matching-buffers</span></code> pide una expresión regular y mata todos los buffers cuyos nombres coinciden con esa expresión. Ver <strong>Sintaxis de Expresiones Regulares</strong>. Al igual que <code class="docutils literal notranslate"><span class="pre">kill-some-buffers</span></code>, pide confirmación antes de cada eliminación. Este comando normalmente ignora los búferes cuyos nombres comienzan con un espacio, los cuales son usados internamente por Emacs. Para matar también búferes internos, llame a <code class="docutils literal notranslate"><span class="pre">kill-matching-buffers</span></code> con un argumento prefijo.</p>
<p>La función Menú Búfer también resulta práctica para matar varios búferes. Ver <strong>Operar con Varios Búferes</strong>.</p>
<p>Si desea hacer algo especial cada vez que un búfer es matado, puede añadir funciones hook (funciones de gancho) al gancho <code class="docutils literal notranslate"><span class="pre">kill-buffer-hook</span></code> (vea <strong>Ganchos</strong>).</p>
<p>El comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">kill-matching-buffers</span></code> pide una expresión regular y mata todos los buffers cuyos nombres coinciden con esa expresión. Ver <a class="reference internal" href="16_BusqReemp.html#id13"><span class="std std-ref">16.6 Sintaxis de las Expresiones Regulares</span></a>. Al igual que <code class="docutils literal notranslate"><span class="pre">kill-some-buffers</span></code>, pide confirmación antes de cada eliminación. Este comando normalmente ignora los búferes cuyos nombres comienzan con un espacio, los cuales son usados internamente por Emacs. Para matar también búferes internos, llame a <code class="docutils literal notranslate"><span class="pre">kill-matching-buffers</span></code> con un argumento prefijo.</p>
<p>La función Menú Búfer también resulta práctica para matar varios búferes. Ver <a class="reference internal" href="#id6"><span class="std std-ref">20.5 Trabajar con Varios Búferes</span></a>.</p>
<p>Si desea hacer algo especial cada vez que un búfer es matado, puede añadir funciones hook (funciones de gancho) al gancho <code class="docutils literal notranslate"><span class="pre">kill-buffer-hook</span></code> (vea <a class="reference internal" href="50_Personlzc.html#id7"><span class="std std-ref">50.2.2 Ganchos (Hooks)</span></a>).</p>
<p>Si ejecuta una sesión de Emacs durante un periodo de días, como hace mucha gente, puede llenarse de búferes que usó hace mucho tiempo. El comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">clean-buffer-list</span></code> es una forma conveniente de purgarlos; mata todos los búferes no modificados que no ha usado durante un periodo largo de tiempo. Un búfer normal se elimina si no se ha visualizado durante tres días; sin embargo, puede especificar ciertos búferes que nunca deben eliminarse automáticamente, y otros que deben eliminarse si no se han utilizado durante una hora. Estos valores predeterminados, y otros aspectos del comportamiento de este comando, pueden controlarse personalizando varias opciones descritas en la cadena doc de <code class="docutils literal notranslate"><span class="pre">clean-buffer-list</span></code>.</p>
<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>
<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 <a class="reference internal" href="50_Personlzc.html#id7"><span class="std std-ref">50.2.2 Ganchos (Hooks)</span></a>). 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 <a class="reference internal" href="50_Personlzc.html#id2"><span class="std std-ref">50.1 Interfaz de Personalización Fácil</span></a>.</p>
</section>
<section id="trabajar-con-varios-buferes">
<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>
<span id="id6"></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>
@ -277,7 +277,7 @@
<blockquote>
<div><p>Similar, pero lo hacer en otra ventana.</p>
</div></blockquote>
<p>El <em>Menú de Búferes</em> abierto por <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-b</span></code> (ver <strong>Listado de Búferes Existentes</strong>) no se limita a listar búferes. También le permite realizar varias operaciones en ellos, a través de una interfaz similar a Dired (ver <strong>Dired, el Editor de Directorios</strong>). Puede guardar búferes, eliminarlos (lo que aquí se llama <em>borrarlos</em>, por coherencia con Dired), o mostrarlos.</p>
<p>El <em>Menú de Búferes</em> abierto por <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-b</span></code> (ver <a class="reference internal" href="#id3"><span class="std std-ref">20.2 Listado de Búferes Existentes</span></a>) no se limita a listar búferes. También le permite realizar varias operaciones en ellos, a través de una interfaz similar a Dired (ver <a class="reference internal" href="31_DiredEditDirect.html#id1"><span class="std std-ref">31 Dired, el Editor de Directorios</span></a>). Puede guardar búferes, eliminarlos (lo que aquí se llama <em>borrarlos</em>, por coherencia con Dired), o mostrarlos.</p>
<p>Para usar el menú de búferes, escriba <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-b</span></code> y cambie a la ventana que muestra el búfer <code class="docutils literal notranslate"><span class="pre">*Buffer</span> <span class="pre">List*</span></code> (Lista de búferes). También puede teclear <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">búfer-menú</span></code> para abrir el Menú Búfer en la ventana seleccionada. Alternativamente, el comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">buffer-menu-other-window</span></code> abre el Menú Búfer en otra ventana, y selecciona esa ventana.</p>
<p>El Menú Búfer es un búfer de sólo lectura, y sólo puede modificarse mediante los comandos especiales descritos en esta sección. En este búfer se pueden utilizar los comandos habituales de movimiento del cursor. Los siguientes comandos se aplican al búfer descrito en la línea actual:</p>
<p><kbd class="kbd docutils literal notranslate">d</kbd> (<code class="docutils literal notranslate"><span class="pre">d</span></code>)</p>
@ -319,15 +319,15 @@ produce cuando se teclea <kbd class="kbd docutils literal notranslate">x</kbd> (
<p>Los siguientes comandos operan inmediatamente en el búfer listado en la línea actual. También aceptan un argumento numérico como contador de repeticiones.</p>
<p><kbd class="kbd docutils literal notranslate">~</kbd> (<code class="docutils literal notranslate"><span class="pre">~</span></code>)</p>
<blockquote>
<div><p>Marca el búfer como no modificado (<code class="docutils literal notranslate"><span class="pre">Buffer-menu-not-modified</span></code>). Consulte <strong>Comandos para Guardar Archivos</strong>.</p>
<div><p>Marca el búfer como no modificado (<code class="docutils literal notranslate"><span class="pre">Buffer-menu-not-modified</span></code>). Consulte <a class="reference internal" href="19_ManejoArchivos.html#id5"><span class="std std-ref">19.3.1 Comandos para Guardar Archivos</span></a>.</p>
</div></blockquote>
<p><kbd class="kbd docutils literal notranslate">%</kbd> (<code class="docutils literal notranslate"><span class="pre">%</span></code>)</p>
<blockquote>
<div><p>Conmuta el estado de sólo lectura del búfer (<code class="docutils literal notranslate"><span class="pre">Buffer-menu-toggle-read-only</span></code>). Véase <strong>Operaciones Varias con el Búfer</strong>.</p>
<div><p>Conmuta el estado de sólo lectura del búfer (<code class="docutils literal notranslate"><span class="pre">Buffer-menu-toggle-read-only</span></code>). Véase <a class="reference internal" href="#id4"><span class="std std-ref">20.3 Operaciones Varias del Búfer</span></a>.</p>
</div></blockquote>
<p><kbd class="kbd docutils literal notranslate">t</kbd> (<code class="docutils literal notranslate"><span class="pre">t</span></code>)</p>
<blockquote>
<div><p>Visita el búfer como tabla de etiquetas (<code class="docutils literal notranslate"><span class="pre">Buffer-menu-visit-tags-table</span></code>). Véase <strong>Seleccionar una Tabla de Etiquetas</strong>.</p>
<div><p>Visita el búfer como tabla de etiquetas (<code class="docutils literal notranslate"><span class="pre">Buffer-menu-visit-tags-table</span></code>). Véase <a class="reference internal" href="29_ManyProgrsGrands.html#id25"><span class="std std-ref">29.4.3. Seleccionar una Tabla de Etiquetas</span></a>.</p>
</div></blockquote>
<p>Los siguientes comandos se emplean para seleccionar otro búfer o búferes:</p>
<p><kbd class="kbd docutils literal notranslate">q</kbd> (<code class="docutils literal notranslate"><span class="pre">q</span></code>)</p>
@ -389,7 +389,7 @@ equivale a <code class="docutils literal notranslate"><span class="pre">1</span>
<blockquote>
<div><p>Borra, o reinserta, las líneas de los búferes que no son archivos (<code class="docutils literal notranslate"><span class="pre">Buffer-menu-toggle-files-only</span></code>). Este comando activa la inclusión de dichos búferes en la lista de búferes.</p>
</div></blockquote>
<p>Normalmente, el búfer <code class="docutils literal notranslate"><span class="pre">*Buffer</span> <span class="pre">List*</span></code> no se actualiza automáticamente cuando se crean y eliminan búferes; su contenido es sólo texto. Si ha creado, borrado o renombrado búferes, la forma de actualizar <code class="docutils literal notranslate"><span class="pre">*Buffer</span> <span class="pre">List*</span></code> para mostrar lo que ha hecho es teclear <code class="docutils literal notranslate"><span class="pre">g</span></code> (<code class="docutils literal notranslate"><span class="pre">revert-buffer</span></code>). Puede hacer que esto ocurra regularmente cada <code class="docutils literal notranslate"><span class="pre">auto-revert-interval</span></code> de segundos si activa el modo Auto Revert en este búfer, siempre y cuando no esté marcado como modificado. El modo de reversión automática global se aplica al búfer <code class="docutils literal notranslate"><span class="pre">*Buffer</span> <span class="pre">List*</span></code> sólo si <code class="docutils literal notranslate"><span class="pre">global-auto-revert-non-file-bufferspp</span> <span class="pre">es</span> <span class="pre">distinto</span> <span class="pre">de</span> <span class="pre">``nil</span></code>. Véase <strong>Revertir Automáticamente el Menú del Búfer</strong>, para más detalles.</p>
<p>Normalmente, el búfer <code class="docutils literal notranslate"><span class="pre">*Buffer</span> <span class="pre">List*</span></code> no se actualiza automáticamente cuando se crean y eliminan búferes; su contenido es sólo texto. Si ha creado, borrado o renombrado búferes, la forma de actualizar <code class="docutils literal notranslate"><span class="pre">*Buffer</span> <span class="pre">List*</span></code> para mostrar lo que ha hecho es teclear <code class="docutils literal notranslate"><span class="pre">g</span></code> (<code class="docutils literal notranslate"><span class="pre">revert-buffer</span></code>). Puede hacer que esto ocurra regularmente cada <code class="docutils literal notranslate"><span class="pre">auto-revert-interval</span></code> de segundos si activa el modo Auto Revert en este búfer, siempre y cuando no esté marcado como modificado. El modo de reversión automática global se aplica al búfer <code class="docutils literal notranslate"><span class="pre">*Buffer</span> <span class="pre">List*</span></code> sólo si <code class="docutils literal notranslate"><span class="pre">global-auto-revert-non-file-bufferspp</span> <span class="pre">es</span> <span class="pre">distinto</span> <span class="pre">de</span> <span class="pre">``nil</span></code>. Véase <a class="reference internal" href="19_ManejoArchivos.html#id15"><span class="std std-ref">19.5.1.1 Reversión Automática del Menú de Búferes</span></a>, para más detalles.</p>
</section>
<section id="buferes-indirectos">
<h2>20.6 Búferes Indirectos<a class="headerlink" href="#buferes-indirectos" title="Link to this heading"></a></h2>
@ -411,10 +411,10 @@ equivale a <code class="docutils literal notranslate"><span class="pre">1</span>
</div></blockquote>
<p>El texto del búfer indirecto es siempre idéntico al texto de su búfer base; los cambios realizados al editar cualquiera de ellos son visibles inmediatamente en el otro. En este caso, «texto» incluye tanto los caracteres como sus propiedades de texto. Por lo demás, el búfer indirecto y su búfer base son completamente independientes. Pueden tener nombres diferentes, valores de punto diferentes, estrechamientos diferentes, marcadores diferentes, superposiciones diferentes, modos principales diferentes y variables locales diferentes.</p>
<p>Un búfer indirecto no puede visitar un archivo, pero su búfer base sí. Si intenta guardar el búfer indirecto, en realidad lo que hace es guardar el búfer base. Matar el búfer base efectivamente mata al búfer indirecto, pero matar un búfer indirecto no tiene efecto sobre su búfer base.</p>
<p>Una forma de utilizar los búferes indirectos es mostrar múltiples vistas de un contorno. Consulte Visualización de un <strong>Esquema en Varias Vistas</strong>.</p>
<p>Una forma de utilizar los búferes indirectos es mostrar múltiples vistas de un contorno. Consulte <a class="reference internal" href="26_ComandsLengsHuma.html#id16"><span class="std std-ref">26.9.5 Visualización de un Esquema en Varias Vistas</span></a>.</p>
<p>Una forma rápida y práctica de crear un búfer indirecto es con el comando <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">4</span> <span class="pre">c</span></code> (<code class="docutils literal notranslate"><span class="pre">clone-indirect-buffer-other-window</span></code>). Crea y selecciona un búfer indirecto cuyo búfer base es el búfer actual. Con un argumento numérico, pide el nombre del búfer indirecto; de lo contrario, usa el nombre del búfer actual, con un sufijo <code class="docutils literal notranslate"><span class="pre">&lt;n&gt;</span></code> añadido.</p>
<p>La forma más general de crear un búfer indirecto es con el comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">make-indirect-buffer</span></code>. Crea un búfer indirecto llamado <em>nombre-indirecto</em> a partir de un <em>búfe-base</em>, solicitando ambos usando el minibúfer.</p>
<p>Las funciones que crean búferes indirectos ejecutan el gancho <code class="docutils literal notranslate"><span class="pre">clone-indirect-buffer-hook</span></code> después de crear el búfer indirecto. Cuando se ejecuta este gancho (hook), el búfer indirecto recién creado es el búfer actual.</p>
<p>Las funciones que crean búferes indirectos ejecutan el gancho <code class="docutils literal notranslate"><span class="pre">clone-indirect-buffer-hook</span></code> después de crearlos. Cuando se ejecuta este gancho (hook), el búfer indirecto recién creado es el búfer actual.</p>
<div class="admonition note">
<p class="admonition-title">Nota</p>
<p>Cuando se realiza una modificación en el texto de un búfer, los ganchos de modificación se ejecutan sólo en el búfer base, porque la mayoría de las funciones de esos ganchos no
@ -426,12 +426,12 @@ esa función al gancho en el búfer base y luego hacer que la función opere en
<h2>20.7 Funciones Convenientes y Personalización del Manejo de Búferes<a class="headerlink" href="#funciones-convenientes-y-personalizacion-del-manejo-de-buferes" title="Link to this heading"></a></h2>
<p>Esta sección describe varios modos y características que hacen más cómodo el cambio entre búferes.</p>
<section id="hacer-que-los-nombres-de-los-buferes-sean-unicos">
<span id="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>
<span id="id7"></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>
<p>Por el contrario, el método de nomenclatura <code class="docutils literal notranslate"><span class="pre">post-forward</span></code> llamaría a los búferes <code class="docutils literal notranslate"><span class="pre">Makefile|tmp</span></code> y <code class="docutils literal notranslate"><span class="pre">Makefile|zaphod</span></code>. El método por defecto <code class="docutils literal notranslate"><span class="pre">post-forward-angle-brackets</span></code> es como <code class="docutils literal notranslate"><span class="pre">post-forward</span></code>, excepto que encierra la ruta única entre corchetes angulares. El método inverso los llamaría <code class="docutils literal notranslate"><span class="pre">Makefile\tmp</span></code> y <code class="docutils literal notranslate"><span class="pre">Makefile\zaphod</span></code>. La diferencia no trivial entre <code class="docutils literal notranslate"><span class="pre">post-forward</span></code> y <code class="docutils literal notranslate"><span class="pre">reverse</span></code> se produce cuando sólo un nombre de directorio no es suficiente para distinguir dos archivos; entonces <code class="docutils literal notranslate"><span class="pre">reverse</span></code> pone los nombres de directorio en orden inverso, de modo que <code class="docutils literal notranslate"><span class="pre">/top/middle/file</span></code> se convierte en <code class="docutils literal notranslate"><span class="pre">file\middle\top</span></code>, mientras que <code class="docutils literal notranslate"><span class="pre">post-forward</span></code> los pone en orden hacia delante después del nombre del archivo, como en <code class="docutils literal notranslate"><span class="pre">file|top/middle</span></code>. Si <code class="docutils literal notranslate"><span class="pre">uniquify-buffer-name-style</span></code> se establece en <code class="docutils literal notranslate"><span class="pre">nil</span></code>, los nombres de búfer simplemente se añaden <code class="docutils literal notranslate"><span class="pre">&lt;2&gt;</span></code>, <code class="docutils literal notranslate"><span class="pre">&lt;3&gt;</span></code>, etc.</p>
<p>El valor de <code class="docutils literal notranslate"><span class="pre">uniquify-búfer-name-style</span></code> puede establecerse en una función personalizada con dos argumentos base y <code class="docutils literal notranslate"><span class="pre">extra-strings</span></code> donde base es una cadena y <code class="docutils literal notranslate"><span class="pre">extra-strings</span></code> es una lista de cadenas. Por ejemplo, la implementación actual para los <code class="docutils literal notranslate"><span class="pre">post-forward-angle-brackets</span></code> (corchetes posteriores al ángulo delantero) podría ser:</p>
<p>El valor de <code class="docutils literal notranslate"><span class="pre">uniquify-búfer-name-style</span></code> puede establecerse en una función personalizada con dos argumentos <em>base</em> y <em>cadenas-adicionales</em> donde <em>base</em> es una cadena y <em>cadenas-adicionales</em> es una lista de cadenas. Por ejemplo, la implementación actual para los <code class="docutils literal notranslate"><span class="pre">post-forward-angle-brackets</span></code> (corchetes posteriores al ángulo delantero) podría ser:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="n">defun</span> <span class="n">my</span><span class="o">-</span><span class="n">post</span><span class="o">-</span><span class="n">forward</span><span class="o">-</span><span class="n">angle</span><span class="o">-</span><span class="n">brackets</span> <span class="p">(</span><span class="n">base</span> <span class="n">extra</span><span class="o">-</span><span class="n">string</span><span class="p">)</span>
<span class="p">(</span><span class="n">concat</span> <span class="n">base</span> \<span class="s2">&quot;&lt;</span><span class="se">\&quot;</span><span class="s2"> (mapconcat #&#39;identity extra-string </span><span class="se">\&quot;</span><span class="s2">/</span><span class="se">\&quot;</span><span class="s2">) </span><span class="se">\&quot;</span><span class="s2">&gt;</span><span class="se">\&quot;</span><span class="s2">))</span>
</pre></div>
@ -443,18 +443,18 @@ esa función al gancho en el búfer base y luego hacer que la función opere en
<p>El modo menor global Icomplete proporciona una forma cómoda de seleccionar rápidamente un elemento entre las posibles terminaciones de un minibúfer. Cuando está activado, al escribir en el minibúfer se muestra continuamente una lista de posibles terminaciones que coinciden con la cadena que ha escrito.</p>
<p>En cualquier momento, puede teclear <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>) para seleccionar la primera terminación de la lista. Por tanto, la forma de seleccionar una terminación concreta es hacer que sea la primera de la lista. Hay dos formas de hacerlo. Puede escribir más del nombre de la terminación y así reducir la lista, excluyendo las terminaciones no deseadas por encima de la deseada. Alternativamente, puede usar <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>) y <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>) para rotar la lista hasta que el búfer deseado sea el primero.</p>
<p><code class="docutils literal notranslate"><span class="pre">M-TAB</span></code> seleccionará la primera terminación de la lista, como <code class="docutils literal notranslate"><span class="pre">C-j</span></code> pero sin salir del minibúfer, para que pueda seguir editándola. Esto se utiliza normalmente al introducir un nombre de archivo, donde <code class="docutils literal notranslate"><span class="pre">M-TAB</span></code> puede utilizarse varias veces para descender en la jerarquía de directorios.</p>
<p>Para activar el modo Icomplete, 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-mode</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">icomplete-mode</span></code>), o personalice la variable <code class="docutils literal notranslate"><span class="pre">icomplete-mode</span></code> a <code class="docutils literal notranslate"><span class="pre">t</span></code> (véase <strong>Interfaz de Personalización Fácil</strong>).</p>
<p>Una alternativa al modo Icomplete es el modo Fido. Este es muy similar al modo Icomplete, pero conserva algunas funcionalidades de una extensión popular llamada modo Ido (de hecho el nombre deriva de «Fake Ido»). Entre otras cosas, en el modo Fido, <code class="docutils literal notranslate"><span class="pre">C-s</span></code> y <code class="docutils literal notranslate"><span class="pre">C-r</span></code> también se usan para rotar la lista de completados, <code class="docutils literal notranslate"><span class="pre">C-k</span></code> puede usarse para borrar archivos y matar búferes en la lista. Otro aspecto destacable es que flex se utiliza como estilo de completado por defecto (ver <strong>Cómo se Eligen las Alternativas de Completado</strong>). Para cambiar esto, añada lo siguiente a su archivo de inicialización (vea <strong>El archivo de Inicialización de Emacs</strong>):</p>
<p>Para activar el modo Icomplete, 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-mode</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">icomplete-mode</span></code>), o personalice la variable <code class="docutils literal notranslate"><span class="pre">icomplete-mode</span></code> a <code class="docutils literal notranslate"><span class="pre">t</span></code> (véase <a class="reference internal" href="50_Personlzc.html#id2"><span class="std std-ref">50.1 Interfaz de Personalización Fácil</span></a>).</p>
<p>Una alternativa al modo Icomplete es el modo Fido. Este es muy similar al modo Icomplete, pero conserva algunas funcionalidades de una extensión popular llamada modo Ido (de hecho el nombre deriva de «Fake Ido»). Entre otras cosas, en el modo Fido, <code class="docutils literal notranslate"><span class="pre">C-s</span></code> y <code class="docutils literal notranslate"><span class="pre">C-r</span></code> también se usan para rotar la lista de completados, <code class="docutils literal notranslate"><span class="pre">C-k</span></code> puede usarse para borrar archivos y matar búferes en la lista. Otro aspecto destacable es que flex se utiliza como estilo de completado por defecto (ver <a class="reference internal" href="09_ElMinibufer.html#id7"><span class="std std-ref">9.4.4. Cómo se Eligen las Alternativas de Completado</span></a>). Para cambiar esto, añada lo siguiente a su archivo de inicialización (vea <a class="reference internal" href="50_Personlzc.html#id25"><span class="std std-ref">50.4. El Archivo de Inicialización de Emacs</span></a>):</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="n">defun</span> <span class="n">my</span><span class="o">-</span><span class="n">icomplete</span><span class="o">-</span><span class="n">styles</span> <span class="p">()</span>
<span class="p">(</span><span class="n">setq</span><span class="o">-</span><span class="n">local</span> <span class="n">completion</span><span class="o">-</span><span class="n">styles</span> <span class="s1">&#39;(initials flex)))</span>
<span class="p">(</span><span class="n">add</span><span class="o">-</span><span class="n">hook</span> <span class="s1">&#39;icomplete-minibuffer-setup-hook &#39;</span><span class="n">my</span><span class="o">-</span><span class="n">icomplete</span><span class="o">-</span><span class="n">styles</span><span class="p">)</span>
</pre></div>
</div>
<p>Para activar el modo Fido, 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">fido-mode</span></code> (M-x fido-mode), o personalice la variable <code class="docutils literal notranslate"><span class="pre">fido-mode</span></code> a <code class="docutils literal notranslate"><span class="pre">t</span></code> (consulte <strong>Interfaz de Personalización Fácil</strong>).</p>
<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>
<p>Para activar el modo Fido, 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">fido-mode</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">fido-mode</span></code>), o personalice la variable <code class="docutils literal notranslate"><span class="pre">fido-mode</span></code> a <code class="docutils literal notranslate"><span class="pre">t</span></code> (consulte <a class="reference internal" href="50_Personlzc.html#id2"><span class="std std-ref">50.1 Interfaz de Personalización Fácil</span></a>).</p>
<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 debajo de este, 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 <a class="reference internal" href="50_Personlzc.html#id2"><span class="std std-ref">50.1 Interfaz de Personalización Fácil</span></a>).</p>
</section>
<section id="personalizacion-de-los-menus-del-bufer">
<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>
<span id="id8"></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>
@ -463,9 +463,9 @@ esa función al gancho en el búfer base y luego hacer que la función opere en
<blockquote>
<div><p>Crea una lista de búferes y opera sobre ellos de forma similar a Dired.</p>
</div></blockquote>
<p><code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">bs-show</span></code> muestra una lista de búferes similar a la que normalmente muestra <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-b</span></code>, pero cuya visualización se puede personalizar de forma más flexible. Por ejemplo, puede especificar la lista de atributos de búfer que se mostrarán, el ancho mínimo y máximo de la columna de nombres de búfer, una expreg (expresión regular) para los nombres de los búferes que nunca se mostrarán y los que siempre lo harán, etc. Si prefiere esto a la lista de búferes habitual, puede vincular este comando a <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-b</span></code>. Para personalizar esta lista de búferes, use el grupo <code class="docutils literal notranslate"><span class="pre">bs</span></code> Custom (véase <strong>Interfaz de Personalización Fácil</strong>), o invoque bs-customize.</p>
<p>El modo menor global MSB («MSB» significa «mouse select buffer», búfer de selección de ratón) proporciona un menú de búfer de ratón diferente y personalizable que puede que prefiera. Sustituye los comandos del menú del búfer del ratón, normalmente vinculados a <code class="docutils literal notranslate"><span class="pre">C-Abajo-ratón-1</span></code> y <code class="docutils literal notranslate"><span class="pre">C-F10</span></code>, por sus propios comandos, y también modifica el menú del búfer de la barra de menús. Puede personalizar el menú en el grupo msb Custom.</p>
<p>IBuffer es un modo principal para ver una lista de búferes y operar sobre ellos de forma análoga a la de Dired (véase <strong>Dired, el Editor de Directorios</strong>), incluyendo filtrar, marcar, ordenar de varias formas y actuar sobre los búferes.</p>
<p><code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">bs-show</span></code> muestra una lista de búferes similar a la que normalmente muestra <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-b</span></code>, pero cuya visualización se puede personalizar de forma más flexible. Por ejemplo, puede especificar la lista de atributos de búfer que se mostrarán, el ancho mínimo y máximo de la columna de nombres de búfer, una expreg (expresión regular) para los nombres de los búferes que nunca se mostrarán y los que siempre lo harán, etc. Si prefiere esto a la lista de búferes habitual, puede vincular este comando a <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-b</span></code>. Para personalizar esta lista de búferes, use el grupo <code class="docutils literal notranslate"><span class="pre">bs</span></code> Custom (véase <a class="reference internal" href="50_Personlzc.html#id2"><span class="std std-ref">50.1 Interfaz de Personalización Fácil</span></a>), o invoque bs-customize.</p>
<p>El modo menor global MSB («MSB» significa «mouse select buffer», búfer de selección de ratón) proporciona un menú de búfer de ratón diferente y personalizable que puede que prefiera. Sustituye los comandos del menú del búfer del ratón, normalmente vinculados a <code class="docutils literal notranslate"><span class="pre">C-Abajo-ratón-1</span></code> y <code class="docutils literal notranslate"><span class="pre">C-F10</span></code>, por sus propios comandos, y también modifica el menú del búfer de la barra de menús. Puede personalizar el menú en el grupo <code class="docutils literal notranslate"><span class="pre">msb</span></code> Custom.</p>
<p>IBuffer es un modo principal para ver una lista de búferes y operar sobre ellos de forma análoga a la de Dired (véase <a class="reference internal" href="31_DiredEditDirect.html#id1"><span class="std std-ref">31 Dired, el Editor de Directorios</span></a>), incluyendo filtrar, marcar, ordenar de varias formas y actuar sobre los búferes.</p>
</section>
</section>
</section>

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.56
Traducción Revisón: 1.59
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -154,10 +154,10 @@
<section id="conceptos-de-las-ventanas-emacs">
<h2>21.1 Conceptos de las Ventanas Emacs<a class="headerlink" href="#conceptos-de-las-ventanas-emacs" title="Link to this heading"></a></h2>
<p>Cada ventana de Emacs muestra un búfer de la aplicación en cualquier momento. Un mismo búfer puede aparecer en más de una ventana; si es así, cualquier cambio en su texto se muestra en todas las ventanas donde aparezca. Pero estas ventanas pueden mostrar diferentes partes del búfer, porque cada ventana tiene su propio valor para el punto.</p>
<p>En cualquier momento, una ventana Emacs es la <em>ventana seleccionada</em>; el búfer que esta ventana está mostrando es el búfer actual. En las pantallas gráficas, el punto se indica mediante un cursor sólido parpadeante en la ventana seleccionada, y mediante una caja hueca en las ventanas no seleccionadas. En los terminales de texto, el cursor sólo se dibuja en la ventana seleccionada. Véase <strong>Visualización del Cursor</strong>.</p>
<p>En cualquier momento, una ventana Emacs es la <em>ventana seleccionada</em>; el búfer que esta ventana está mostrando es el búfer actual. En las pantallas gráficas, el punto se indica mediante un cursor sólido parpadeante en la ventana seleccionada, y mediante una caja hueca en las ventanas no seleccionadas. En los terminales de texto, el cursor sólo se dibuja en la ventana seleccionada. Véase <a class="reference internal" href="15_ControlDisplay.html#id19"><span class="std std-ref">15.21 Visualización del Cursor</span></a>.</p>
<p>Los comandos para mover el punto afectan al valor del mismo sólo para la ventana Emacs seleccionada. No afectan a dicho valor en otras ventanas de Editor, ni siquiera en las que muestran el mismo búfer. Lo mismo ocurre con los comandos de cambio de búfer como <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">b</span></code>; no afectan a otras ventanas en absoluto. Sin embargo, hay otros comandos como <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">4</span> <span class="pre">b</span></code> que seleccionan una ventana diferente y cambian de búfer en ella. Además, todos los comandos que muestran información en una ventana, incluyendo (por ejemplo) <code class="docutils literal notranslate"><span class="pre">C-h</span> <span class="pre">f</span></code> (<code class="docutils literal notranslate"><span class="pre">describe-función</span></code>) y <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-b</span></code> (<code class="docutils literal notranslate"><span class="pre">list-buffers</span></code>), normalmente funcionan mostrando búferes en una ventana no seleccionada sin afectar a la ventana seleccionada.</p>
<p>Cuando varias ventanas muestran el mismo búfer, pueden tener diferentes regiones, porque pueden tener diferentes valores para el punto. Sin embargo, todas tienen el mismo valor de marca, porque cada búfer sólo tiene una posición de marca.</p>
<p>Cada ventana tiene su propia línea de modo, que muestra el nombre del búfer, el estado de modificación y los modos mayor y menor del búfer que se muestra en la ventana. La línea de modo de la ventana seleccionada aparece en un color diferente. Véase <strong>La Línea de Modo</strong>, para más detalles.</p>
<p>Cada ventana tiene su propia línea de modo, que muestra el nombre del búfer, el estado de modificación y los modos mayor y menor del búfer que se muestra en la ventana. La línea de modo de la ventana seleccionada aparece en un color diferente. 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>, para más detalles.</p>
</section>
<section id="ventanas-divididas">
<span id="id2"></span><h2>21.2 Ventanas Divididas<a class="headerlink" href="#ventanas-divididas" title="Link to this heading"></a></h2>
@ -176,8 +176,8 @@
<p><code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">2</span></code> (<code class="docutils literal notranslate"><span class="pre">split-window-below</span></code>) divide la ventana seleccionada en dos, una encima de la otra. Tras la división, la ventana seleccionada es la superior, y la recién dividida es la inferior. Ambas ventanas tienen el mismo valor de punto que antes, y muestran la misma porción del búfer (o lo más cercana posible). Si es necesario, las ventanas se desplazan para mantener el punto en pantalla. Por defecto, las dos ventanas tienen cada una la mitad de la altura de la ventana original. Un argumento numérico positivo especifica cuántas líneas dar a la ventana superior; un argumento numérico negativo especifica cuántas líneas dar a la ventana inferior.</p>
<p>Si cambia la variable <code class="docutils literal notranslate"><span class="pre">split-window-keep-point</span></code> a <code class="docutils literal notranslate"><span class="pre">nil</span></code>, <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">2</span></code> ajusta la porción del búfer mostrada por las dos ventanas, así como el valor del punto en cada ventana, para mantener el texto en pantalla lo más cercano posible al que había antes; además, si el punto estaba en la mitad inferior de la ventana original, se selecciona la ventana inferior en lugar de la superior.</p>
<p><code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">3</span></code> (<code class="docutils literal notranslate"><span class="pre">split-window-right</span></code>) divide la ventana seleccionada en dos ventanas contiguas. La ventana izquierda es la seleccionada; la ventana derecha muestra la misma porción del mismo búfer, y tiene el mismo valor del punto. Un argumento numérico positivo especifica cuántas columnas hay que dar a la ventana izquierda; un argumento numérico negativo especifica cuántas columnas hay que dar a la ventana derecha.</p>
<p>Al dividir una ventana con <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">3</span></code>, cada ventana resultante ocupa menos que el ancho total del cuadro. Si se estrecha demasiado, el búfer puede ser difícil de leer si se están usando líneas de continuación (ver <strong>Líneas de Continuación</strong>). Por lo tanto, Emacs cambia automáticamente al truncamiento de líneas si el ancho de la ventana se estrecha más de 50 columnas. Este truncamiento ocurre independientemente del valor de la variable <code class="docutils literal notranslate"><span class="pre">truncate-lines</span></code> (ver <strong>Truncamiento de Líneas</strong>); en su lugar es controlado por la variable <code class="docutils literal notranslate"><span class="pre">truncate-partial-width-windows</span></code>. Si el valor de esta variable es un entero positivo (el valor por defecto es 50), esto especifica la anchura total mínima para una ventana de anchura parcial antes de que se produzca el truncado automático de líneas; si el valor es <code class="docutils literal notranslate"><span class="pre">nil</span></code>, el truncado automático de líneas está desactivado; y para cualquier otro valor no <code class="docutils literal notranslate"><span class="pre">nil</span></code>, Emacs trunca las líneas en cada ventana de anchura parcial independientemente de su anchura. La anchura total de una ventana está en unidades de columna tal y como se informa en <code class="docutils literal notranslate"><span class="pre">window-total-width</span></code> (ver <strong>Tamaños de Ventana</strong> en el Manual de Referencia de Emacs Lisp), incluye los márgenes, los glifos de continuación y truncado, los márgenes y la barra de desplazamiento.</p>
<p>En los terminales de texto, las ventanas contiguas están separadas por un divisor vertical que se dibuja utilizando la cara <code class="docutils literal notranslate"><span class="pre">vertical-border</span></code>.</p>
<p>Al dividir una ventana con <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">3</span></code>, cada ventana resultante ocupa menos que el ancho total del cuadro. Si se estrecha demasiado, el búfer puede ser difícil de leer si se están usando líneas de continuación (ver <a class="reference internal" href="08_ComBasicEdic.html#id7"><span class="std std-ref">8.8 Líneas de Continuación</span></a>). Por lo tanto, Emacs cambia automáticamente al truncamiento de líneas si el ancho de la ventana se estrecha más de 50 columnas. Este truncamiento ocurre independientemente del valor de la variable <code class="docutils literal notranslate"><span class="pre">truncate-lines</span></code> (ver <a class="reference internal" href="15_ControlDisplay.html#id20"><span class="std std-ref">15.22 Truncado de Línea</span></a>); en su lugar es controlado por la variable <code class="docutils literal notranslate"><span class="pre">truncate-partial-width-windows</span></code>. Si el valor de esta variable es un entero positivo (el valor por defecto es 50), esto especifica la anchura total mínima para una ventana de anchura parcial antes de que se produzca el truncado automático de líneas; si el valor es <code class="docutils literal notranslate"><span class="pre">nil</span></code>, el truncado automático de líneas está desactivado; y para cualquier otro valor no <code class="docutils literal notranslate"><span class="pre">nil</span></code>, Emacs trunca las líneas en cada ventana de anchura parcial independientemente de su anchura. La anchura total de una ventana está en unidades de columna tal y como se informa en <code class="docutils literal notranslate"><span class="pre">window-total-width</span></code> (ver <strong>Tamaños de Ventana</strong> en el Manual de Referencia de Emacs Lisp), incluye los márgenes, los glifos de continuación y truncado, los márgenes y la barra de desplazamiento.</p>
<p>En las terminales de texto, las ventanas contiguas están separadas por un divisor vertical que se dibuja utilizando la cara <code class="docutils literal notranslate"><span class="pre">vertical-border</span></code>.</p>
<p>Si se pulsa <code class="docutils literal notranslate"><span class="pre">C-ratón-2</span></code> en la línea de modo de una ventana, se divide la ventana, poniendo un divisor vertical donde se pulsó. Dependiendo de cómo esté compilado Emacs, también puede dividir una ventana pulsando <code class="docutils literal notranslate"><span class="pre">C-ratón-2</span></code> en la barra de desplazamiento, que pone un divisor horizontal donde se pulsa (esta característica no funciona cuando Emacs usa barras de desplazamiento GTK+).</p>
<p>Por defecto, cuando se divide una ventana, Emacs da a cada una de las ventanas resultantes dimensiones que son un múltiplo integral del tamaño de fuente por defecto del marco. Esto puede subdividir la pantalla de forma desigual entre las ventanas resultantes. Si establece la variable <code class="docutils literal notranslate"><span class="pre">window-resize-pixelwise</span></code> a un valor no nulo, Emacs dará a cada ventana el mismo número de píxeles (más o menos un píxel si la dimensión inicial era un número impar de píxeles). Tenga en cuenta que cuando el tamaño en píxeles de un marco no es múltiplo del tamaño en caracteres del marco, al menos una ventana puede ser redimensionada en píxeles incluso si esta opción es nula.</p>
</section>
@ -204,42 +204,42 @@
punto en ella.</p>
</dd>
</dl>
<p>Con el teclado, puede cambiar de ventana escribiendo <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">o</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">o</span></code>, <code class="docutils literal notranslate"><span class="pre">other-window</span></code>). Es una <code class="docutils literal notranslate"><span class="pre">o</span></code>, de «<em>o</em>tra», no un cero. Cuando hay más de dos ventanas, este comando recorre todas las ventanas en un orden cíclico, generalmente de arriba abajo y de izquierda a derecha. Después de la ventana situada más a la derecha y más abajo, vuelve a la situada en la esquina superior izquierda. Un argumento numérico significa moverse varios pasos en el orden cíclico de las ventanas. Un argumento negativo se desplaza por el ciclo en el orden inverso. Cuando el minibúfer está activo, la ventana del minibúfer es la última ventana del ciclo; se puede cambiar de la ventana del minibúfer a una de las otras ventanas, y más tarde volver a cambiar y terminar de suministrar el argumento del minibúfer que se solicita. Véase <strong>Edición en el Minibúfer</strong>.</p>
<p>El comando <code class="docutils literal notranslate"><span class="pre">other-window</span></code> normalmente sólo cambiará a la siguiente ventana en el marco actual (a menos que se configure de otra manera). Si trabaja en un entorno de varios marcos y desea que las ventanas de todos los marcos formen parte del ciclo, puede volver a vincular <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">o</span></code> al comando <code class="docutils literal notranslate"><span class="pre">next-window-any-frame</span></code>. (Para saber cómo volver a vincular un comando, consulte <strong>Cambiar las Combinaciones de Teclas de Forma Interactiva</strong>).</p>
<p>Los comandos de desplazamiento habituales (véase <strong>Control de la Pantalla</strong>) se aplican sólo a la ventana seleccionada, pero también existen comandos para desplazarse a la ventana siguiente. <code class="docutils literal notranslate"><span class="pre">C-M-v</span></code> (<code class="docutils literal notranslate"><span class="pre">scroll-other-window</span></code>) desplaza la ventana que <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">o</span></code> seleccionaría. En otros aspectos, el comando se comporta como <code class="docutils literal notranslate"><span class="pre">C-v</span></code>; ambos mueven el texto del búfer hacia arriba en relación con la ventana, y toman argumentos positivos y negativos. (En el minibúfer, <code class="docutils literal notranslate"><span class="pre">C-M-v</span></code> desplaza la ventana de ayuda asociada al minibúfer, si existe, en lugar de la ventana siguiente en el orden cíclico estándar; véase <strong>Edición en el minibúfer</strong>). <code class="docutils literal notranslate"><span class="pre">C-M-S-v</span></code> (<code class="docutils literal notranslate"><span class="pre">scroll-other-window-down</span></code>) desplaza la siguiente ventana hacia abajo de forma similar. Del mismo modo, <code class="docutils literal notranslate"><span class="pre">C-M-S-l</span></code> (<code class="docutils literal notranslate"><span class="pre">recenter-other-window</span></code>) se comporta como <code class="docutils literal notranslate"><span class="pre">C-l</span></code> (<code class="docutils literal notranslate"><span class="pre">recenter-top-bottom</span></code>) en la siguiente ventana.</p>
<p>Con el teclado, puede cambiar de ventana escribiendo <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">o</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">o</span></code>, <code class="docutils literal notranslate"><span class="pre">other-window</span></code>). Es una <code class="docutils literal notranslate"><span class="pre">o</span></code>, de «<em>o</em>tra», no un cero. Cuando hay más de dos ventanas, este comando recorre todas las ventanas en un orden cíclico, generalmente de arriba abajo y de izquierda a derecha. Después de la ventana situada más a la derecha y más abajo, vuelve a la situada en la esquina superior izquierda. Un argumento numérico significa moverse varios pasos en el orden cíclico de las ventanas. Un argumento negativo se desplaza por el ciclo en el orden inverso. Cuando el minibúfer está activo, la ventana del minibúfer es la última ventana del ciclo; se puede cambiar de la ventana del minibúfer a una de las otras ventanas, y más tarde volver a cambiar y terminar de suministrar el argumento del minibúfer que se solicita. Véase <a class="reference internal" href="09_ElMinibufer.html#id3"><span class="std std-ref">9.3 Edición en el minibuffer</span></a>.</p>
<p>El comando <code class="docutils literal notranslate"><span class="pre">other-window</span></code> normalmente sólo cambiará a la siguiente ventana en el marco actual (a menos que se configure de otra manera). Si trabaja en un entorno de varios marcos y desea que las ventanas de todos los marcos formen parte del ciclo, puede volver a vincular <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">o</span></code> al comando <code class="docutils literal notranslate"><span class="pre">next-window-any-frame</span></code>. (Para saber cómo volver a vincular un comando, consulte <a class="reference internal" href="50_Personlzc.html#id18"><span class="std std-ref">50.3.5. Cambiar las combinaciones de teclas interactivamente</span></a>).</p>
<p>Los comandos de desplazamiento habituales (véase <a class="reference internal" href="15_ControlDisplay.html#id1"><span class="std std-ref">15 Controlando la Pantalla</span></a>) se aplican sólo a la ventana seleccionada, pero también existen comandos para desplazarse a la ventana siguiente. <code class="docutils literal notranslate"><span class="pre">C-M-v</span></code> (<code class="docutils literal notranslate"><span class="pre">scroll-other-window</span></code>) desplaza la ventana que <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">o</span></code> seleccionaría. En otros aspectos, el comando se comporta como <code class="docutils literal notranslate"><span class="pre">C-v</span></code>; ambos mueven el texto del búfer hacia arriba en relación con la ventana, y toman argumentos positivos y negativos. (En el minibúfer, <code class="docutils literal notranslate"><span class="pre">C-M-v</span></code> desplaza la ventana de ayuda asociada al minibúfer, si existe, en lugar de la ventana siguiente en el orden cíclico estándar; véase <a class="reference internal" href="09_ElMinibufer.html#id3"><span class="std std-ref">9.3 Edición en el minibuffer</span></a>). <code class="docutils literal notranslate"><span class="pre">C-M-S-v</span></code> (<code class="docutils literal notranslate"><span class="pre">scroll-other-window-down</span></code>) desplaza la siguiente ventana hacia abajo de forma similar. Del mismo modo, <code class="docutils literal notranslate"><span class="pre">C-M-S-l</span></code> (<code class="docutils literal notranslate"><span class="pre">recenter-other-window</span></code>) se comporta como <code class="docutils literal notranslate"><span class="pre">C-l</span></code> (<code class="docutils literal notranslate"><span class="pre">recenter-top-bottom</span></code>) en la siguiente ventana.</p>
<p>Si establece <code class="docutils literal notranslate"><span class="pre">mouse-autoselect-window</span></code> a un valor no nulo, al mover el ratón sobre una ventana diferente se selecciona esa ventana. Esta función está desactivada por defecto.</p>
</section>
<section id="visualizacion-en-otra-ventana">
<span id="id4"></span><h2>21.4 Visualización en Otra Ventana<a class="headerlink" href="#visualizacion-en-otra-ventana" title="Link to this heading"></a></h2>
<p><code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">4</span></code> es una tecla prefijo para una variedad de comandos que cambian a un búfer en una ventana diferente-ya sea otra ventana existente, o una nueva ventana creada dividiendo la ventana seleccionada. Ver Cómo Funciona display-buffer, para saber cómo Emacs elige o crea la ventana a usar.</p>
<p><code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">4</span></code> es una tecla prefijo para una variedad de comandos que cambian a un búfer en una ventana diferente, ya sea otra ventana existente, o una nueva ventana creada dividiendo la ventana seleccionada. Ver <a class="reference internal" href="#id6"><span class="std std-ref">21.6.1 Cómo Funciona display-buffer</span></a>, para saber cómo Emacs elige o crea la ventana a usar.</p>
<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">b</kbd> <em>nombrebúfer</em> <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">4</span> <span class="pre">b</span></code> <em>nombrebúfer</em> <code class="docutils literal notranslate"><span class="pre">RET</span></code>)</p>
<blockquote>
<div><p>Selecciona <em>nombrebúfer</em> en otra ventana (<code class="docutils literal notranslate"><span class="pre">switch-to-buffer-other-window</span></code>). Véase <strong>Creación y Selección de Búferes</strong>.</p>
<div><p>Selecciona <em>nombrebúfer</em> en otra ventana (<code class="docutils literal notranslate"><span class="pre">switch-to-buffer-other-window</span></code>). Véase <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>.</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">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">o</kbd> <em>nombrebúfer</em> <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">4</span> <span class="pre">C-o</span></code> <em>nombrebúfer</em> <code class="docutils literal notranslate"><span class="pre">RET</span></code>)</p>
<blockquote>
<div><p>Muestra el nombre del búfer en alguna ventana, sin intentar seleccionarlo (<code class="docutils literal notranslate"><span class="pre">display-buffer</span></code>). Ver <strong>Mostrar un Búfer en una Ventana</strong>, para más detalles sobre cómo se elige la
ventana.</p>
<div><p>Muestra <em>nombrebúfer</em> en alguna ventana, sin intentar seleccionarlo (<code class="docutils literal notranslate"><span class="pre">display-buffer</span></code>). Ver <a class="reference internal" href="#id5"><span class="std std-ref">21.6. Mostrar un Búfer en una Ventana</span></a>, para más detalles
sobre cómo se elige la ventana.</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">f</kbd> <em>nombrearchivo</em> <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">4</span> <span class="pre">f</span></code> <em>nombrearchivo</em> <code class="docutils literal notranslate"><span class="pre">RET</span></code>)</p>
<blockquote>
<div><p>Visita el archivo <em>nombrearchivo</em> y selecciona su búfer en otra ventana (<code class="docutils literal notranslate"><span class="pre">find-file-other-window</span></code>). Véase <strong>Visitar Archivos</strong>.</p>
<div><p>Visita el archivo <em>nombrearchivo</em> y selecciona su búfer en otra ventana (<code class="docutils literal notranslate"><span class="pre">find-file-other-window</span></code>). Véase <a class="reference internal" href="19_ManejoArchivos.html#id3"><span class="std std-ref">19.2 Visitar Archivos</span></a>.</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">d</kbd> <em>directorio</em> <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">4</span> <span class="pre">d</span></code> <em>directorio</em> <code class="docutils literal notranslate"><span class="pre">RET</span></code>)</p>
<blockquote>
<div><p>Selecciona un búfer de Dired para el directorio en otra ventana (<code class="docutils literal notranslate"><span class="pre">dired-other-window</span></code>). Véase <strong>Dired, el Editor de Directorios</strong>.</p>
<div><p>Selecciona un búfer de Dired para el directorio en otra ventana (<code class="docutils literal notranslate"><span class="pre">dired-other-window</span></code>). Véase <a class="reference internal" href="31_DiredEditDirect.html#id1"><span class="std std-ref">31 Dired, el Editor de Directorios</span></a>.</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">m</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">4</span> <span class="pre">m</span></code>)</p>
<blockquote>
<div><p>Comienza a redactar un mensaje de correo, de forma similar a <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">m</span></code> (véase <strong>Envío de Correo</strong>), pero en otra ventana (<code class="docutils literal notranslate"><span class="pre">compose-mail-other-window</span></code>).</p>
<div><p>Comienza a redactar un mensaje de correo, de forma similar a <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">m</span></code> (véase <a class="reference internal" href="33_EnvioDeCorreo.html#id1"><span class="std std-ref">33 Envío de Correo</span></a>), pero en otra ventana (<code class="docutils literal notranslate"><span class="pre">compose-mail-other-window</span></code>).</p>
</div></blockquote>
<p><kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">4</kbd><kbd class="kbd docutils literal notranslate">.</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">4</span> <span class="pre">.</span></code>)</p>
<blockquote>
<div><p>Busca la definición de un identificador, de forma similar a <code class="docutils literal notranslate"><span class="pre">M-.</span></code> (véase <strong>Buscar Referencias de Identificadores</strong>), pero en otra ventana (<code class="docutils literal notranslate"><span class="pre">xref-find-definitions-other-window</span></code>).</p>
<div><p>Busca la definición de un identificador, de forma similar a <code class="docutils literal notranslate"><span class="pre">M-.</span></code> (véase <a class="reference internal" href="29_ManyProgrsGrands.html#id12"><span class="std std-ref">29.4 Buscar Referencias de Identificador</span></a>), pero en otra ventana (<code class="docutils literal notranslate"><span class="pre">xref-find-definitions-other-window</span></code>).</p>
</div></blockquote>
<p><kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">4</kbd><kbd class="kbd docutils literal notranslate">r</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">4</span> <span class="pre">r</span></code> <em>nombrearchivo</em> <code class="docutils literal notranslate"><span class="pre">RET</span></code>)</p>
<blockquote>
<div><p>Visita el archivo de sólo lectura, y selecciona su búfer en otra ventana (<code class="docutils literal notranslate"><span class="pre">find-file-read-only-other-window</span></code>). Véase <strong>Visitar Archivos</strong>.</p>
<div><p>Visita el archivo de sólo lectura, y selecciona su búfer en otra ventana (<code class="docutils literal notranslate"><span class="pre">find-file-read-only-other-window</span></code>). Véase <a class="reference internal" href="19_ManejoArchivos.html#id3"><span class="std std-ref">19.2 Visitar Archivos</span></a>.</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">4</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">4</span> <span class="pre">4</span></code>)</p>
<blockquote>
@ -298,7 +298,7 @@ se muestre en otra ventana.</p>
<p><code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">delete-windows-on</span></code> borra las ventanas que muestran un búfer específico. Pide el búfer, por defecto el búfer actual. Con el argumento de prefijo cero, <code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">0</span></code>, este comando borra ventanas sólo en los marcos de la pantalla actual.</p>
<p>El comando <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">^</span></code> (<code class="docutils literal notranslate"><span class="pre">enlarge-window</span></code>) hace la ventana seleccionada una línea más alta, tomando espacio de una ventana verticalmente adyacente sin cambiar la altura del marco. Con un argumento numérico positivo, este comando aumenta la altura de la ventana en esa cantidad de líneas; con un argumento negativo, reduce la altura en esa cantidad de líneas. Si no hay ventanas adyacentes verticalmente (es decir, la ventana está a la altura completa del marco), esto indica un error. El comando también indica un error si intenta reducir la altura de cualquier ventana por debajo de un cierto número mínimo de líneas, especificado por la variable <code class="docutils literal notranslate"><span class="pre">window-min-height</span></code> (el valor por defecto es 4).</p>
<p>Del mismo modo, <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">}</span></code> (<code class="docutils literal notranslate"><span class="pre">enlarge-window-horizontally</span></code>) ensancha la ventana seleccionada, y <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">{</span></code> (<code class="docutils literal notranslate"><span class="pre">shrink-window-horizontally</span></code>) la estrecha. Estos comandos señalan un error si se intenta reducir el ancho de cualquier ventana por debajo de un cierto número mínimo de columnas, especificado por la variable <code class="docutils literal notranslate"><span class="pre">window-min-width</span></code> (el valor por defecto es 10).</p>
<p>Los clics del ratón en la línea de modo (véase <strong>Comandos del Ratón para la Línea de Modo</strong>) o en los divisores de ventana (véase <strong>Divisores de Ventana</strong>) proporcionan otra forma de cambiar la altura de las ventanas y de dividir o eliminar ventanas.</p>
<p>Los clics del ratón en la línea de modo (véase <a class="reference internal" href="22_MarcosPantallasGraf.html#id4"><span class="std std-ref">22.5 Comandos del Ratón en la Línea de Modo</span></a>) o en los divisores de ventana (véase <a class="reference internal" href="22_MarcosPantallasGraf.html#id13"><span class="std std-ref">22.13 Separadores de Ventanas</span></a>) proporcionan otra forma de cambiar la altura de las ventanas y de dividir o eliminar ventanas.</p>
<p><code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">-</span></code> (<code class="docutils literal notranslate"><span class="pre">shrink-window-if-larger-than-buffer</span></code>) reduce la altura de la ventana seleccionada, si es más alta de lo necesario para mostrar todo el texto del búfer que está mostrando. Cede las líneas sobrantes a otras ventanas del marco.</p>
<p>También puede utilizar <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">+</span></code> (<code class="docutils literal notranslate"><span class="pre">balance-windows</span></code>) para igualar las alturas de todas las ventanas del marco seleccionado.</p>
</section>
@ -306,19 +306,21 @@ se muestre en otra ventana.</p>
<span id="id5"></span><h2>21.6. Mostrar un Búfer en una Ventana<a class="headerlink" href="#mostrar-un-bufer-en-una-ventana" title="Link to this heading"></a></h2>
<p>Es una operación común de Emacs mostrar o hacer aparecer algún búfer en respuesta a un comando del Usuario. Hay varias maneras diferentes en que los comandos hacen esto.</p>
<p>Muchos comandos, como <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>), por defecto muestran el búfer «ocupando» la ventana seleccionada, esperando que la atención del Usuario se desvíe a ese búfer.</p>
<p>Algunos comandos tratan de mostrar de forma inteligente, intentando no ocupar la ventana seleccionada, por ejemplo, separando una nueva ventana y mostrando allí el búfer deseado. Estos comandos, que incluyen varios comandos de ayuda (ver <strong>Ayuda</strong>), funcionan llamando internamente a <code class="docutils literal notranslate"><span class="pre">display-búfer</span></code>. Ver <a class="reference internal" href="#id6"><span class="std std-ref">21.6.1 Cómo Funciona display-buffer</span></a> Cómo Funciona display-búfer, para más detalles.</p>
<p>Otros comandos hacen lo mismo que <code class="docutils literal notranslate"><span class="pre">display-buffer</span></code>, y además seleccionan la ventana de visualización para que pueda empezar a editar su búfer. El comando <code class="docutils literal notranslate"><span class="pre">M-g</span> <span class="pre">M-n</span></code> (<code class="docutils literal notranslate"><span class="pre">next-error</span></code>) es un ejemplo (ver <strong>Modo de Compilación</strong>). Tales comandos funcionan llamando internamente a la función <code class="docutils literal notranslate"><span class="pre">pop-to-búfer</span></code>. Ver <strong>Cambiar a un Búfer en una Ventana</strong> en el Manual de Referencia de Emacs Lisp.</p>
<p>Los comandos con nombres que terminan en <code class="docutils literal notranslate"><span class="pre">other-window</span></code> se comportan como <code class="docutils literal notranslate"><span class="pre">display-buffer</span></code>, excepto que nunca se muestran en la ventana seleccionada. Varios de estos comandos están enlazados en la tecla de prefijo <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">4</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">4</span></code>) (ver <strong>Visualizar en Otra Ventana</strong>).</p>
<p>Algunos comandos tratan de mostrar de forma inteligente, intentando no ocupar la ventana seleccionada, por ejemplo, separando una nueva ventana y mostrando allí el búfer deseado. Estos comandos, que incluyen varios comandos de ayuda (ver <a class="reference internal" href="11_Ayuda.html#id1"><span class="std std-ref">11 Ayuda</span></a>), funcionan llamando internamente a <code class="docutils literal notranslate"><span class="pre">display-búfer</span></code>. Ver <a class="reference internal" href="#id6"><span class="std std-ref">21.6.1 Cómo Funciona display-buffer</span></a>, para más detalles.</p>
<p>Otros comandos hacen lo mismo que <code class="docutils literal notranslate"><span class="pre">display-buffer</span></code>, y además seleccionan la ventana de visualización para que pueda empezar a editar su búfer. El comando <code class="docutils literal notranslate"><span class="pre">M-g</span> <span class="pre">M-n</span></code> (<code class="docutils literal notranslate"><span class="pre">next-error</span></code>) es un ejemplo (ver <a class="reference internal" href="28_CompProbProg.html#id2"><span class="std std-ref">28.2 Modo Compilación</span></a>). Tales comandos funcionan llamando internamente a la función <code class="docutils literal notranslate"><span class="pre">pop-to-búfer</span></code>. Ver <strong>Cambiar a un Búfer en una Ventana</strong> en el Manual de Referencia de Emacs Lisp.</p>
<p>Los comandos con nombres que terminan en <code class="docutils literal notranslate"><span class="pre">other-window</span></code> se comportan como <code class="docutils literal notranslate"><span class="pre">display-buffer</span></code>, excepto que nunca se muestran en la ventana seleccionada. Varios de estos comandos están enlazados en la tecla de prefijo <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">4</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">4</span></code>) (ver <a class="reference internal" href="#id4"><span class="std std-ref">21.4 Visualización en Otra Ventana</span></a>).</p>
<p>Los comandos cuyos nombres terminan en <code class="docutils literal notranslate"><span class="pre">other-frame</span></code> se comportan como <code class="docutils literal notranslate"><span class="pre">display-buffer</span></code>, salvo que (i) nunca se muestran en la ventana seleccionada y (ii) prefieren crear un nuevo marco o usar una ventana en otro marco para mostrar el búfer deseado. Varios de estos comandos están vinculados a la tecla de prefijo <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">5</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">5</span></code>).</p>
<section id="como-funciona-display-buffer">
<span id="id6"></span><h3>21.6.1 Cómo Funciona display-buffer<a class="headerlink" href="#como-funciona-display-buffer" title="Link to this heading"></a></h3>
<p>El comando <code class="docutils literal notranslate"><span class="pre">display-buffer</span></code> (así como los comandos que lo llaman internamente) elige una ventana para mostrar siguiendo los pasos que se dan a continuación. Véase <strong>Elegir una Ventana para Mostrar un Búfer</strong> en El Manual de Referencia de Emacs Lisp, para más detalles sobre cómo alterar esta secuencia de pasos.</p>
<blockquote>
<div><ul>
<li><p>Si el búfer debe mostrarse en la ventana seleccionada independientemente de otras consideraciones, reutiliza la ventana seleccionada. Por defecto, este paso se omite, pero puede
decirle a Emacs que no lo omita añadiendo una expresión regular que coincida con el nombre del búfer junto con una referencia a la función de acción mostrar-búfer-misma-ventana (ver
<strong>Funciones de Acciones para Mostrar Búferes</strong> en El Manual de Referencia de Emacs Lisp) a la opción <cite>display-buffer-alist</cite> (ver <strong>Elegir Una Ventana para Mostrar</strong> un Búfer en El
Manual de Referencia de Emacs Lisp). Por ejemplo, para mostrar el búfer <code class="docutils literal notranslate"><span class="pre">*scratch*</span></code> preferiblemente en la ventana seleccionada escriba:</p>
<li><p>Si el búfer debe mostrarse en la ventana seleccionada independientemente de otras consideraciones, reutiliza la ventana
seleccionada. Por defecto, este paso se omite, pero puede decirle a Emacs que no lo omita añadiendo una expresión regular que
coincida con el nombre del búfer junto con una referencia a la función
<code class="docutils literal notranslate"><span class="pre">display-buffer-same-window``(mostrar-búfer-misma-ventana)</span> <span class="pre">(ver</span> <span class="pre">**Funciones</span> <span class="pre">de</span> <span class="pre">Acciones</span> <span class="pre">para</span> <span class="pre">Mostrar</span> <span class="pre">Búferes**</span> <span class="pre">en</span> <span class="pre">El</span> <span class="pre">Manual</span> <span class="pre">de</span>
<span class="pre">Referencia</span> <span class="pre">de</span> <span class="pre">Emacs</span> <span class="pre">Lisp)</span> <span class="pre">a</span> <span class="pre">la</span> <span class="pre">opción</span> <span class="pre">`display-buffer-alist`</span> <span class="pre">(ver</span> <span class="pre">**Elegir</span> <span class="pre">Una</span> <span class="pre">Ventana</span> <span class="pre">para</span> <span class="pre">Mostrar**</span> <span class="pre">un</span> <span class="pre">Búfer</span> <span class="pre">en</span> <span class="pre">El</span> <span class="pre">Manual</span> <span class="pre">de</span>
<span class="pre">Referencia</span> <span class="pre">de</span> <span class="pre">Emacs</span> <span class="pre">Lisp).</span> <span class="pre">Por</span> <span class="pre">ejemplo,</span> <span class="pre">para</span> <span class="pre">mostrar</span> <span class="pre">el</span> <span class="pre">búfer</span> <span class="pre">``*scratch*</span></code> preferiblemente en la ventana seleccionada escriba:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="n">setopt</span>
<span class="n">display</span><span class="o">-</span><span class="n">buffer</span><span class="o">-</span><span class="n">alist</span>
<span class="s1">&#39;((&quot;</span><span class="se">\\</span><span class="s1">*scratch</span><span class="se">\\</span><span class="s1">*&quot; (display-buffer-same-window))))</span>
@ -354,32 +356,32 @@ debajo, pero sólo si la ventana no se ha dividido antes (para evitar una divisi
</section>
<section id="visualizacion-de-buferes-no-editables">
<h3>21.6.2 Visualización de Búferes no Editables<a class="headerlink" href="#visualizacion-de-buferes-no-editables" title="Link to this heading"></a></h3>
<p>Algunos búferes se muestran en ventanas para su lectura en lugar de para su edición. Los comandos de ayuda (ver <strong>Ayuda</strong>) suelen utilizar un búfer llamado <code class="docutils literal notranslate"><span class="pre">*Help*</span></code> para este propósito, el minibúfer de completado (ver <strong>Completado</strong>) utiliza un búfer llamado <code class="docutils literal notranslate"><span class="pre">*Completions*</span></code>, etc. Estos búferes suelen mostrarse sólo durante un corto periodo de tiempo.</p>
<p>Algunos búferes se muestran en ventanas para su lectura en lugar de para su edición. Los comandos de ayuda (ver <a class="reference internal" href="11_Ayuda.html#id1"><span class="std std-ref">11 Ayuda</span></a>) suelen utilizar un búfer llamado <code class="docutils literal notranslate"><span class="pre">*Help*</span></code> para este propósito, el minibúfer de completado (ver <a class="reference internal" href="09_ElMinibufer.html#id4"><span class="std std-ref">9.4 Completado</span></a>) utiliza un búfer llamado <code class="docutils literal notranslate"><span class="pre">*Completions*</span></code>, etc. Estos búferes suelen mostrarse sólo durante un corto periodo de tiempo.</p>
<p>Normalmente, Emacs elige la ventana para tales visualizaciones temporales mediante <code class="docutils literal notranslate"><span class="pre">display-buffer</span></code>, como se describe en la subsección anterior. El búfer <code class="docutils literal notranslate"><span class="pre">*Completions*</span></code>, por otro lado, se muestra normalmente en una ventana en la parte inferior del marco seleccionado, independientemente del número de ventanas que ya se muestren en ese marco.</p>
<p>Si prefiere que Emacs muestre un búfer temporal de una manera diferente, personalice la variable <code class="docutils literal notranslate"><span class="pre">display-buffer-alist</span></code> (vea <strong>Eligiendo una Ventana para Mostrar un Búfer</strong> en El Manual de Referencia de Emacs Lisp) apropiadamente. Por ejemplo, para mostrar <code class="docutils literal notranslate"><span class="pre">*Completions*</span></code> siempre debajo de la ventana seleccionada, use la siguiente forma en su archivo de inicialización (vea <strong>El Archivo de Inicialización de Emacs</strong>):</p>
<p>Si prefiere que Emacs muestre un búfer temporal de una manera diferente, personalice la variable <code class="docutils literal notranslate"><span class="pre">display-buffer-alist</span></code> (vea <strong>Eligiendo una Ventana para Mostrar un Búfer</strong> en El Manual de Referencia de Emacs Lisp) apropiadamente. Por ejemplo, para mostrar <code class="docutils literal notranslate"><span class="pre">*Completions*</span></code> siempre debajo de la ventana seleccionada, use la siguiente forma en su archivo de inicialización (vea <a class="reference internal" href="50_Personlzc.html#id25"><span class="std std-ref">50.4. El Archivo de Inicialización de Emacs</span></a>):</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="n">setopt</span>
<span class="n">display</span><span class="o">-</span><span class="n">buffer</span><span class="o">-</span><span class="n">alist</span>
<span class="s1">&#39;((&quot;</span><span class="se">\\</span><span class="s1">*Completions</span><span class="se">\\</span><span class="s1">*&quot; display-buffer-below-selected)))</span>
</pre></div>
</div>
<p>El búfer <code class="docutils literal notranslate"><span class="pre">*Completions*</span></code> también es especial en el sentido de que Emacs normalmente intenta hacer su ventana tan grande como sea necesario para mostrar todo su contenido. Para redimensionar las ventanas que muestran otras pantallas temporales, como, por ejemplo, el búfer <code class="docutils literal notranslate"><span class="pre">*Help*</span></code>, activa el modo menor (ver <strong>Modos Menores</strong>) <code class="docutils literal notranslate"><span class="pre">temp-buffer-resize-mode</span></code> (ver <strong>Ventanas Temporales</strong> en el Manual de Referencia de Emacs Lisp).</p>
<p>El búfer <code class="docutils literal notranslate"><span class="pre">*Completions*</span></code> también es especial en el sentido de que Emacs normalmente intenta hacer su ventana tan grande como sea necesario para mostrar todo su contenido. Para redimensionar las ventanas que muestran otras pantallas temporales, como, por ejemplo, el búfer <code class="docutils literal notranslate"><span class="pre">*Help*</span></code>, activa el modo menor (ver <a class="reference internal" href="24_ModosMayores-Y-Menores.html#id3"><span class="std std-ref">24.2 Modos Menores</span></a>) <code class="docutils literal notranslate"><span class="pre">temp-buffer-resize-mode</span></code> (ver <strong>Ventanas Temporales</strong> en el Manual de Referencia de Emacs Lisp).</p>
<p>El tamaño máximo de las ventanas redimensionadas por <code class="docutils literal notranslate"><span class="pre">temp-buffer-resize-mode</span></code> puede controlarse personalizando las opciones <code class="docutils literal notranslate"><span class="pre">temp-buffer-max-height</span></code> y <code class="docutils literal notranslate"><span class="pre">temp-buffer-max-width</span></code> (ver <strong>Ventanas Temporales</strong> en el Manual de Referencia de Emacs Lisp), y no puede exceder el tamaño del marco que las contiene.</p>
</section>
</section>
<section id="caracteristicas-convenientes-para-el-manejo-de-ventanas">
<span id="id7"></span><h2>21.7 Características Convenientes para el Manejo de Ventanas<a class="headerlink" href="#caracteristicas-convenientes-para-el-manejo-de-ventanas" title="Link to this heading"></a></h2>
<p>El modo Winner es un modo menor global que registra los cambios en la configuración de la ventana (es decir, cómo se particionan los marcos en ventanas), para que pueda deshacerlos. Puede activar este modo con <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">winner-mode</span></code>, o personalizando la variable <code class="docutils literal notranslate"><span class="pre">winner-mode</span></code>. Cuando el modo está activado, <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">c</kbd> <kbd class="kbd docutils literal notranslate"></kbd> (<code class="docutils literal notranslate"><span class="pre">``C-c</span> <span class="pre">izquierda`</span></code>, <code class="docutils literal notranslate"><span class="pre">winner-undo</span></code>) deshace el último cambio de configuración de la ventana. Si cambia de opinión mientras deshace, puede rehacer los cambios que había deshecho usando <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">c</kbd> <kbd class="kbd docutils literal notranslate"></kbd> (<code class="docutils literal notranslate"><span class="pre">C-c</span> <span class="pre">derecha</span></code>, <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">winner-redo</span></code>). Para evitar que el modo Winner vincule <code class="docutils literal notranslate"><span class="pre">C-c</span> <span class="pre">izquierda</span></code> y <code class="docutils literal notranslate"><span class="pre">C-c</span> <span class="pre">derecha</span></code>, puede personalizar la variable <code class="docutils literal notranslate"><span class="pre">winner-dont-bind-my-keys</span></code> a un valor no nulo. Por defecto, el modo Winner almacena un máximo de 200 configuraciones de ventana por frame, pero puede cambiarlo modificando la variable <code class="docutils literal notranslate"><span class="pre">winner-ring-size</span></code>. Si hay algunos búferes cuyas ventanas no desea que Winner mode restaure, añada sus nombres a la variable de lista <code class="docutils literal notranslate"><span class="pre">winner-boring-buffers</span></code> o a la <code class="docutils literal notranslate"><span class="pre">regexp</span> <span class="pre">winner-boring-buffers-regexp</span></code>.</p>
<p>El modo de seguimiento (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">follow-mode</span></code>) sincroniza varias ventanas en el mismo búfer para que siempre muestren secciones adyacentes de ese búfer. Véase <strong>Modo de Seguimiento</strong>.</p>
<p>El paquete Windmove define comandos para moverse direccionalmente entre ventanas vecinas en un marco. <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">windmove-right</span></code> selecciona la ventana inmediatamente a la derecha de la actualmente seleccionada, y de forma similar para las contrapartidas izquierda, arriba y abajo. <code class="docutils literal notranslate"><span class="pre">windmove-default-keybindings</span></code> vincula estos comandos a <kbd class="kbd docutils literal notranslate">Shift</kbd>-<kbd class="kbd docutils literal notranslate"></kbd> (<code class="docutils literal notranslate"><span class="pre">S-right</span></code>) etc.; al hacerlo se desactiva la selección de mayúsculas para esas teclas (ver <strong>Selección mediante Mayúsculas</strong>). De la misma manera que se pueden definir combinaciones de teclas para comandos que seleccionan ventanas direccionalmente, puede usar <code class="docutils literal notranslate"><span class="pre">windmove-display-default-keybindings</span></code> para definir combinaciones de teclas para comandos que especifican en qué dirección mostrar la ventana para el búfer que el siguiente comando va a mostrar. También hay <code class="docutils literal notranslate"><span class="pre">windmove-delete-default-keybindings</span></code> para definir keybindings para comandos que borran ventanas direccionalmente, y <code class="docutils literal notranslate"><span class="pre">windmove-swap-states-default-keybindings</span></code> que define combinaciones de teclas para comandos que intercambian el contenido de la ventana seleccionada con la ventana en la dirección especificada.</p>
<p>El comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">compare-windows</span></code> le permite comparar el texto mostrado en diferentes ventanas. Véase <strong>Comparación de Archivos</strong>.</p>
<p>El modo Winner es un modo menor global que registra los cambios en la configuración de la ventana (es decir, cómo se particionan los marcos en ventanas), para que pueda deshacerlos. Puede activar este modo con <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">winner-mode</span></code>, o personalizando la variable <code class="docutils literal notranslate"><span class="pre">winner-mode</span></code>. Cuando el modo está activado, <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">c</kbd> <kbd class="kbd docutils literal notranslate"></kbd> (<code class="docutils literal notranslate"><span class="pre">``C-c</span> <span class="pre">izquierda`</span></code>, <code class="docutils literal notranslate"><span class="pre">winner-undo</span></code>) deshace el último cambio de configuración de la ventana. Si cambia de opinión mientras deshace, puede rehacer los cambios que había deshecho usando <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">c</kbd> <kbd class="kbd docutils literal notranslate"></kbd> (<code class="docutils literal notranslate"><span class="pre">C-c</span> <span class="pre">derecha</span></code>, <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">winner-redo</span></code>). Para evitar que el modo Winner vincule <code class="docutils literal notranslate"><span class="pre">C-c</span> <span class="pre">izquierda</span></code> y <code class="docutils literal notranslate"><span class="pre">C-c</span> <span class="pre">derecha</span></code>, puede personalizar la variable <code class="docutils literal notranslate"><span class="pre">winner-dont-bind-my-keys</span></code> a un valor no nulo. Por defecto, el modo Winner almacena un máximo de 200 configuraciones de ventana por marco, pero puede cambiarlo modificando la variable <code class="docutils literal notranslate"><span class="pre">winner-ring-size</span></code>. Si hay algunos búferes cuyas ventanas no desea que Winner mode restaure, añada sus nombres a la variable de lista <code class="docutils literal notranslate"><span class="pre">winner-boring-buffers</span></code> o a la <code class="docutils literal notranslate"><span class="pre">regexp</span> <span class="pre">winner-boring-buffers-regexp</span></code>.</p>
<p>El modo de seguimiento (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">follow-mode</span></code>) sincroniza varias ventanas en el mismo búfer para que siempre muestren secciones adyacentes de ese búfer. Véase <a class="reference internal" href="15_ControlDisplay.html#id7"><span class="std std-ref">15.7 Modo de Seguimiento</span></a>.</p>
<p>El paquete Windmove define comandos para moverse direccionalmente entre ventanas vecinas en un marco. <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">windmove-right</span></code> selecciona la ventana inmediatamente a la derecha de la actualmente seleccionada, y de forma similar para las contrapartidas izquierda, arriba y abajo. <code class="docutils literal notranslate"><span class="pre">windmove-default-keybindings</span></code> vincula estos comandos a <kbd class="kbd docutils literal notranslate">Shift</kbd>-<kbd class="kbd docutils literal notranslate"></kbd> (<code class="docutils literal notranslate"><span class="pre">S-right</span></code>) etc.; al hacerlo se desactiva la selección de mayúsculas para esas teclas (ver <a class="reference internal" href="12_LaMarca-y-LaRegion.html#id8"><span class="std std-ref">12.6 Selección mediante Mayúsculas (Shift)</span></a>). De la misma manera que se pueden definir combinaciones de teclas para comandos que seleccionan ventanas direccionalmente, puede usar <code class="docutils literal notranslate"><span class="pre">windmove-display-default-keybindings</span></code> para definir combinaciones de teclas para comandos que especifican en qué dirección mostrar la ventana para el búfer que el siguiente comando va a mostrar. También hay <code class="docutils literal notranslate"><span class="pre">windmove-delete-default-keybindings</span></code> para definir keybindings para comandos que borran ventanas direccionalmente, y <code class="docutils literal notranslate"><span class="pre">windmove-swap-states-default-keybindings</span></code> que define combinaciones de teclas para comandos que intercambian el contenido de la ventana seleccionada con la ventana en la dirección especificada.</p>
<p>El comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">compare-windows</span></code> le permite comparar el texto mostrado en diferentes ventanas. Véase <a class="reference internal" href="19_ManejoArchivos.html#id20"><span class="std std-ref">19.9 Comparación de Archivos</span></a>.</p>
<p>El modo Desplazar Todo (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">scroll-all-mode</span></code>) es un modo menor global que hace que los comandos de desplazamiento y los comandos de movimiento de puntos se apliquen a todas las ventanas.</p>
</section>
<section id="linea-de-pestanas-de-ventana">
<span id="id8"></span><h2>21.8 Línea de Pestañas de Ventana<a class="headerlink" href="#linea-de-pestanas-de-ventana" title="Link to this heading"></a></h2>
<p>El comando <code class="docutils literal notranslate"><span class="pre">global-tab-line-mode</span></code> activa la visualización de una <em>línea de pestañas</em> en la línea superior de la pantalla de cada ventana. La línea de pestañas muestra botones especiales («pestañas») para cada búfer que se mostró en una ventana, y permite cambiar a cualquiera de estos búferes pulsando el botón correspondiente. Pulsando sobre el icono <code class="docutils literal notranslate"><span class="pre">+</span></code> se añade un nuevos búferes a la línea de pestañas de búferes de la ventana, y pulsando sobre el icono <code class="docutils literal notranslate"><span class="pre">x</span></code> de una pestaña se borra. La rueda del ratón en la línea de pestañas desplaza las pestañas horizontalmente.</p>
<p>El comando <code class="docutils literal notranslate"><span class="pre">global-tab-line-mode</span></code> activa la visualización de una <em>línea de pestañas</em> en la línea superior de la pantalla de cada ventana. La línea de pestañas muestra botones especiales («pestañas») para cada búfer que se mostró en una ventana, y permite cambiar a cualquiera de estos búferes pulsando el botón correspondiente. Pulsando sobre el icono <code class="docutils literal notranslate"><span class="pre">+</span></code> se añade un nuevo búfer a la línea de pestañas de búferes de la ventana, y pulsando sobre el icono <code class="docutils literal notranslate"><span class="pre">x</span></code> de una pestaña se borra. La rueda del ratón en la línea de pestañas desplaza las pestañas horizontalmente.</p>
<p>Seleccionar la pestaña local de la ventana anterior es lo mismo que teclear <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-x</span> <span class="pre">IZQUIERDA</span></code>, <code class="docutils literal notranslate"><span class="pre">previous-búfer</span></code>), seleccionar la pestaña siguiente es lo mismo que teclear <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-x</span> <span class="pre">DERECHA</span></code>, <code class="docutils literal notranslate"><span class="pre">next-búfer</span></code>). Ambos comandos admiten un prefijo numérico como argumento de repetición.</p>
<p>Puede personalizar la variable <code class="docutils literal notranslate"><span class="pre">tab-line-tabs-function</span></code> para definir el contenido preferido de la línea de tabulación. Por defecto, muestra todos los búferes visitados anteriormente en la ventana, como se ha descrito anteriormente. Pero también puede configurarla para que muestre una lista de búferes con el mismo modo principal que el búfer actual, o para que muestre búferes agrupados por su modo principal, donde al hacer clic en el nombre del modo en la primera pestaña se muestra una lista de todos los modos principales donde puede seleccionar otro grupo de búferes.</p>
<p>Tenga en cuenta que la línea de pestañas es diferente de la barra de pestañas (consulte <strong>Barras de Pestañas</strong>). Mientras que las pestañas de la Barra de pestañas de la parte superior de cada marco se usan para cambiar entre configuraciones de ventanas que contienen varias ventanas con búferes, las pestañas de la Línea de pestañas de la parte superior de cada ventana se usan para cambiar entre los búferes de la ventana.</p>
<p>Tenga en cuenta que la línea de pestañas es diferente de la barra de pestañas (consulte <a class="reference internal" href="22_MarcosPantallasGraf.html#id17"><span class="std std-ref">22.17 Barras de Pestañas</span></a>). Mientras que las pestañas de la Barra de pestañas de la parte superior de cada marco se usan para cambiar entre configuraciones de ventanas que contienen varias ventanas con búferes, las pestañas de la Línea de pestañas de la parte superior de cada ventana se usan para cambiar entre los búferes de la ventana.</p>
</section>
</section>

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.56
Traducción Revisón: 1.59
</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="#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>
<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="#id20"><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#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>
<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#id27"><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#id6"><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#id8"><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>
@ -276,12 +276,12 @@ elementos que estarían presentes en la barra de menús -no sólo los específic
<blockquote>
<div><p>Este menú sirve para cambiar la cara por defecto dentro del búfer de la ventana. Véase Escala de Texto.</p>
</div></blockquote>
<p>Muchas aplicaciones GUI usan <code class="docutils literal notranslate"><span class="pre">mouse-3</span></code> para mostrar menús contextuales: menús que proporcionan acceso a varios ajustes y acciones pertinentes para la localización y el contexto del clic del ratón. Si prefiere esto en Emacs a la función por defecto de <code class="docutils literal notranslate"><span class="pre">mouse-3</span></code>, que está ligada al comando <code class="docutils literal notranslate"><span class="pre">mouse-save-then-kill</span></code> (ver <a class="reference internal" href="15_ControlDisplay.html#id10"><span class="std std-ref">15.12 Escala de Texto</span></a>), puede activar el modo menor <code class="docutils literal notranslate"><span class="pre">context-menu-mode</span></code>. Entonces Emacs mostrará menús contextuales cuando pulse <code class="docutils literal notranslate"><span class="pre">ratón-3</span></code>. El contenido exacto de estos menús contextuales depende del modo mayor actual y del contenido del búfer alrededor del lugar donde pulsa el ratón. Para personalizar los contenidos del menú contextual, puede usar la variable <code class="docutils literal notranslate"><span class="pre">context-menu-functions</span></code> (ver <strong>Convenciones del Modo Mayor</strong> en el Manual de Referencia de Emacs Lisp). También puede invocar el menú contextual pulsando <kbd class="kbd docutils literal notranslate">Shift</kbd>-<kbd class="kbd docutils literal notranslate">F10</kbd> (<code class="docutils literal notranslate"><span class="pre">S-F10</span></code>).</p>
<p>Muchas aplicaciones GUI usan <code class="docutils literal notranslate"><span class="pre">mouse-3</span></code> para mostrar menús contextuales: menús que proporcionan acceso a varios ajustes y acciones pertinentes para la localización y el contexto del clic del ratón. Si prefiere esto en Emacs a la función por defecto de <code class="docutils literal notranslate"><span class="pre">mouse-3</span></code>, que está ligada al comando <code class="docutils literal notranslate"><span class="pre">mouse-save-then-kill</span></code> (ver <a class="reference internal" href="15_ControlDisplay.html#id11"><span class="std std-ref">15.12 Escala de Texto</span></a>), puede activar el modo menor <code class="docutils literal notranslate"><span class="pre">context-menu-mode</span></code>. Entonces Emacs mostrará menús contextuales cuando pulse <code class="docutils literal notranslate"><span class="pre">ratón-3</span></code>. El contenido exacto de estos menús contextuales depende del modo mayor actual y del contenido del búfer alrededor del lugar donde pulsa el ratón. Para personalizar los contenidos del menú contextual, puede usar la variable <code class="docutils literal notranslate"><span class="pre">context-menu-functions</span></code> (ver <strong>Convenciones del Modo Mayor</strong> en el Manual de Referencia de Emacs Lisp). También puede invocar el menú contextual pulsando <kbd class="kbd docutils literal notranslate">Shift</kbd>-<kbd class="kbd docutils literal notranslate">F10</kbd> (<code class="docutils literal notranslate"><span class="pre">S-F10</span></code>).</p>
</section>
<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="#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>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="#id19"><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
@ -581,7 +581,7 @@ xlsfonts -fn “<em>-</em>-<em>-</em>-<em>-</em>-<em>-</em>-<em>-</em>-<em>-c</e
<p>También puede usar el recurso X “horizontalScrollBars” para activar o desactivar las barras de desplazamiento horizontal (ver Recursos X). Para controlar la altura de la barra de desplazamiento, cambia el parámetro de marco scroll-bar-height (ver Parámetros de Marco en el Manual de Referencia de Emacs Lisp).</p>
</section>
<section id="separadores-de-ventanas">
<h2>22.13 Separadores de Ventanas<a class="headerlink" href="#separadores-de-ventanas" title="Link to this heading"></a></h2>
<span id="id13"></span><h2>22.13 Separadores de Ventanas<a class="headerlink" href="#separadores-de-ventanas" title="Link to this heading"></a></h2>
<p>En pantallas gráficas, puede usar separadores de ventanas para separarlas visualmente. Los divisores de ventanas son barras que pueden arrastrarse con el ratón, lo que permite cambiar fácilmente el tamaño de las ventanas adyacentes.</p>
<p>Para cambiar la visualización de estos separadores, use el comando M-x window-divider-mode.</p>
<p>Para personalizar dónde deben aparecer los divisores, use la opción window-divider-default-places. Su valor debe ser bottom-only (para mostrar los divisores sólo en la parte inferior de las ventanas), right-only (para mostrar los divisores sólo en la parte derecha de las ventanas) o t (para mostrarlos en la parte inferior y en la derecha).</p>
@ -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">
<span id="id13"></span><h2>22.14 Arrastrar y Soltar<a class="headerlink" href="#arrastrar-y-soltar" title="Link to this heading"></a></h2>
<span id="id14"></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="id14"></span><h2>22.15 Barras de Menús<a class="headerlink" href="#barras-de-menus" title="Link to this heading"></a></h2>
<span id="id15"></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="id15"></span><h2>22.16. Barras de Herramientas<a class="headerlink" href="#barras-de-herramientas" title="Link to this heading"></a></h2>
<span id="id16"></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="id16"></span><h2>22.17 Barras de Pestañas<a class="headerlink" href="#barras-de-pestanas" title="Link to this heading"></a></h2>
<span id="id17"></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">
<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>
<span id="id18"></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="id18"></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="id19"></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="id19"></span><h2>22.21 Terminales sin Ventana<a class="headerlink" href="#terminales-sin-ventana" title="Link to this heading"></a></h2>
<span id="id20"></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="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>
<span id="id21"></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.56
Traducción Revisón: 1.59
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -466,7 +466,7 @@ en los sistemas Microsoft.9)</p>
<p>Cuando envías un mensaje de correo (ver Enviando Correo), Emacs tiene cuatro maneras diferentes de determinar el sistema de codificación a usar para codificar el texto del mensaje. Primero prueba con el valor propio del búfer de sistema de codificación del archivo del búfer, si no es nulo. En segundo lugar, usa el valor de sendmail-coding-system, si no es nulo. En tercer lugar, usa el valor de default-sendmail-coding-system. Si estos tres valores son nulos, Emacs codifica el correo saliente usando el sistema de codificación por defecto para archivos nuevos (es decir, el valor por defecto de buffer-file-coding-system), que es controlado por la elección del entorno de lenguaje.</p>
</section>
<section id="especificar-un-sistema-de-codificacion-para-el-texto-de-un-archivo">
<h2>23.9 Especificar un Sistema de Codificación para el Texto de un Archivo<a class="headerlink" href="#especificar-un-sistema-de-codificacion-para-el-texto-de-un-archivo" title="Link to this heading"></a></h2>
<span id="id11"></span><h2>23.9 Especificar un Sistema de Codificación para el Texto de un Archivo<a class="headerlink" href="#especificar-un-sistema-de-codificacion-para-el-texto-de-un-archivo" title="Link to this heading"></a></h2>
<p>En los casos en los que Emacs no elige automáticamente el sistema de codificación adecuado para el contenido de un archivo, puede usar estos comandos para especificar uno:</p>
<dl class="simple">
<dt>C-x RET f codificación RET</dt><dd><p>Usa la codificación del sistema para guardar o volver a visitar el archivo en el búfer actual (set-buffer-file-coding-system).</p>
@ -490,7 +490,7 @@ en los sistemas Microsoft.9)</p>
<p>Si un trozo de texto ya ha sido insertado en un búfer usando un sistema de codificación incorrecto, puede rehacer la decodificación del mismo usando M-x recode-region. Esta opción le preguntará cuál es el sistema de codificación correcto y, a continuación, cuál es el sistema de codificación incorrecto que se ha usado, y realizará la conversión. Primero codifica la región usando el sistema de codificación incorrecto, y luego la decodifica de nuevo usando el sistema de codificación correcto.</p>
</section>
<section id="sistemas-de-codificacion-para-la-comunicacion-interprocesos">
<span id="id11"></span><h2>23.10 Sistemas de Codificación para la Comunicación Interprocesos<a class="headerlink" href="#sistemas-de-codificacion-para-la-comunicacion-interprocesos" title="Link to this heading"></a></h2>
<span id="id12"></span><h2>23.10 Sistemas de Codificación para la Comunicación Interprocesos<a class="headerlink" href="#sistemas-de-codificacion-para-la-comunicacion-interprocesos" title="Link to this heading"></a></h2>
<p>Esta sección explica cómo especificar sistemas de codificación para usar en la comunicación con otros procesos.</p>
<dl class="simple">
<dt>C-x RET x coding RET</dt><dd><p>Usa la codificación del sistema para transferir selecciones a y desde otras aplicaciones gráficas (set-selection-coding-system).</p>
@ -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">
<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>
<span id="id13"></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="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>
<span id="id14"></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="#id14"><span class="problematic" id="id15">*</span></a>-fontset-standard</p>
<div><p>-<em>-fixed-medium-r-normal-</em>-16-<em>-</em>-<em>-</em>-<a href="#id15"><span class="problematic" id="id16">*</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="#id16"><span class="problematic" id="id17">*</span></a>-fontset-24</p>
<div><p>-<em>-fixed-medium-r-normal-</em>-24-<em>-</em>-<em>-</em>-<a href="#id17"><span class="problematic" id="id18">*</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="#id18"><span class="problematic" id="id19">*</span></a>-ISO8859-1</p>
<div><p>-<em>-fixed-medium-r-normal-</em>-24-<a href="#id19"><span class="problematic" id="id20">*</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="#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>
<dt>Emacs.Fontset-0: -<em>-fixed-medium-r-normal-</em>-24-<em>-</em>-<em>-</em>-<a href="#id21"><span class="problematic" id="id22">*</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="id22"></span><h2>23.20 Edición Bidireccional<a class="headerlink" href="#edicion-bidireccional" title="Link to this heading"></a></h2>
<span id="id23"></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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -524,7 +524,7 @@ varias líneas.</p>
<p>La variable outline-default-state controla qué encabezados serán visibles después de activar el modo Outline. Si no es nula, algunos encabezados se muestran inicialmente. Si es igual a un número, sólo se muestran los encabezados hasta el nivel correspondiente. Si es igual a outline-show-all, se muestra todo el texto del búfer. Si es igual a outline-show-only-headings, sólo se muestran los encabezados, sea cual sea su nivel. Si es igual a una función lambda o a un nombre de función, se espera que esta función conmute la visibilidad de los encabezados, y será llamada sin argumentos una vez activado el modo.</p>
</section>
<section id="visualizacion-de-un-esquema-en-varias-vistas">
<h3>26.9.5 Visualización de un Esquema en Varias Vistas<a class="headerlink" href="#visualizacion-de-un-esquema-en-varias-vistas" title="Link to this heading"></a></h3>
<span id="id16"></span><h3>26.9.5 Visualización de un Esquema en Varias Vistas<a class="headerlink" href="#visualizacion-de-un-esquema-en-varias-vistas" title="Link to this heading"></a></h3>
<p>Puede visualizar dos vistas de un mismo esquema al mismo tiempo, en ventanas diferentes. Para ello, puede crear un búfer indirecto utilizando M-x make-indirect-buffer. El primer argumento de este comando es el nombre del búfer de contorno existente, y su segundo argumento es el nombre a usar para el nuevo búfer indirecto. Véase Búferes Indirectos.</p>
<p>Una vez que el búfer indirecto existe, puedes mostrarlo en una ventana de forma normal, con C-x 4 b u otros comandos de Emacs. Los comandos del modo Esquema para mostrar y ocultar partes del texto operan en cada búfer independientemente; como resultado, cada búfer puede tener su propia vista. Si desea más de dos vistas en el mismo esquema, puede crear búferes indirectos adicionales.</p>
</section>
@ -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="#id16"><span class="problematic" id="id17">``</span></a>Esto es una cita””.
<a href="#id17"><span class="problematic" id="id18">``</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="#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>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="#id19"><span class="problematic" id="id20">``</span></a>” después de un espacio en blanco o una llave abierta, “»” después de una barra invertida y “””” después de cualquier otro carácter.</p>
<p>Como excepción especial, si teclea « cuando el texto anterior al punto es “``” o “”””, Emacs sustituye el texto anterior por un único carácter “»”. Por lo tanto, puede escribir «» para insertar “»”, si alguna vez lo necesita. (También puede usar C-q « para insertar este carácter).</p>
<p>En el modo TeX, “$” tiene un código sintáctico especial que intenta comprender la forma en que coinciden los delimitadores del modo matemático de TeX. Cuando se inserta un “$” para salir del modo matemático, se muestra durante un segundo la posición del “$” coincidente que entró en el modo matemático. Esta es la misma función que muestra la llave abierta que coincide con una llave cerrada que se inserta. Sin embargo, no hay forma de saber si un “$” entra en modo matemático o sale de él; así que cuando se inserta un “$” que entra en modo matemático, la posición del “$” anterior se muestra como si coincidiera, aunque en realidad no estén relacionados.</p>
<p>TeX usa las llaves como delimitadores que deben coincidir. Algunos Usuarios prefieren mantener las llaves compensadas en todo momento, en lugar de insertarlas individualmente. Usa C-c { (tex-insert-braces) para insertar un par de llaves. Deja un punto entre las dos llaves para que pueda insertar el texto que pertenece dentro. Después, usa el comando C-c } (up-list, lista ascendente) para avanzar más allá de la llave de cierre. También puede invocar C-c { después de marcar algún texto: entonces el comando encierra el texto marcado entre llaves.</p>
@ -746,7 +746,7 @@ etiqueta de cierre.</p>
<p>Puede usar el modo SGML, menos potente, para editar XML, ya que XML es un subconjunto estricto de SGML. Para activar el modo SGML en un búfer existente, escriba M-x sgml-mode. Al activar el modo SGML, Emacs examina el búfer para determinar si es XML; si es así, establece la variable sgml-xml-mode en un valor no nulo. Esto hace que los comandos de inserción de etiquetas del modo SGML, descritos anteriormente, inserten siempre también etiquetas de cierre explícitas.</p>
</section>
<section id="modo-nroff">
<span id="id20"></span><h2>26.13 Modo Nroff<a class="headerlink" href="#modo-nroff" title="Link to this heading"></a></h2>
<span id="id21"></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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -196,7 +196,7 @@ C-x d ~/foo/</em>/<a href="#id2"><span class="problematic" id="id3">*</span></a
<p>Algunos comandos de navegación adicionales están disponibles cuando el búfer Dired incluye varios directorios. Véase Desplazamiento a través de Subdirectorios.</p>
</section>
<section id="borrar-archivos-con-dired">
<h2>31.3 Borrar Archivos con Dired<a class="headerlink" href="#borrar-archivos-con-dired" title="Link to this heading"></a></h2>
<span id="id8"></span><h2>31.3 Borrar Archivos con Dired<a class="headerlink" href="#borrar-archivos-con-dired" title="Link to this heading"></a></h2>
<p>Uno de los usos más frecuentes de Dired es marcar primero los archivos para borrarlos y luego borrar los archivos marcados.</p>
<dl class="simple">
<dt>d</dt><dd><p>Marca este archivo para su eliminación (dired-flag-file-deletion).</p>
@ -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">
<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>
<span id="id9"></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="id9"></span><h2>31.7 Operar con Archivos<a class="headerlink" href="#operar-con-archivos" title="Link to this heading"></a></h2>
<span id="id10"></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="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>
<span id="id11"></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="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>
<span id="id12"></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">
<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>
<span id="id13"></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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@ -194,7 +194,7 @@
<p>Emacs tiene muchos ajustes que puede cambiar. La mayoría de los ajustes son variables personalizables (ver Variables), que también se llaman opciones de Usuario. Hay un gran número de variables personalizables, que controlan numerosos aspectos del comportamiento de Emacs; las variables documentadas en este manual están listadas en Índice de variables. Una clase separada de configuraciones son las caras, que determinan las fuentes, colores y otros atributos del texto (ver Caras del Texto).</p>
<p>Para examinar y modificar los ajustes (tanto variables como caras), escriba M-x customize. Esto crea un búfer de personalización, que le permite navegar a través de una lista lógicamente organizada de ajustes, editar y establecer sus valores, y guardarlos permanentemente.</p>
<section id="grupos-de-personalizacion">
<h3>50.1.1 Grupos de Personalización<a class="headerlink" href="#grupos-de-personalizacion" title="Link to this heading"></a></h3>
<span id="id3"></span><h3>50.1.1 Grupos de Personalización<a class="headerlink" href="#grupos-de-personalizacion" title="Link to this heading"></a></h3>
<p>Los ajustes de personalización se organizan en grupos específicos. Estos grupos se agrupan en otros mayores, hasta llegar a un grupo maestro llamado Emacs.</p>
<p>M-x customize crea un búfer de personalización que muestra el grupo Emacs de nivel superior. Se parece a esto, en parte:</p>
<blockquote>
@ -372,7 +372,7 @@ valor personalizado, puede volver a obtener el valor descartado con esta operaci
</div></blockquote>
</section>
<section id="personalizacion-de-caras">
<span id="id3"></span><h3>50.1.5. Personalización de Caras<a class="headerlink" href="#personalizacion-de-caras" title="Link to this heading"></a></h3>
<span id="id4"></span><h3>50.1.5. Personalización de Caras<a class="headerlink" href="#personalizacion-de-caras" title="Link to this heading"></a></h3>
<p>Puede personalizar las caras (ver Caras de Texto), que determinan cómo Emacs muestra los diferentes tipos de texto. Los grupos de personalización pueden contener tanto variables como caras.</p>
<p>Por ejemplo, en los modos de lenguaje de programación, los comentarios del código fuente se muestran con font-lock-comment-face (ver Modo Font Lock). En un búfer de personalización, esa cara aparece así, después de hacer clic en el enlace “[Show All Atributes”] (Mostrar todos los atributos)</p>
<blockquote>
@ -428,7 +428,7 @@ Cara del modo Font Lock utilizada para resaltar comentarios.
<p>Una cara puede especificar diferentes apariencias para diferentes tipos de pantallas. Por ejemplo, una cara puede hacer que el texto sea rojo en una pantalla en color, pero utilizar una fuente en negrita en una pantalla monocromo. Para especificar varias apariencias para una cara, seleccione “For All Kinkds Displays” (Para todo tipo de pantallas) en el menú que aparece al invocar “[State]”.</p>
</section>
<section id="personalizacion-de-elementos-concretos">
<span id="id4"></span><h3>50.1.6 Personalización de elementos concretos<a class="headerlink" href="#personalizacion-de-elementos-concretos" title="Link to this heading"></a></h3>
<span id="id5"></span><h3>50.1.6 Personalización de elementos concretos<a class="headerlink" href="#personalizacion-de-elementos-concretos" title="Link to this heading"></a></h3>
<p>M-x customize-option RET opción RET
M-x customize-variable RET opción RET</p>
<blockquote>
@ -482,7 +482,7 @@ M-x customize-variable RET opción RET</p>
</section>
</section>
<section id="variables">
<span id="id5"></span><h2>50.2 Variables<a class="headerlink" href="#variables" title="Link to this heading"></a></h2>
<span id="id6"></span><h2>50.2 Variables<a class="headerlink" href="#variables" title="Link to this heading"></a></h2>
<p>Una variable es un símbolo Lisp que tiene un valor. El nombre del símbolo también se denomina nombre de la variable. Un nombre de variable puede contener cualquier carácter que pueda aparecer en un fichero, pero la mayoría de los nombres de variable consisten en palabras ordinarias separadas por guiones.</p>
<p>El nombre de la variable sirve como descripción compacta de su función. La mayoría de las variables también tienen una cadena de documentación, que describe cuál es el propósito de la variable, qué tipo de valor debe tener y cómo se utilizará el valor. Puede ver esta documentación utilizando el comando de ayuda C-h v (describe-variable). Véase Examinar y Configurar Variables.</p>
<p>Emacs usa muchas variables Lisp para el mantenimiento de registros internos, pero las variables más interesantes para un Usuario no programador son aquellas destinadas a que Ellos las cambien, estas se llaman variables personalizables u opciones de Usuario (ver Interfaz de Personalización Fácil). En las siguientes secciones, describiremos otros aspectos de las variables de Emacs, como por ejemplo cómo configurarlas fuera de Personalizar.</p>
@ -545,7 +545,7 @@ Interactivamente, puedes establecer el valor local del buffer usando C-x f.</p>
<p>Funciona igual que setq, pero si la variable tiene alguna función setter especial, se ejecutará automáticamente al usar setopt. También puede utilizar setopt en otras variables no personalizables, pero es menos eficiente que utilizar setq.</p>
</section>
<section id="ganchos-hooks">
<span id="id6"></span><h3>50.2.2 Ganchos (Hooks)<a class="headerlink" href="#ganchos-hooks" title="Link to this heading"></a></h3>
<span id="id7"></span><h3>50.2.2 Ganchos (Hooks)<a class="headerlink" href="#ganchos-hooks" title="Link to this heading"></a></h3>
<p>Los ganchos son un mecanismo importante para personalizar Emacs. Un gancho es una variable Lisp que contiene una lista de funciones, para ser llamadas en alguna ocasión bien definida. (Las funciones individuales de la lista se denominan funciones gancho del gancho. Por ejemplo, el gancho kill-emacs-hook se ejecuta justo antes de salir de Emacs (ver Salir de Emacs).</p>
<p>La mayoría de los ganchos son ganchos normales. Esto significa que cuando Emacs ejecuta el gancho, llama a cada función del gancho sucesivamente, sin argumentos. Hemos hecho un esfuerzo para mantener la mayoría de los ganchos normales, para que pueda usarlos de forma uniforme. Cada variable cuyo nombre termina en “-hook” es un gancho normal.</p>
<p>Algunos ganchos son anómalos. Sus nombres terminan en “-functions”, en lugar de “-hook” (algunos códigos antiguos también pueden usar el sufijo obsoleto “-hooks”). Lo que hace que estos ganchos sean no habituales es la forma en que se llama a sus funciones: quizás se les dan argumentos, o quizás los valores que devuelven se utilizan de alguna forma. Por ejemplo, find-file-not-found-functions es anormal porque tan pronto como una función hook devuelve un valor no nulo, el resto no son llamadas en absoluto (ver Visitar Archivos). La documentación de cada variable gancho anormal explica cómo se utilizan sus funciones.</p>
@ -586,7 +586,7 @@ lambda () (c-add-style «my-style» my-c-style t)))</p>
<p>Emacs Lisp permite que cualquier variable (con algunas excepciones) tenga cualquier tipo de valor. Sin embargo, muchas variables sólo tienen sentido si se les asignan valores de un determinado tipo. Por ejemplo, sólo los números son valores significativos para kill-ring-max, que especifica la longitud máxima del kill ring (ver Tirar de Anillos de Muerte Anteriores); si se le da a kill-ring-max un valor de cadena, comandos como C-y (yank) indicarán un error. Por otro lado, algunas variables no se preocupan por el tipo; por ejemplo, si una variable tiene un efecto para valores nulos y otro efecto para valores no nulos, entonces cualquier valor que no sea el símbolo nulo induce el segundo efecto, independientemente de su tipo (por convención, normalmente usamos el valor t, un símbolo que significa “true” (verdadero), para especificar un valor no nulo). Si establece una variable utilizando el búfer de personalización, no debe preocuparse por darle un tipo no válido: el búfer de personalización normalmente sólo permite introducir valores significativos. En caso de duda, utilice C-h v (describe-variable) para comprobar la cadena de documentación de la variable y ver qué tipo de valor espera (consulte Examinar y Configurar Variables).</p>
</section>
<section id="variables-locales">
<span id="id7"></span><h3>50.2.3 Variables Locales<a class="headerlink" href="#variables-locales" title="Link to this heading"></a></h3>
<span id="id8"></span><h3>50.2.3 Variables Locales<a class="headerlink" href="#variables-locales" title="Link to this heading"></a></h3>
<dl class="simple">
<dt>M-x make-local-variable RET var RET</dt><dd><p>Hace que la variable var tenga un valor local en el búfer actual.</p>
</dd>
@ -612,7 +612,7 @@ lambda () (c-add-style «my-style» my-c-style t)))</p>
</div></blockquote>
</section>
<section id="variables-locales-en-archivos">
<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>
<span id="id9"></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="#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>Aparte de usar una línea “-<a href="#id10"><span class="problematic" id="id11">*</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="#id11"><span class="problematic" id="id12">*</span></a>/</p>
/</em> End: <a href="#id12"><span class="problematic" id="id13">*</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="#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>
<p>Al igual que con la línea “-<a href="#id14"><span class="problematic" id="id15">*</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="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>
<span id="id16"></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="id16"></span><h3>50.3.1 Mapas de teclas<a class="headerlink" href="#mapas-de-teclas" title="Link to this heading"></a></h3>
<span id="id17"></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="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>
<span id="id18"></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="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>
<span id="id19"></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="id19"></span><h3>50.3.7. Teclas Modificadoras<a class="headerlink" href="#teclas-modificadoras" title="Link to this heading"></a></h3>
<span id="id20"></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="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>
<span id="id21"></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="id21"></span><h3>50.3.11 Deshabilitar Comandos<a class="headerlink" href="#deshabilitar-comandos" title="Link to this heading"></a></h3>
<span id="id22"></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="#id22"><span class="problematic" id="id23">`</span></a>kill-region”.n»)</p>
<dt>(put “delete-region “disabled</dt><dd><p>«En su lugar es mejor usar <a href="#id23"><span class="problematic" id="id24">`</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="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>
<span id="id25"></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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">

View File

@ -354,6 +354,8 @@ La búsqueda incremental no usa, estrictamente hablando, el minibúfer. Por lo t
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 ``command-history``.
.. _9.7:
9.7 Ingresar Contraseñas
------------------------

View File

@ -178,6 +178,8 @@ Tecleando :kbd:`q` (``q``, ``View-quit``) se desactiva el modo Vista, y se vuelv
``M-x view-buffer`` pide un buffer Emacs existente, cambia a él, y activa el modo Vista. ``M-x view-file`` pide un archivo y lo visita con el modo Vista activado.
.. _15.7:
15.7 Modo de Seguimiento
------------------------

View File

@ -38,7 +38,7 @@
GNU/Emacs 29.1
</a>
<div class="version">
Traducción Revisón: 1.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</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.56
Traducción Revisón: 1.59
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">

Binary file not shown.

View File

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