533 lines
No EOL
111 KiB
HTML
533 lines
No EOL
111 KiB
HTML
<!DOCTYPE html>
|
||
<html class="writer-html5" lang="es" data-content_root="../">
|
||
<head>
|
||
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||
<title>13 Matar y Mover Texto — documentación de GNU/Emacs 29.1 - 0.01</title>
|
||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=80d5e7a1" />
|
||
<link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=19f00094" />
|
||
|
||
|
||
<!--[if lt IE 9]>
|
||
<script src="../_static/js/html5shiv.min.js"></script>
|
||
<![endif]-->
|
||
|
||
<script src="../_static/jquery.js?v=5d32c60e"></script>
|
||
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
||
<script src="../_static/documentation_options.js?v=d7315b5f"></script>
|
||
<script src="../_static/doctools.js?v=888ff710"></script>
|
||
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
|
||
<script src="../_static/translations.js?v=efdbd0b9"></script>
|
||
<script src="../_static/js/theme.js"></script>
|
||
<link rel="index" title="Índice" href="../genindex.html" />
|
||
<link rel="search" title="Búsqueda" href="../search.html" />
|
||
<link rel="next" title="14 Registros" href="14_Registros.html" />
|
||
<link rel="prev" title="12 La marca y la región" href="12_LaMarca-y-LaRegion.html" />
|
||
</head>
|
||
|
||
<body class="wy-body-for-nav">
|
||
<div class="wy-grid-for-nav">
|
||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||
<div class="wy-side-scroll">
|
||
<div class="wy-side-nav-search" >
|
||
|
||
|
||
|
||
<a href="../index.html" class="icon icon-home">
|
||
GNU/Emacs 29.1
|
||
</a>
|
||
<div class="version">
|
||
Traducción Revisón: 1.45
|
||
</div>
|
||
<div role="search">
|
||
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
|
||
<input type="text" name="q" placeholder="Buscar documentos" aria-label="Buscar documentos" />
|
||
<input type="hidden" name="check_keywords" value="yes" />
|
||
<input type="hidden" name="area" value="default" />
|
||
</form>
|
||
</div>
|
||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||
<ul class="current">
|
||
<li class="toctree-l1"><a class="reference internal" href="../distribucion.html">Distribución</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../introduccion.html">Introducción</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../01_OrgPant.html">1 La organización de la pantalla</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../02_TipoEntrUsuario.html">2 Tipos de Entrada del Usuario</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../03_Teclas.html">3 Teclas</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../04_EntrDelRaton.html">4 Entrada del Ratón</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../05_TeclasComands.html">5 Teclas y Comandos</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../06_EntrarEnEmacs.html">6 Entrar en Emacs</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../07_SalirDeEmacs.html">7 Cómo Salir de Emacs</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="08_ComBasicEdic.html">8 Comandos Básicos de Edición</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="09_ElMinibufer.html">9 El Minibúfer</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="10_EjecutarComndPorNombre.html">10 Ejecutar Comandos por Nombre</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="11_Ayuda.html">11 Ayuda</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="12_LaMarca-y-LaRegion.html">12 La marca y la región</a></li>
|
||
<li class="toctree-l1 current"><a class="current reference internal" href="#">13 Matar y Mover Texto</a><ul>
|
||
<li class="toctree-l2"><a class="reference internal" href="#borrar-y-matar">13.1 Borrar y Matar</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="#borrado">13.1.1 Borrado</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#matar-por-lineas">13.1.2 Matar por Líneas</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#otros-comandos-de-muerte">13.1.3 Otros Comandos de Muerte</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#opciones-de-matado">13.1.4 Opciones de Matado</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#tirar-de-un-texto">13.2 Tirar de un Texto</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="#anillo-de-muertes">13.2.1 Anillo de Muertes</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#borrar-muertes-anteriores">13.2.2 Borrar Muertes Anteriores</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#anadir-muertes">13.2.3 Añadir Muertes</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#operaciones-de-cortar-y-pegar-en-entornos-graficos-de-escritorio">13.3 Operaciones de «cortar y pegar» en Entornos Gráficos de Escritorio</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="#utilizar-el-portapapeles">13.3.1 Utilizar el Portapapeles</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#cortar-y-pegar-con-otras-aplicaciones-de-ventana">13.3.2 Cortar y Pegar con Otras Aplicaciones de Ventana</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#seleccion-secundaria">13.3.3 Selección Secundaria</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#acumular-texto">13.4 Acumular Texto</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#rectangulos">13.5 Rectángulos</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#enlaces-cua">13.6 Enlaces CUA</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l1"><a class="reference internal" href="14_Registros.html">14 Registros</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="15_ControlDisplay.html">15 Controlando la Pantalla</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="16_BusqReemp.html">16 Búsqueda y Reemplazo</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="17_CmdCorrecErrsTipogr.html">17 Comandos para Corregir Errores Tipográficos</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="18_MacrosDeTeclado.html">18 Macros de Teclado</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="19_ManejoArchivos.html">19 Manejo de Archivos</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="20_UsarVariosBuferes.html">20 Uso de Varios Búferes</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="21_VariasVentanas.html">21 Varias Ventanas</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="22_MarcosPantallasGraf.html">22 Marcos y Pantallas Gráficas</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="23_SoporteJuegoCaracIntern.html">23 Soporte de Juego de Caracteres Internacional</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="24_ModosMayores-Y-Menores.html">24 Modos Mayores y Menores</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="25_Indentacion.html">25 Indentación</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="26_ComandsLengsHuma.html">26 Comandos para Lenguajes Humanos</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="27_EdDePrograms.html">27 Edición de Programas</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="28_CompProbProg.html">28 Compilar y Probar Programas</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="29_ManyProgrsGrands.html">29 Mantenimiento de Programas Grandes</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="30_Abreviaturas.html">30 Abreviaturas</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="31_DiredEditDirect.html">31 Dired, el Editor de Directorios</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="32_CalendAgnda.html">32 El Calendario y la Agenda</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="33_EnvioDeCorreo.html">33 Envío de Correo</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="34_LectCorreoRmail.html">34 Lectura del Correo con Rmail</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="35_EmailNotcUsnt.html">35 Correo Electrónico y Noticias de Usenet con Gnus</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="36_SegHost.html">36 Seguridad del Host (Anfitrión)</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="37_SegEnRed.html">37 Seguridad en Red</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="38_VisualizDeDoc.html">38 Visualización de Documentos</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="39_ComndShellEmacs.html">39 Ejecución de comandos de shell desde Emacs</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="40_EmacsComoServ.html">40 Usar Emacs Como Servidor</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="41_ImprCopiasPapl.html">41 Impresión de Copias en Papel</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="42_OrdenarTexto.html">42 Ordenar texto</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="43_EdicImag.html">43 Edición de Imágenes</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="44_EdicArchBinarios.html">44 Edición de Archivos Binarios</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="45_GuardSesiEnEmacs.html">45 Guardar Sesiones de Emacs</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="46_NivelsEdicRecursv.html">46 Niveles de Edición Recursiva</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="47_FuncHiperv-Y-NavWeb.html">47 Funciones de Hiperenlace y Navegación web</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="48_Juegos-Y-Otrs.html">48 Juegos y Otras Diversiones</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="49_PaqEmacsLisp.html">49 Paquetes Emacs Lisp</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="50_Personlzc.html">50 Personalización</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="51-SalirAbortar.html">51 Salir y Abortar</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="52_LidiarProblEmacs.html">52 Tratando con Problemas de Emacs</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="53_InformFallos.html">53 Informar de Fallos</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="54_ContrDesEmacs.html">54 Contribuir al desarrollo de Emacs</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="55_ComoObtnrAyuda.html">55 Cómo obtener ayuda con GNU Emacs</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="ApendiceC.html">Apéndice C Argumentos de línea de órdenes para la invocación de Emacs</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="ApendiceD.html">Apéndice D Opciones y Recursos de X</a></li>
|
||
</ul>
|
||
|
||
</div>
|
||
</div>
|
||
</nav>
|
||
|
||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||
<a href="../index.html">GNU/Emacs 29.1</a>
|
||
</nav>
|
||
|
||
<div class="wy-nav-content">
|
||
<div class="rst-content">
|
||
<div role="navigation" aria-label="Page navigation">
|
||
<ul class="wy-breadcrumbs">
|
||
<li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li>
|
||
<li class="breadcrumb-item active">13 Matar y Mover Texto</li>
|
||
<li class="wy-breadcrumbs-aside">
|
||
<a href="../_sources/CapConSecciones/13_MatarMoverTxt.rst.txt" rel="nofollow"> Ver código fuente de la página</a>
|
||
</li>
|
||
</ul>
|
||
<hr/>
|
||
</div>
|
||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||
<div itemprop="articleBody">
|
||
|
||
<section id="matar-y-mover-texto">
|
||
<span id="id1"></span><h1>13 Matar y Mover Texto<a class="headerlink" href="#matar-y-mover-texto" title="Link to this heading"></a></h1>
|
||
<p>En Emacs, <em>kill</em> (matar) significa borrar texto y copiarlo en el <em>anillo de muertes*(kill ring). *Yank</em> (desplazar, tirar de o copiar desde) significa traer texto del anillo de muertes de vuelta al búfer. (Algunas aplicaciones utilizan los términos «cortar» y «pegar» para operaciones similares). El anillo de muertes se llama así porque se puede visualizar como un conjunto de bloques de texto dispuestos en un anillo, al que se puede acceder en orden cíclico. Véase <a class="reference internal" href="#id5"><span class="std std-ref">13.2.1 Anillo de Muertes</span></a>.</p>
|
||
<p>Los comandos kill (matar) y yanking (tirar de) son la forma más común de mover o copiar texto dentro de Emacs. Es muy versátil, porque hay comandos para matar muchos tipos diferentes de unidades sintácticas.</p>
|
||
<section id="borrar-y-matar">
|
||
<span id="id2"></span><h2>13.1 Borrar y Matar<a class="headerlink" href="#borrar-y-matar" title="Link to this heading"></a></h2>
|
||
<p>La mayoría de las órdenes que borran texto del búfer lo guardan en el anillo de muertes (ver <a class="reference internal" href="#id5"><span class="std std-ref">13.2.1 Anillo de Muertes</span></a>). Se conocen como comandos <em>kill</em>, y sus nombres normalmente contienen la palabra <code class="docutils literal notranslate"><span class="pre">kill</span></code> (por ejemplo, <code class="docutils literal notranslate"><span class="pre">kill-line</span></code>). El kill ring (anillo de muertes) almacena varias muertes recientes, no sólo el último, por lo que matar es una operación muy segura: no tiene que preocuparse mucho por perder texto que haya matado previamente. El anillo de muertes es compartido por todos los búferes, por lo que el texto que es matado en un búfer puede ser arrastrado a otro búfer.</p>
|
||
<p>Cuando se usa <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>, <code class="docutils literal notranslate"><span class="pre">undo</span></code>, deshacer) para deshacer un comando de eliminación (ver <a class="reference internal" href="17_CmdCorrecErrsTipogr.html#id2"><span class="std std-ref">17.1 Deshacer</span></a>), el texto eliminado vuelve al búfer, pero no se elimina del anillo de muertes.</p>
|
||
<p>En las pantallas gráficas, al matar el texto también se copia en el portapapeles del sistema. Ver <a class="reference internal" href="#id8"><span class="std std-ref">13.3 Operaciones de «cortar y pegar» en Entornos Gráficos de Escritorio</span></a>.</p>
|
||
<p>Los comandos que borran el texto pero no lo guardan en el anillo de muertes se conocen como comandos de borrado; sus nombres suelen contener la palabra <code class="docutils literal notranslate"><span class="pre">delete</span></code> (borrar). Entre ellos se incluyen <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">d</kbd> (<code class="docutils literal notranslate"><span class="pre">C-d</span></code>, <code class="docutils literal notranslate"><span class="pre">delete-char</span></code>) y <kbd class="kbd docutils literal notranslate">DEL</kbd> (<code class="docutils literal notranslate"><span class="pre">DEL</span></code>, <code class="docutils literal notranslate"><span class="pre">delete-backward-char</span></code>), que borran sólo un carácter cada vez, y los comandos que borran sólo espacios o nuevas líneas. Los comandos que pueden borrar cantidades significativas de datos no triviales generalmente realizan una operación de borrado.</p>
|
||
<p>También puede utilizar el ratón para matar y tirar. Vea <a class="reference internal" href="#id8"><span class="std std-ref">13.3 Operaciones de «cortar y pegar» en Entornos Gráficos de Escritorio</span></a>.</p>
|
||
<section id="borrado">
|
||
<span id="id3"></span><h3>13.1.1 Borrado<a class="headerlink" href="#borrado" title="Link to this heading"></a></h3>
|
||
<p><em>Borrado*</em> significa borrar texto y no guardarlo en el anillo de muertes. En su mayor parte, los comandos de Emacs que borran texto son los que borran sólo un carácter o sólo espacios en blanco.</p>
|
||
<div class="line-block">
|
||
<div class="line"><code class="docutils literal notranslate"><span class="pre">DEL</span></code></div>
|
||
<div class="line"><code class="docutils literal notranslate"><span class="pre">BACKSPACE</span></code></div>
|
||
</div>
|
||
<blockquote>
|
||
<div><p>Borra el carácter anterior, o el texto de la región si está activa (<code class="docutils literal notranslate"><span class="pre">delete-backward-char</span></code>).</p>
|
||
</div></blockquote>
|
||
<p><code class="docutils literal notranslate"><span class="pre">Delete</span></code></p>
|
||
<blockquote>
|
||
<div><p>Borra el siguiente carácter, o el texto de la región si está activa (<code class="docutils literal notranslate"><span class="pre">delete-forward-char</span></code>).</p>
|
||
</div></blockquote>
|
||
<p><kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">d</kbd> (<code class="docutils literal notranslate"><span class="pre">C-d</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Borra el siguiente carácter (<code class="docutils literal notranslate"><span class="pre">delete-char</span></code>).</p>
|
||
</div></blockquote>
|
||
<p><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">\</kbd> (<code class="docutils literal notranslate"><span class="pre">M-\</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Borra los espacios y tabuladores alrededor del punto (<code class="docutils literal notranslate"><span class="pre">delete-horizontal-point</span></code>).</p>
|
||
</div></blockquote>
|
||
<p><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>)</p>
|
||
<blockquote>
|
||
<div><p>Borra los espacios y tabuladores alrededor del punto, dejando un solo espacio (<code class="docutils literal notranslate"><span class="pre">just-one-space</span></code>).</p>
|
||
</div></blockquote>
|
||
<p><kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">o</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-o</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Borra las líneas en blanco alrededor de la línea actual (<code class="docutils literal notranslate"><span class="pre">delete-blank-lines</span></code>).</p>
|
||
</div></blockquote>
|
||
<p><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">^</kbd> (<code class="docutils literal notranslate"><span class="pre">M-^</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Une dos líneas eliminando la nueva línea intermedia, junto con cualquier sangría que la siga (<code class="docutils literal notranslate"><span class="pre">delete-indentation</span></code>).</p>
|
||
</div></blockquote>
|
||
<p>Ya hemos descrito los comandos básicos de borrado <code class="docutils literal notranslate"><span class="pre">DEL</span></code> (<code class="docutils literal notranslate"><span class="pre">delete-backward-char</span></code>), <code class="docutils literal notranslate"><span class="pre">delete</span></code> (<code class="docutils literal notranslate"><span class="pre">delete-forward-char</span></code>) y <code class="docutils literal notranslate"><span class="pre">C-d</span></code> (<code class="docutils literal notranslate"><span class="pre">delete-char</span></code>). Véase <a class="reference internal" href="08_ComBasicEdic.html#id4"><span class="std std-ref">8.3 Borrar Texto</span></a>. Con un argumento numérico, borran el número especificado de caracteres. Si el argumento numérico se omite o es uno, <code class="docutils literal notranslate"><span class="pre">DEL</span></code> y <code class="docutils literal notranslate"><span class="pre">delete</span></code> borran todo el texto de la región si está activa (véase <a class="reference internal" href="12_LaMarca-y-LaRegion.html#id6"><span class="std std-ref">12.3 Operar en la Región</span></a>).</p>
|
||
<p>Los otros comandos de borrado son los que borran sólo caracteres de espacio en blanco: espacios, tabuladores y nuevas líneas. <code class="docutils literal notranslate"><span class="pre">M-\</span></code> (<code class="docutils literal notranslate"><span class="pre">delete-horizontal-space</span></code>, borrar-espacio-horizontal) borra todos los espacios y caracteres de tabulación antes y después del punto. Con un argumento de prefijo, sólo borra los espacios y tabuladores antes del punto.</p>
|
||
<p><code class="docutils literal notranslate"><span class="pre">just-one-space</span></code> (sólo-un-espacio) hace lo mismo pero deja un único espacio antes del punto, independientemente del número de espacios que existieran previamente (incluso si antes no había ninguno). Con un argumento numérico <em>n</em>, deja <em>n</em> espacios antes del punto si <em>n</em> es positivo; si <em>n</em> es negativo, borra las nuevas líneas además de los espacios y tabuladores, dejando <em>-n</em> espacios antes del punto.</p>
|
||
<p>El comando <code class="docutils literal notranslate"><span class="pre">cycle-spacing</span></code> (<code class="docutils literal notranslate"><span class="pre">M-SPC</span></code>) actúa como una versión más flexible de <code class="docutils literal notranslate"><span class="pre">just-one-space</span></code>. Realiza diferentes acciones de limpieza de espacio definidas por <code class="docutils literal notranslate"><span class="pre">cycle-spacing-actions</span></code>, de forma cíclica, si se llama repetidamente en sucesión.</p>
|
||
<p><code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-o</span></code> (<code class="docutils literal notranslate"><span class="pre">delete-blank-lines</span></code>, borrar-líneas-en-blanco) borra todas las líneas en blanco después de la línea actual. Si la línea actual está en blanco, borra también todas las líneas en blanco anteriores a la línea actual (dejando una línea en blanco, la línea actual). En una sola línea en blanco, borra esa línea.</p>
|
||
<p><code class="docutils literal notranslate"><span class="pre">M-^</span></code> (<code class="docutils literal notranslate"><span class="pre">delete-indentation</span></code>, eliminar-indentación) une la línea actual y la línea anterior, suprimiendo una nueva línea y todos los espacios circundantes, dejando normalmente un solo espacio. Véase <a class="reference internal" href="25_Indentacion.html#id1"><span class="std std-ref">25 Indentación</span></a>.</p>
|
||
<p>El comando <code class="docutils literal notranslate"><span class="pre">delete-duplicate-lines</span></code> (borrar-línas-duplicadas) busca en la región líneas idénticas, y elimina todas menos una copia de cada una. Normalmente mantiene la primera instancia de cada línea repetida, pero con un argumento de prefijo <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>) mantiene la última. Con un argumento de prefijo <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> (<code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">C-u</span></code>), sólo busca líneas idénticas adyacentes. Este es un modo de operación más eficiente, útil cuando las líneas ya han sido ordenadas. Con un argumento de prefijo <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> (<code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">C-u</span> <span class="pre">C-u</span></code>), conserva las líneas en blanco repetidas.</p>
|
||
</section>
|
||
<section id="matar-por-lineas">
|
||
<h3>13.1.2 Matar por Líneas<a class="headerlink" href="#matar-por-lineas" title="Link to this heading"></a></h3>
|
||
<p><kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">k</kbd> (<code class="docutils literal notranslate"><span class="pre">C-k</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Mata el resto de la línea, o una o más líneas (<code class="docutils literal notranslate"><span class="pre">kill-line</span></code>).</p>
|
||
</div></blockquote>
|
||
<p><kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">Shift</kbd>-<kbd class="kbd docutils literal notranslate">BACKSPACE</kbd> (<code class="docutils literal notranslate"><span class="pre">C-S-backspace</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Mata toda una línea a la vez (<code class="docutils literal notranslate"><span class="pre">kill-whole-line</span></code>).</p>
|
||
</div></blockquote>
|
||
<p>La orden de matar más sencilla es <code class="docutils literal notranslate"><span class="pre">C-k</span></code> (<code class="docutils literal notranslate"><span class="pre">kill-line</span></code>). Si se usa al final de una línea, elimina el carácter de nueva línea con el que termina la línea, fusionando la línea siguiente con la actual (de este modo, se elimina por completo una línea en blanco). De lo contrario, <code class="docutils literal notranslate"><span class="pre">C-k</span></code> elimina todo el texto desde el punto hasta el final de la línea; si el punto estaba originalmente al principio de la línea, la deja en blanco.</p>
|
||
<p>Los espacios y tabuladores al final de la línea se ignoran al decidir qué caso se aplica. Siempre que el punto esté después del último carácter de la línea que no sea un espacio en blanco, puede estar seguro de que <code class="docutils literal notranslate"><span class="pre">C-k</span></code> eliminará la nueva línea. Para eliminar toda una línea que no esté en blanco, vaya al principio y escriba <code class="docutils literal notranslate"><span class="pre">C-k</span></code> dos veces.</p>
|
||
<p>En este contexto, «línea» significa una línea de texto lógica, no una línea de pantalla (ver <a class="reference internal" href="08_ComBasicEdic.html#id7"><span class="std std-ref">8.8 Líneas de continuación</span></a>).</p>
|
||
<p>Cuando a <code class="docutils literal notranslate"><span class="pre">C-k</span></code> se le da un argumento positivo <em>n</em>, elimina <em>n</em> líneas y las nuevas líneas que las siguen (el texto en la línea actual antes del punto no se elimina). Con un argumento negativo <em>-n</em>, elimina n líneas anteriores a la línea actual, junto con el texto de la línea actual anterior al punto. <code class="docutils literal notranslate"><span class="pre">C-k</span></code> con un argumento cero elimina el texto anterior al punto en la línea actual.</p>
|
||
<p>Si la variable <code class="docutils literal notranslate"><span class="pre">kill-whole-line</span></code> es distinta de <code class="docutils literal notranslate"><span class="pre">nil</span></code>, <code class="docutils literal notranslate"><span class="pre">C-k</span></code> al principio de una línea elimina toda la línea, incluida la nueva línea siguiente. Esta variable es normalmente nula.</p>
|
||
<p><code class="docutils literal notranslate"><span class="pre">C-S-backspace</span></code> (<code class="docutils literal notranslate"><span class="pre">kill-whole-line</span></code>) elimina una línea completa incluyendo su nueva línea, independientemente de la posición del punto dentro de la línea. Tenga en cuenta que muchos terminales de texto le impedirán escribir la secuencia de teclas <code class="docutils literal notranslate"><span class="pre">C-S-backspace</span></code>.</p>
|
||
</section>
|
||
<section id="otros-comandos-de-muerte">
|
||
<h3>13.1.3 Otros Comandos de Muerte<a class="headerlink" href="#otros-comandos-de-muerte" title="Link to this heading"></a></h3>
|
||
<p><kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">w</kbd> (<code class="docutils literal notranslate"><span class="pre">C-w</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Mata la región (<code class="docutils literal notranslate"><span class="pre">kill-region</span></code>).</p>
|
||
</div></blockquote>
|
||
<p><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">w</kbd> (<code class="docutils literal notranslate"><span class="pre">M-w</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Copia la región en el anillo de muertes (<code class="docutils literal notranslate"><span class="pre">kill-ring-save</span></code>).</p>
|
||
</div></blockquote>
|
||
<p><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">d</kbd> (<code class="docutils literal notranslate"><span class="pre">M-d</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Mata la siguiente palara (<code class="docutils literal notranslate"><span class="pre">kill-word</span></code>). Vea <a class="reference internal" href="26_ComandsLengsHuma.html#id2"><span class="std std-ref">26.1 Palabras</span></a>.</p>
|
||
</div></blockquote>
|
||
<p><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">BACKSPACE</kbd> (<code class="docutils literal notranslate"><span class="pre">M-Del</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Mata una palabra hacia atrás (<code class="docutils literal notranslate"><span class="pre">backward-kill-word</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">BACKSPACE</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">DEL</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Mata hasta el principio de la frase (<code class="docutils literal notranslate"><span class="pre">backward-kill-sentence</span></code>). Vea <a class="reference internal" href="26_ComandsLengsHuma.html#id3"><span class="std std-ref">26.2 Frases</span></a>.</p>
|
||
</div></blockquote>
|
||
<p><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">k</kbd> (<code class="docutils literal notranslate"><span class="pre">M-k</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Mata hasta final de la frase (<code class="docutils literal notranslate"><span class="pre">kill-sentence</span></code>).</p>
|
||
</div></blockquote>
|
||
<p><kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">k</kbd> (<code class="docutils literal notranslate"><span class="pre">C-M-k</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Mata la siguiente expresión equilibrada (<code class="docutils literal notranslate"><span class="pre">kill-sexp</span></code>). Véase <a class="reference internal" href="27_EdDePrograms.html#id5"><span class="std std-ref">27.4.1 Expresiones con Paréntesis Equilibrados</span></a>.</p>
|
||
</div></blockquote>
|
||
<p><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">z</kbd> <em>caracter</em> (<code class="docutils literal notranslate"><span class="pre">M-z</span></code> <em>caracter</em>)</p>
|
||
<blockquote>
|
||
<div><p>Mata hasta la siguiente aparición de <em>caracter</em> (<code class="docutils literal notranslate"><span class="pre">zap-to-char</span></code>).</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">zap-up-to-char</span></code> <em>caracter</em> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">zap-up-to-char</span></code> <em>caracter</em>)</p>
|
||
<p>20 Mata hasta, pero sin incluir, la siguiente aparición de <em>caracter</em>.</p>
|
||
<p>Uno de los comandos de eliminación más usados es <code class="docutils literal notranslate"><span class="pre">C-w</span></code> (<code class="docutils literal notranslate"><span class="pre">kill-region</span></code>), que elimina el texto de la región (véase <a class="reference internal" href="12_LaMarca-y-LaRegion.html#id1"><span class="std std-ref">12 La marca y la región</span></a>). Del mismo modo, <code class="docutils literal notranslate"><span class="pre">M-w</span></code> (<code class="docutils literal notranslate"><span class="pre">kill-ring-save</span></code>) copia el texto de la región en el anillo de muertes sin eliminarlo del búfer. Si la marca está inactiva cuando teclea <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">w</kbd> (<code class="docutils literal notranslate"><span class="pre">C-w</span></code>) o <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">w</kbd> (<code class="docutils literal notranslate"><span class="pre">M-w</span></code>), el comando actúa sobre el texto entre el punto y donde puso la marca por última vez (ver <a class="reference internal" href="12_LaMarca-y-LaRegion.html#id6"><span class="std std-ref">12.3 Operar en la Región</span></a>).</p>
|
||
<p>Emacs también proporciona comandos para matar unidades sintácticas específicas: palabras, con <code class="docutils literal notranslate"><span class="pre">M-DEL</span></code> y <code class="docutils literal notranslate"><span class="pre">M-d</span></code> (vea <a class="reference internal" href="26_ComandsLengsHuma.html#id2"><span class="std std-ref">26.1 Palabras</span></a>); expresiones compuestas, con <code class="docutils literal notranslate"><span class="pre">C-M-k</span></code> (vea <a class="reference internal" href="27_EdDePrograms.html#id5"><span class="std std-ref">27.4.1 Expresiones con Paréntesis Equilibrados</span></a>); y frases, con <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">DEL</span></code> y <code class="docutils literal notranslate"><span class="pre">M-k</span></code> (vea <a class="reference internal" href="26_ComandsLengsHuma.html#id3"><span class="std std-ref">26.2 Frases</span></a>).</p>
|
||
<p>El comando <code class="docutils literal notranslate"><span class="pre">M-z</span></code> (<code class="docutils literal notranslate"><span class="pre">zap-to-char</span></code>) combina matar con buscar: lee un carácter y mata desde el punto hasta (e incluyendo) la siguiente aparición de ese carácter en el búfer. Un argumento numérico actúa como contador de repeticiones; un argumento negativo significa buscar hacia atrás y matar el texto anterior al punto. Se mantiene un historial de los caracteres usados anteriormente, al que se puede acceder mediante las teclas <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">p</kbd> / <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">n</kbd> (<code class="docutils literal notranslate"><span class="pre">M-p</span></code>/<code class="docutils literal notranslate"><span class="pre">M-n</span></code>). Esto es útil sobre todo si el carácter que se va a utilizar tiene que introducirse mediante un método de entrada complicado. Un comando similar <code class="docutils literal notranslate"><span class="pre">zap-up-to-char</span></code> mata desde el punto hasta, pero sin incluir, la siguiente aparición de un carácter, con un argumento numérico que actúa como contador de repeticiones.</p>
|
||
</section>
|
||
<section id="opciones-de-matado">
|
||
<h3>13.1.4 Opciones de Matado<a class="headerlink" href="#opciones-de-matado" title="Link to this heading"></a></h3>
|
||
<p>Algunos búferes especializados contienen <em>texto de sólo lectura</em>, que no puede ser modificado y por lo tanto no puede ser eliminado. Los comandos de matar funcionan de forma especial en un búfer de sólo lectura: se mueven sobre el texto y lo copian al anillo de muertes, sin borrarlo realmente del búfer. Normalmente, también pitan y muestran un mensaje de error cuando esto ocurre. Pero si establece la variable <code class="docutils literal notranslate"><span class="pre">kill-read-only-ok</span></code> a un valor no nulo, sólo imprimen un mensaje en el área de eco para explicar por qué el texto no ha sido borrado.</p>
|
||
<p>Antes de guardar lo que se ha matado en el anillo de muertes, puede transformar la cadena usando <code class="docutils literal notranslate"><span class="pre">kill-transform-function</span></code>. Se llama con la cadena a matar, y debería devolver la cadena que quiere que se guarde. También puede devolver <code class="docutils literal notranslate"><span class="pre">nil</span></code>, en cuyo caso la cadena no se guardará en el anillo de muertes. Por ejemplo, si nunca quiere guardar una cadena con espacio en blanco puro en el anillo de muertes, puede decir:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="n">setq</span> <span class="n">kill</span><span class="o">-</span><span class="n">transform</span><span class="o">-</span><span class="n">function</span>
|
||
<span class="p">(</span><span class="k">lambda</span> <span class="p">(</span><span class="n">string</span><span class="p">)</span>
|
||
<span class="p">(</span><span class="ow">and</span> <span class="p">(</span><span class="ow">not</span> <span class="p">(</span><span class="n">string</span><span class="o">-</span><span class="n">blank</span><span class="o">-</span><span class="n">p</span> <span class="n">string</span><span class="p">))</span>
|
||
<span class="n">string</span><span class="p">)))</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Si cambia la variable <code class="docutils literal notranslate"><span class="pre">kill-do-not-save-duplicates</span></code> a un valor no nulo, las muertes subsiguientes idénticas producen una única entrada de <code class="docutils literal notranslate"><span class="pre">kill-ring</span></code>, sin duplicación.</p>
|
||
</section>
|
||
</section>
|
||
<section id="tirar-de-un-texto">
|
||
<span id="id4"></span><h2>13.2 Tirar de un Texto<a class="headerlink" href="#tirar-de-un-texto" title="Link to this heading"></a></h2>
|
||
<p><em>yanking</em> significa reinsertar un texto previamente eliminado. La forma habitual de mover o copiar un texto es eliminarlo y arrastrarlo a otro lugar.</p>
|
||
<p><kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">y</kbd> (<code class="docutils literal notranslate"><span class="pre">C-y</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Tira (jala) en el punto de la última muerte en el búfer (<code class="docutils literal notranslate"><span class="pre">yank</span></code>).</p>
|
||
</div></blockquote>
|
||
<p><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">y</kbd> (<code class="docutils literal notranslate"><span class="pre">M-y</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Puede sustituir el texto que acaba de eliminar por un lote anterior de texto eliminado (<code class="docutils literal notranslate"><span class="pre">yank-pop</span></code>), o permitir seleccionar de la lista de lotes de texto eliminados anteriormente. Véase <a class="reference internal" href="#id6"><span class="std std-ref">13.2.2 Borrar Muertes Anteriores</span></a>.</p>
|
||
</div></blockquote>
|
||
<p><kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">w</kbd> (<code class="docutils literal notranslate"><span class="pre">C-M-w</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Hace que la siguiente orden, si es una orden de muertes, se añada a la muerte anterior (<code class="docutils literal notranslate"><span class="pre">append-next-kill</span></code>). Véase <a class="reference internal" href="#id7"><span class="std std-ref">13.2.3 Añadir Muertes</span></a>.</p>
|
||
</div></blockquote>
|
||
<p>El comando básico para copiar (extraer o tirar) desde el anillo de muertes (yanking) es <code class="docutils literal notranslate"><span class="pre">C-y</span></code> (<code class="docutils literal notranslate"><span class="pre">yank</span></code>). Inserta la muerte más reciente, dejando el cursor al final del texto insertado. También coloca la marca al principio del texto insertado, sin activar la marca; esto le permite saltar fácilmente a esa posición, si lo desea, 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">SPACE</kbd> (<code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">C-SPC</span></code>) (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>Con un argumento de prefijo simple (<code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">C-y</span></code>), el comando deja el cursor delante del texto insertado y activa la marca al final. El uso de cualquier otro argumento prefijo especifica una marca anterior; por ejemplo, <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">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">y</kbd> (<code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">4</span> <span class="pre">C-y</span></code>) reinserta la cuarta marca más reciente. Véase <a class="reference internal" href="#id6"><span class="std std-ref">13.2.2 Borrar Muertes Anteriores</span></a>.</p>
|
||
<p>En las pantallas gráficas y en las pantallas con modo texto, <code class="docutils literal notranslate"><span class="pre">C-y</span></code> comprueba primero si otra aplicación ha colocado algún texto en el portapapeles del sistema más recientemente que la última vez que Emacs lo mató. Si es así, inserta el texto del portapapeles en su lugar. Así, Emacs trata efectivamente las operaciones de «cortar» o «copiar» del portapapeles realizadas en otras aplicaciones como muertes de Emacs, excepto que no se registran en el anillo de muertes. Ver <a class="reference internal" href="#id8"><span class="std std-ref">13.3 Operaciones de «cortar y pegar» en Entornos Gráficos de Escritorio</span></a>, para más detalles.</p>
|
||
<section id="anillo-de-muertes">
|
||
<span id="id5"></span><h3>13.2.1 Anillo de Muertes<a class="headerlink" href="#anillo-de-muertes" title="Link to this heading"></a></h3>
|
||
<p>El <em>anillo de muertes</em> (kill ring) es una lista de bloques de texto que han sido eliminados previamente. Sólo hay un kill ring, compartido por todos los búferes, por lo que puede matar texto en un búfer y arrancarlo en otro búfer. Esta es la forma habitual de mover texto de un búfer a otro. (Hay otros métodos: por ejemplo, puede almacenar el texto en un registro; vea <a class="reference internal" href="14_Registros.html#id1"><span class="std std-ref">14 Registros</span></a>. Vea <a class="reference internal" href="#id12"><span class="std std-ref">13.4 Acumular Texto</span></a>, para algunas otras formas de mover texto).</p>
|
||
<p>El número máximo de entradas en el anillo de muertes se controla mediante la variable <code class="docutils literal notranslate"><span class="pre">kill-ring-max</span></code>. Por defecto es 120. Si hace un nuevo kill (si mata texto) cuando se ha alcanzado este límite, Emacs hace espacio borrando la entrada más antigua en dicho anillo.</p>
|
||
<p>El contenido actual del anillo de muertes se almacena en una variable llamada <code class="docutils literal notranslate"><span class="pre">kill-ring</span></code>; puede ver el contenido completo del anillo de muertes con <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">h</kbd> <kbd class="kbd docutils literal notranslate">v</kbd> <code class="docutils literal notranslate"><span class="pre">kill-ring</span></code> (<code class="docutils literal notranslate"><span class="pre">C-h</span> <span class="pre">v</span> <span class="pre">kill-ring</span></code>).</p>
|
||
</section>
|
||
<section id="borrar-muertes-anteriores">
|
||
<span id="id6"></span><h3>13.2.2 Borrar Muertes Anteriores<a class="headerlink" href="#borrar-muertes-anteriores" title="Link to this heading"></a></h3>
|
||
<p>Como se explica en <a class="reference internal" href="#id4"><span class="std std-ref">13.2 Tirar de un Texto</span></a>, puede usar un argumento numérico a <code class="docutils literal notranslate"><span class="pre">C-y</span></code> para sacar texto que ya no es la muerte más reciente. Esto es útil si recuerda qué entrada del anillo de muertes quiere. Si no, puede usar el comando <code class="docutils literal notranslate"><span class="pre">M-y</span></code> (<code class="docutils literal notranslate"><span class="pre">yank-pop</span></code>) para recorrer las posibilidades o seleccionar uno de las muertes anteriores.</p>
|
||
<p>Si el comando anterior era una orden de jalar (un comando yank), <code class="docutils literal notranslate"><span class="pre">M-y</span></code> toma el texto que fue jalado (que fue empujado al anillo de muertes) y lo reemplaza con el texto de una muerte anterior. Así, para recuperar el texto de la penúltima muerte, primero use <code class="docutils literal notranslate"><span class="pre">C-y</span></code> para jalar de la última muerte, y luego use <code class="docutils literal notranslate"><span class="pre">M-y</span></code> para reemplazarlo con la muerte anterior. Esto sólo funciona después de un <code class="docutils literal notranslate"><span class="pre">C-y</span> <span class="pre">u</span></code> otro <code class="docutils literal notranslate"><span class="pre">M-y</span></code>. (Si <code class="docutils literal notranslate"><span class="pre">M-y</span></code> se invoca después de algún otro comando, funciona de forma diferente, ver más abajo).</p>
|
||
<p>Puede entender el modo de funcionamiento de <code class="docutils literal notranslate"><span class="pre">M-y</span></code> en términos de un puntero al último tirón (lo último que se ha llevado al anillo de muertes) que apunta a una entrada en el dicho anillo. Cada vez que se mata, el puntero del último tirón se mueve a la entrada recién hecha en la parte delantera del anillo. <code class="docutils literal notranslate"><span class="pre">C-y</span></code> elimina la entrada a la que apunta el puntero del último tirón. <code class="docutils literal notranslate"><span class="pre">M-y</span></code> después de un <code class="docutils literal notranslate"><span class="pre">C-y</span></code> u otro <code class="docutils literal notranslate"><span class="pre">M-y</span></code> mueve el puntero del último yank (tirón) a la entrada anterior, y el texto en el búfer cambia para coincidir. Suficientes comandos <code class="docutils literal notranslate"><span class="pre">M-y</span></code> uno tras otro pueden mover el puntero a cualquier entrada en el anillo, por lo que puede obtener cualquier entrada en el búfer. Finalmente, el puntero llega al final del anillo; el siguiente <code class="docutils literal notranslate"><span class="pre">M-y</span></code> vuelve a la primera entrada.</p>
|
||
<p><code class="docutils literal notranslate"><span class="pre">M-y</span></code> mueve el puntero de la última entrada en el anillo, pero no cambia el orden de las entradas en él, que siempre va desde la muerte más reciente al principio hasta la más antigua que aún se recuerde.</p>
|
||
<p>Cuando se utiliza después de <code class="docutils literal notranslate"><span class="pre">C-y</span></code> o <code class="docutils literal notranslate"><span class="pre">M-y</span></code>, <code class="docutils literal notranslate"><span class="pre">M-y</span></code> puede recibir un argumento numérico, que le indica cuántas entradas debe avanzar el puntero a partir del último texto que se ha tirado o jalado desde el anillo de muertes (desde el último yank). Un argumento negativo mueve el puntero hacia la parte delantera del anillo; desde el frente del anillo, se mueve alrededor de la última entrada y continúa hacia adelante desde allí.</p>
|
||
<p>Una vez que el texto que está buscando es traído al búfer, puede dejar de ejecutar comandos <code class="docutils literal notranslate"><span class="pre">M-y</span></code> y el último texto jalado permanecerá allí. Es sólo una copia de la entrada del anillo de matar, por lo que editarlo en el búfer no cambia lo que hay en el anillo. Mientras no se realice una nueva muerte, el puntero de la última permanece en el mismo lugar en el anillo de muertes, por lo que repetir <code class="docutils literal notranslate"><span class="pre">C-y</span></code> arrancará (jalará, tirará) otra copia de la misma muerte anterior.</p>
|
||
<p>Cuando se llama a <code class="docutils literal notranslate"><span class="pre">C-y</span></code> con un argumento numérico, también se establece el puntero del último tirón a la entrada que se tira.</p>
|
||
<p>También puede invocar <code class="docutils literal notranslate"><span class="pre">M-y</span></code> después de un comando que no sea un comando yank. En ese caso, <code class="docutils literal notranslate"><span class="pre">M-y</span></code> le pregunta en el minibúfer por uno de las muertes anteriores. Puede usar los comandos de historial del minibúfer (ver <a class="reference internal" href="09_ElMinibufer.html#id8"><span class="std std-ref">9.5 Historial del Minibúfer</span></a>) para navegar o buscar entre las entradas del anillo de muertes hasta que encuentre la que desea reinsertar. O puede usar los comandos de completado (ver <a class="reference internal" href="09_ElMinibufer.html#id5"><span class="std std-ref">9.4.2 Comandos de Completado</span></a>) para completar una entrada de la lista de entradas del anillo de muerte o hacer aparecer el búfer <code class="docutils literal notranslate"><span class="pre">Completions</span></code> (Completado) con las entradas candidatas entre las que puede elegir. Después de seleccionar la entrada del anillo de muertes, puede editarla opcionalmente en el minibúfer. Por último, escriba <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">RET</span></code>) para salir del minibúfer e insertar el texto del anillo de muertes seleccionado. Como en el caso de <code class="docutils literal notranslate"><span class="pre">M-y</span></code> después de otro comando yank, el puntero del último yank (tirón) queda apuntando al texto que acaba de extraer o jalar, ya sea uno de las muertes anteriores o una entrada del anillo de muertes que editó antes de insertarlo. (En este último caso, la entrada editada se añade al principio del anillo de muertes). Así que aquí, también, tecleando <code class="docutils literal notranslate"><span class="pre">C-y</span></code> sacará otra copia del texto que acaba de insertar.</p>
|
||
<p>Cuando se invoca con un argumento de prefijo simple <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">u</kbd> <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">y</kbd> (<code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">M-y</span></code>) después de un comando que no es un comando yank, <code class="docutils literal notranslate"><span class="pre">M-y</span></code> deja el cursor delante del texto insertado, y pone la marca al final, como hace <code class="docutils literal notranslate"><span class="pre">C-y</span></code>.</p>
|
||
</section>
|
||
<section id="anadir-muertes">
|
||
<span id="id7"></span><h3>13.2.3 Añadir Muertes<a class="headerlink" href="#anadir-muertes" title="Link to this heading"></a></h3>
|
||
<p>Normalmente, cada orden de matar texto introduce una nueva entrada en el anillo de muertes. Sin embargo, dos o más órdenes de matar seguidas combinan su texto en una sola entrada, de forma que ejecutar una sola combinación de teclas <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">y</kbd> (<code class="docutils literal notranslate"><span class="pre">C-y</span></code>) arranca todo el texto como una unidad, tal y como estaba antes de ser matado.</p>
|
||
<p>Por lo tanto, si quiere matar el texto como una unidad, no es necesario que lo mate todo de una sola vez; puede seguir matando línea tras línea, o palabra tras palabra, hasta que lo haya matado todo, y aún podrá recuperarlo todo de una sola vez.</p>
|
||
<p>Los comandos que matan hacia delante desde un punto añaden texto al final del texto matado anteriormente. Los comandos que matan hacia atrás desde el punto añaden texto al principio. De esta forma, cualquier secuencia de comandos de eliminación hacia delante y hacia atrás pone todo el texto eliminado en una sola entrada sin reordenar. Los argumentos numéricos no rompen la secuencia de eliminación. Por ejemplo, supongamos que el búfer contiene este texto:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>Esta es una línea ∗de texto de ejemplo.
|
||
</pre></div>
|
||
</div>
|
||
<p>con el punto mostrado por <code class="docutils literal notranslate"><span class="pre">∗</span></code>. Si escribe <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">d</kbd> <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">BACKSPACE</kbd> <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">d</kbd> <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">BACKSPACE</kbd> (<code class="docutils literal notranslate"><span class="pre">M-d</span> <span class="pre">M-DEL</span> <span class="pre">M-d</span> <span class="pre">M-DEL</span></code>), matando alternativamente hacia adelante y hacia atrás, terminará con <code class="docutils literal notranslate"><span class="pre">una</span> <span class="pre">línea</span> <span class="pre">de</span> <span class="pre">ejemplo</span></code> como una entrada en el anillo de matar, y <code class="docutils literal notranslate"><span class="pre">Esto</span> <span class="pre">es</span>  <span class="pre">texto.</span></code> en el búfer. (Observe el doble espacio entre <code class="docutils literal notranslate"><span class="pre">es</span></code> y <code class="docutils literal notranslate"><span class="pre">texto</span></code>, que puede limpiar con <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>) o <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">q</kbd> (<code class="docutils literal notranslate"><span class="pre">M-q</span></code>)).</p>
|
||
<p>Otra forma de matar el mismo texto es retroceder dos palabras con <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">b</kbd> <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> <span class="pre">M-b</span></code>), y luego matar las cuatro palabras hacia adelante con <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">d</kbd> (<code class="docutils literal notranslate"><span class="pre">C-u</span> <span class="pre">M-d</span></code>). Esto produce exactamente los mismos resultados en el búfer y en el kill ring. <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">f</kbd> <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">f</kbd> <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">BACKSPACE</kbd> (<code class="docutils literal notranslate"><span class="pre">M-f</span> <span class="pre">M-f</span> <span class="pre">C-u</span> <span class="pre">M-DEL</span></code>) mata el mismo texto, yendo todo hacia atrás; una vez más, el resultado es el mismo. El texto en la entrada del kill ring siempre tiene el mismo orden que tenía en el búfer antes de que lo matara.</p>
|
||
<p>Si una orden de matar está separada de la última orden de matar por otras órdenes (no sólo argumentos numéricos), inicia una nueva entrada en el anillo de muertes. Pero puede forzarla a combinarse con el último texto matado, tecleando justo antes <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">w</kbd> (<code class="docutils literal notranslate"><span class="pre">C-M-w</span></code>, <code class="docutils literal notranslate"><span class="pre">append-next-kill</span></code>). <code class="docutils literal notranslate"><span class="pre">C-M-w</span></code> le dice al comando que le sigue, si es un comando de eliminación, que trate la eliminación como parte de la secuencia de eliminaciones anteriores. Como de costumbre, la orden de matar se añade al texto matado anteriormente si la orden mata hacia delante, y se antepone si la orden mata hacia atrás. De este modo, puede matar varios trozos de texto separados y acumularlos para volver a arrancarlos en un solo lugar.</p>
|
||
<p>Un comando de matar que sigue a <code class="docutils literal notranslate"><span class="pre">M-w</span></code> (<code class="docutils literal notranslate"><span class="pre">kill-ring-save</span></code>) no se añade al texto que <code class="docutils literal notranslate"><span class="pre">M-w</span></code> copió en el anillo de muertes.</p>
|
||
</section>
|
||
</section>
|
||
<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>
|
||
<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>
|
||
<p>Cuando mata algún texto con un comando como <code class="docutils literal notranslate"><span class="pre">C-w</span></code> (<code class="docutils literal notranslate"><span class="pre">kill-region</span></code>), o lo copia al anillo de muertes con un comando como <code class="docutils literal notranslate"><span class="pre">M-w</span></code> (<code class="docutils literal notranslate"><span class="pre">kill-ring-save</span></code>), ese texto también va al portapapeles.</p>
|
||
<p>Cuando un comando kill de Emacs pone texto en el portapapeles, normalmente se pierde el contenido del portapapeles existente. Opcionalmente, Emacs puede guardar el contenido existente del portapapeles en el kill ring (anillo de muertes), evitando que pierda los datos anteriores del portapapeles. Si <code class="docutils literal notranslate"><span class="pre">save-interprogram-paste-before-kill</span></code> se ha establecido en un número, entonces los datos se copian si son más pequeños (en caracteres) que este número. Si esta variable tiene cualquier otro valor que no sea nulo, los datos se copian siempre, con el riesgo de un alto consumo de memoria si los datos resultan ser grandes.</p>
|
||
<p>Los comandos Yank (los comandos de <em>tirar</em> o <em>jalar</em> texto), como <code class="docutils literal notranslate"><span class="pre">C-y</span></code> (<code class="docutils literal notranslate"><span class="pre">yank</span></code>), también usan el portapapeles. Si otra aplicación «posee» el portapapeles, es decir, si cortó o copió texto allí más recientemente que su último comando de eliminación en Emacs, entonces lo elimina del portapapeles en lugar del anillo de muertes.</p>
|
||
<p>Normalmente, girar el anillo de muertes con <code class="docutils literal notranslate"><span class="pre">M-y</span></code> (<code class="docutils literal notranslate"><span class="pre">yank-pop</span></code>) no altera el portapapeles. Sin embargo, si cambia <code class="docutils literal notranslate"><span class="pre">yank-pop-change-selection</span></code> a <code class="docutils literal notranslate"><span class="pre">t</span></code>, entonces <code class="docutils literal notranslate"><span class="pre">M-y</span></code> guarda el nuevo yank en el portapapeles.</p>
|
||
<p>Para evitar que los comandos kill y yank accedan al portapapeles, cambie la variable <code class="docutils literal notranslate"><span class="pre">select-enable-clipboard</span> <span class="pre">a</span> <span class="pre">nil</span></code>.</p>
|
||
<p>Los programas pueden poner en el portapapeles otras cosas además de texto plano. Por ejemplo, un navegador web normalmente le permitirá elegir «Copiar imagen» en las imágenes, y esta imagen se pondrá en el portapapeles. En plataformas capaces, Emacs puede extraer estos objetos con el comando <code class="docutils literal notranslate"><span class="pre">yank-media</span></code>, pero sólo en modos que lo soporten (ver <strong>Tirando de Archivos Media</strong> en el Manual de Referencia de Emacs Lisp).</p>
|
||
<p>Muchos entornos de escritorio X soportan una característica llamada <em>gestor del portapapeles</em>. Si sale de Emacs mientras es el actual «propietario» de los datos del portapapeles, y hay un gestor de portapapeles en ejecución, Emacs transfiere los datos del portapapeles al gestor de portapapeles para que no se pierdan. En algunas circunstancias, esto puede causar un retraso al salir del Editor; si desea evitar que Emacs transfiera datos al gestor del portapapeles, cambie la variable <code class="docutils literal notranslate"><span class="pre">x-select-enable-clipboard-manager</span></code> a <code class="docutils literal notranslate"><span class="pre">nil</span></code>.</p>
|
||
<p>Dado que las cadenas que contienen bytes NUL suelen truncarse al pasarlas por el portapapeles, Emacs sustituye dichos caracteres por «0» antes de transferirlos al portapapeles del sistema.</p>
|
||
<p>Antes de Emacs 24, los comandos kill y yank usaban la selección primaria (ver <a class="reference internal" href="#id10"><span class="std std-ref">13.3.2 Cortar y Pegar con Otras Aplicaciones de Ventana</span></a>), no el portapapeles. Si prefiere este comportamiento, cambie <code class="docutils literal notranslate"><span class="pre">select-enable-clipboard</span></code> a <code class="docutils literal notranslate"><span class="pre">nil</span></code>, <code class="docutils literal notranslate"><span class="pre">select-enable-primary</span></code> a <code class="docutils literal notranslate"><span class="pre">t</span></code>, y <code class="docutils literal notranslate"><span class="pre">mouse-drag-copy-region</span></code> a <code class="docutils literal notranslate"><span class="pre">t</span></code>. En este caso, puede usar los siguientes comandos para actuar explícitamente sobre el portapapeles: <code class="docutils literal notranslate"><span class="pre">clipboard-kill-region</span></code> mata la región y la guarda en el portapapeles; <code class="docutils literal notranslate"><span class="pre">clipboard-kill-ring-save</span></code> copia la región al anillo de muertes y la guarda en el portapapeles; y <code class="docutils literal notranslate"><span class="pre">clipboard-yank</span></code> tira del contenido del portapapeles en el punto.</p>
|
||
</section>
|
||
<section id="cortar-y-pegar-con-otras-aplicaciones-de-ventana">
|
||
<span id="id10"></span><h3>13.3.2 Cortar y Pegar con Otras Aplicaciones de Ventana<a class="headerlink" href="#cortar-y-pegar-con-otras-aplicaciones-de-ventana" title="Link to this heading"></a></h3>
|
||
<p>Bajo el Sistema X Window, PGTK y Haiku, existe una <em>selección primaria</em> que contiene el último tramo de texto seleccionado en una aplicación X (normalmente arrastrando el ratón). Normalmente, este texto puede insertarse en otras aplicaciones X mediante clics de <code class="docutils literal notranslate"><span class="pre">ratón-2</span></code>. La selección primaria está separada del portapapeles. Su contenido es más frágil; se sobrescribe cada vez que se selecciona texto con el ratón, mientras que el portapapeles sólo se sobrescribe mediante comandos explícitos de cortar o copiar.</p>
|
||
<p>En X, siempre que la región esté activa (véase <a class="reference internal" href="12_LaMarca-y-LaRegion.html#id1"><span class="std std-ref">12 La marca y la región</span></a>), el texto de la región se guarda en la selección primaria. Esto se aplica independientemente de si la región se hizo arrastrando o haciendo clic con el ratón (véase <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>), o mediante comandos del teclado (por ejemplo, escribiendo <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">SPACE</kbd> (<code class="docutils literal notranslate"><span class="pre">C-SPC</span></code>) y moviendo el 20punto; véase <a class="reference internal" href="12_LaMarca-y-LaRegion.html#id2"><span class="std std-ref">12.1 Fijar la Marca</span></a>).</p>
|
||
<p>Si cambia la <code class="docutils literal notranslate"><span class="pre">variable</span> <span class="pre">select-active-regions</span></code> a <code class="docutils literal notranslate"><span class="pre">only</span></code>, Emacs guarda sólo las regiones temporalmente activas en la selección primaria, es decir, aquellas hechas con el ratón o con selección mediante mayúsculas (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>). Si cambia <code class="docutils literal notranslate"><span class="pre">select-active-regions</span></code> a <code class="docutils literal notranslate"><span class="pre">nil</span></code>, Emacs evita guardar regiones activas en la selección primaria por completo.</p>
|
||
<p>Para insertar la selección primaria en un búfer de Emacs, haga clic con <code class="docutils literal notranslate"><span class="pre">mouse-2</span></code> (<code class="docutils literal notranslate"><span class="pre">mouse-yank-primary</span></code>) donde quiera insertarla. Vea <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>. También puede usar el comando yank normal de Emacs (<code class="docutils literal notranslate"><span class="pre">C-y</span></code>) para insertar este texto si <code class="docutils literal notranslate"><span class="pre">select-enable-primary</span></code> está activado (vea <a class="reference internal" href="#id9"><span class="std std-ref">13.3.1 Utilizar el Portapapeles</span></a>).</p>
|
||
<p>Por defecto, Emacs mantiene la región activa incluso después de que se seleccione texto en otro programa; esto es contrario al comportamiento típico de X. Para hacer que Emacs desactive la región después de que otro programa coloque datos en la selección primaria, active el modo menor global <code class="docutils literal notranslate"><span class="pre">lost-selection-mode</span></code>.</p>
|
||
<p>MS-Windows no proporciona selección primaria, pero Emacs la emula dentro de una única sesión de Emacs almacenando internamente el texto seleccionado. Por lo tanto, todas las características y comandos relacionados con la selección primaria funcionan en Windows como lo hacen en X, para cortar y pegar dentro de la misma sesión, pero no entre sesiones de Emacs o con otras aplicaciones.</p>
|
||
</section>
|
||
<section id="seleccion-secundaria">
|
||
<span id="id11"></span><h3>13.3.3 Selección Secundaria<a class="headerlink" href="#seleccion-secundaria" title="Link to this heading"></a></h3>
|
||
<p>Además de la selección primaria, el Sistema X Window proporciona una segunda facilidad similar conocida como <em>selección secundaria</em>. Hoy en día, pocas aplicaciones X hacen uso de la selección secundaria, pero puede acceder a ella usando los siguientes comandos de Emacs:</p>
|
||
<p>Establezca la selección secundaria, con un extremo en el lugar donde presiona el botón, y el otro extremo en el lugar donde lo suelta (<code class="docutils literal notranslate"><span class="pre">mouse-set-secondary</span></code>). El texto seleccionado se resalta, usando la cara de selección secundaria, a medida que lo arrastra. La ventana se desplaza automáticamente si arrastra el ratón fuera de la parte superior o inferior de la ventana, igual que <code class="docutils literal notranslate"><span class="pre">mouse-set-region</span></code> (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>).</p>
|
||
<p>Este comando no altera el anillo de muertes.</p>
|
||
<p><kbd class="kbd docutils literal notranslate">Alt</kbd>-<strong>arrastrar</strong>-<code class="docutils literal notranslate"><span class="pre">ratón-1</span></code> (<code class="docutils literal notranslate"><span class="pre">M-</span></code>-<strong>arrastrar</strong>-<code class="docutils literal notranslate"><span class="pre">ratón-1</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Establece la selección secundaria, con un extremo en el lugar donde se pulsa el botón, y el otro extremo en el lugar donde se suelta (<code class="docutils literal notranslate"><span class="pre">mouse-set-secondary</span></code>). El texto seleccionado se resalta, usando la cara de selección secundaria, a medida que lo arrastra. La ventana se desplaza automáticamente si arrastra el ratón fuera de la parte superior o inferior de la ventana, igual que <code class="docutils literal notranslate"><span class="pre">mouse-set-region</span></code> (ver <a class="reference internal" href="12_LaMarca-y-LaRegion.html#id2"><span class="std std-ref">12.1 Fijar la Marca</span></a>).</p>
|
||
<p>Este comando no altera el anillo de muertes.</p>
|
||
</div></blockquote>
|
||
<p><kbd class="kbd docutils literal notranslate">Alt</kbd>-<code class="docutils literal notranslate"><span class="pre">ratón-1</span></code> (<code class="docutils literal notranslate"><span class="pre">M</span></code>-<code class="docutils literal notranslate"><span class="pre">ratón-1</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Establece un extremo para la selección secundaria (<code class="docutils literal notranslate"><span class="pre">mouse-start-secondary</span></code>); use <code class="docutils literal notranslate"><span class="pre">M-ratón-3</span></code> para establecer el otro extremo y completar la selección. Este comando cancela cualquier selección secundaria existente, cuando inicia una nueva.</p>
|
||
</div></blockquote>
|
||
<p><kbd class="kbd docutils literal notranslate">Alt</kbd>-<code class="docutils literal notranslate"><span class="pre">ratón-3</span></code> (<code class="docutils literal notranslate"><span class="pre">M</span></code>-<code class="docutils literal notranslate"><span class="pre">ratón-3</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Coloca la selección secundaria (<code class="docutils literal notranslate"><span class="pre">mouse-secondary-save-then-kill</span></code>), con un extremo en la posición en la que pulsó <code class="docutils literal notranslate"><span class="pre">M-ratón-3</span></code>, y el otro en la posición especificada previamente con <code class="docutils literal notranslate"><span class="pre">M-ratón-1</span></code>. Esto también pone el texto seleccionado en el anillo de muertes. Un segundo <code class="docutils literal notranslate"><span class="pre">M-ratón-3</span></code> en el mismo lugar mata el texto seleccionado por la selección secundaria que se acaba de hacer.</p>
|
||
</div></blockquote>
|
||
<p><kbd class="kbd docutils literal notranslate">Alt</kbd>-<code class="docutils literal notranslate"><span class="pre">ratón-2</span></code> (<code class="docutils literal notranslate"><span class="pre">M</span></code>-<code class="docutils literal notranslate"><span class="pre">ratón-2</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Inserta la selección secundaria donde has hecho clic, colocando el punto al final del texto arrancado (<code class="docutils literal notranslate"><span class="pre">mouse-yank-secondary</span></code>).</p>
|
||
</div></blockquote>
|
||
<p>El doble o triple clic de <code class="docutils literal notranslate"><span class="pre">M-ratón-1</span></code> opera sobre palabras y líneas, de forma similar a <code class="docutils literal notranslate"><span class="pre">M-ratón-1</span></code>.</p>
|
||
<p>Si <code class="docutils literal notranslate"><span class="pre">mouse-yank-at-point</span></code> es distinto de cero, <code class="docutils literal notranslate"><span class="pre">M-mouse-2</span></code> hace clic en el punto. Entonces no importa exactamente dónde haga clic, o incluso en cuál de las ventanas del marco haga clic. 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>. Esta opción de usuario también afecta a la búsqueda interactiva: si no es nula, al pulsar con el ratón en cualquier parte del marco se añadirá el texto a la cadena de búsqueda.</p>
|
||
</section>
|
||
</section>
|
||
<section id="acumular-texto">
|
||
<span id="id12"></span><h2>13.4 Acumular Texto<a class="headerlink" href="#acumular-texto" title="Link to this heading"></a></h2>
|
||
<p>Normalmente copiamos o movemos texto matándolo y tirando de él, pero hay otros métodos convenientes para copiar un bloque de texto en muchos lugares, o para copiar muchos bloques de texto dispersos en un solo lugar. Aquí describimos los comandos para acumular trozos de texto dispersos en un búfer o en un fichero.</p>
|
||
<p><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <code class="docutils literal notranslate"><span class="pre">append-to-buffer</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">append-to-buffer</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Añade una región al contenido de un búfer especificado.</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">preprend-to-buffer</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">preprend-to-buffer</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Antepone una región al contenido de un búfer especificado.</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">copy-to-buffer</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">copy-to-buffer</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Copia la región en un búfer especificado, borrando el contenido antiguo de ese búfer.</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">insert-buffer</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">insert-buffer</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Inserta el contenido de un búfer especificado en el búfer actual en un punto.</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">append-to-file</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">append-to-file</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Añade una región al contenido de un archivo especificado, al final.</p>
|
||
</div></blockquote>
|
||
<p>Para acumular texto en un búfer, utilice <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">append-to-buffer</span></code>. Esto lee un nombre de búfer y luego inserta una copia de la región en el búfer especificado. Si especifica un búfer inexistente, <code class="docutils literal notranslate"><span class="pre">append-to-buffer</span></code> crea el búfer. El texto se inserta en cualquier punto de ese búfer. Si ha estado utilizando el búfer para editar, el texto copiado se inserta en el centro del texto del búfer, comenzando donde se encuentre el punto en ese momento.</p>
|
||
<p>El punto de ese búfer queda al final del texto copiado, de modo que los usos sucesivos de anexar al búfer acumulan el texto en el búfer especificado en el mismo orden en que fueron copiados. Estrictamente hablando, <code class="docutils literal notranslate"><span class="pre">append-to-buffer</span></code> no siempre añade texto al que ya está en el búfer; sólo lo añade si el punto de ese búfer está al final. Sin embargo, si <code class="docutils literal notranslate"><span class="pre">append-to-buffer</span></code> es el único comando que usa para alterar un búfer, entonces el punto siempre está al final.</p>
|
||
<p><code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">prepend-to-buffer</span></code> es igual que <code class="docutils literal notranslate"><span class="pre">append-to-buffer</span></code> excepto en que el punto en el otro búfer se deja antes del texto copiado, de modo que los usos sucesivos de este comando añaden texto en orden inverso. <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">copy-to-buffer</span></code> es similar, excepto en que cualquier texto existente en el otro búfer se borra, por lo que el búfer queda conteniendo sólo el texto recién copiado en él.</p>
|
||
<p>El comando <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">i</kbd> (<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">insertar-buffer</span></code>) se puede usar para recuperar el texto acumulado en otro búfer. Este comando pide el nombre de un búfer e inserta una copia de todo el texto de ese búfer en el búfer actual en el punto, dejando el punto al principio del texto insertado. También añade la posición del final del texto insertado al anillo de marca, sin activar la marca. Para más información sobre los búferes, véase <a class="reference internal" href="20_UsarVariosBuferes.html#id1"><span class="std std-ref">20 Uso de Varios Búferes</span></a>.</p>
|
||
<p>En lugar de acumular texto en un búfer, puede añadir texto directamente a un archivo con <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">append-to-file</span></code>. Esto solicita un nombre de archivo y añade el texto de la región al final del archivo especificado. El archivo se modifica inmediatamente en el disco.</p>
|
||
<p>Debería usar <code class="docutils literal notranslate"><span class="pre">append-to-file</span></code> sólo con ficheros que no estén siendo visitados en Emacs. Usarlo en un fichero que está editando en Emacs cambiaría el fichero a espaldas de Emacs, lo que puede llevar a perder parte de su edición.</p>
|
||
<p>Otra forma de mover texto es almacenarlo en un registro. Ver <a class="reference internal" href="14_Registros.html#id1"><span class="std std-ref">14 Registros</span></a>.</p>
|
||
</section>
|
||
<section id="rectangulos">
|
||
<span id="id13"></span><h2>13.5 Rectángulos<a class="headerlink" href="#rectangulos" title="Link to this heading"></a></h2>
|
||
<p>Los comandos de <em>rectángulo</em> operan sobre áreas rectangulares del texto: todos los caracteres entre un cierto par de columnas, en un cierto rango de líneas. Emacs tiene comandos para matar y tirar de rectángulos, vaciarlos, rellenarlos con espacios en blanco o texto, o borrarlos. Los comandos de rectángulo son útiles con texto en formatos de varias columnas, y para cambiar el texto dentro o fuera de tales formatos.</p>
|
||
<p>Para especificar un rectángulo para un comando, ponga la marca en una esquina y apunte a la esquina opuesta. El rectángulo así especificado se denomina <em>región rectangular</em> (region-rectangle). Si el punto y la marca están en la misma columna, el rectángulo regional estará vacío. Si están en la misma línea, la región rectángular tiene una línea de altura.</p>
|
||
<p>La región rectangular se controla del mismo modo que la región. Pero recuerde que una combinación dada de valores de punto y marca puede interpretarse como una región o como un rectángulo, dependiendo del comando que los utilice.</p>
|
||
<p>Una región rectangular también puede marcarse con el ratón: haga clic y arrastre <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<code class="docutils literal notranslate"><span class="pre">ratón-1</span></code> (<code class="docutils literal notranslate"><span class="pre">C</span></code>-<code class="docutils literal notranslate"><span class="pre">ratón-1</span></code>) desde una esquina del rectángulo a la opuesta.</p>
|
||
<p><kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">r</kbd><kbd class="kbd docutils literal notranslate">k</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">r</span> <span class="pre">k</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Mata el texto del rectángulo-región, guardando su contenido como el último rectángulo matado (<code class="docutils literal notranslate"><span class="pre">kill-rectangle</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">r</kbd> <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">w</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">r</span> <span class="pre">M-w</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Guarda el texto del rectángulo-región como el último rectángulo matado (<code class="docutils literal notranslate"><span class="pre">copy-rectangle-as-kill</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">r</kbd><kbd class="kbd docutils literal notranslate">d</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">r</span> <span class="pre">d</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Borra el texto de la región-rectángulo (<code class="docutils literal notranslate"><span class="pre">delete-rectangle</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">r</kbd> <kbd class="kbd docutils literal notranslate">y</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">r</span> <span class="pre">y</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Tira del último rectángulo matado con su esquina superior izquierda en el punto (<code class="docutils literal notranslate"><span class="pre">yank-rectangle</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">r</kbd> <kbd class="kbd docutils literal notranslate">o</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">r</span> <span class="pre">o</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Inserta un espacio en blanco para rellenar el espacio del rectángulo-región (<code class="docutils literal notranslate"><span class="pre">open-rectangle</span></code>). Esto empuja el contenido anterior del rectángulo de región hacia la derecha.</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">r</kbd><kbd class="kbd docutils literal notranslate">N</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">r</span> <span class="pre">N</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Inserta números de línea a lo largo del borde izquierdo del rectángulo-región (<code class="docutils literal notranslate"><span class="pre">rectangle-number-lines</span></code>). Esto empuja el contenido anterior del rectángulo-región hacia la derecha.</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">r</kbd><kbd class="kbd docutils literal notranslate">c</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">r</span> <span class="pre">c</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Borra el rectángulo-región sustituyendo todo su contenido por espacios (<code class="docutils literal notranslate"><span class="pre">clear-rectangle</span></code>).</p>
|
||
</div></blockquote>
|
||
<p><kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <code class="docutils literal notranslate"><span class="pre">delete-whitespace-rectangle</span></code> (<code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">delete-whitespace-rectangle</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Elimina los espacios en blanco de cada una de las líneas del rectángulo especificado, empezando por la columna del borde izquierdo del rectángulo.</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">r</kbd> <kbd class="kbd docutils literal notranslate">t</kbd> <em>cadena</em> <kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">r</span> <span class="pre">t</span></code> <em>cadena</em> <code class="docutils literal notranslate"><span class="pre">RET</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Sustituye el contenido del rectángulo por una <em>cadena</em> en cada línea (<code class="docutils literal notranslate"><span class="pre">string-rectangle</span></code>).</p>
|
||
</div></blockquote>
|
||
<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">string-insert-rectangle</span></code> <kbd class="kbd docutils literal notranslate">RETURN</kbd> <em>cadena</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">string-insert-rectangle</span> <span class="pre">RET</span></code> <em>cadena</em> <code class="docutils literal notranslate"><span class="pre">RET</span></code>)</div>
|
||
</div>
|
||
<blockquote>
|
||
<div><p>Inserta una <em>cadena</em> en cada línea del rectángulo.</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">SPACE</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">SPC</span></code>)</p>
|
||
<blockquote>
|
||
<div><p>Activa el modo de marca de rectángulo (<code class="docutils literal notranslate"><span class="pre">rectangle-mark-mode</span></code>). Cuando este modo está activo, el rectángulo de la región se resalta y se puede encoger/agrandar, y los comandos estándar kill y yank operan sobre él.</p>
|
||
</div></blockquote>
|
||
<p>Las operaciones con rectángulos se dividen en dos clases: comandos para borrar o insertar rectángulos, y comandos para hacer rectángulos en blanco.</p>
|
||
<p>Hay dos formas de borrar el texto de un rectángulo: <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">r</span> <span class="pre">d</span></code> (<code class="docutils literal notranslate"><span class="pre">delete-rectangle</span></code>) para borrar el texto completamente, o <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">r</span> <span class="pre">k</span></code> (<code class="docutils literal notranslate"><span class="pre">kill-rectangle</span></code>) para eliminar el texto y guardarlo como el <em>último rectángulo eliminado</em>. En ambos casos, borrar la región rectangular (región-rectángulo) es como borrar el texto especificado en cada línea del rectángulo; si hay algún texto siguiente en la línea, se mueve hacia atrás para rellenar el hueco.</p>
|
||
<p>Matar un rectángulo no es matar en el sentido habitual; el rectángulo no se almacena en el anillo de muertes, sino en un lugar especial que sólo registra el rectángulo matado más reciente. Esto se debe a que «yankear» un rectángulo (tirar o jalar de un rectángulo) es tan diferente de «yankear» un texto lineal que hay que utilizar diferentes comandos de «yankear». El «yank-popping» no está definido para los rectángulos.</p>
|
||
<p><kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">r</kbd> <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">w</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">r</span> <span class="pre">M-w</span></code>, <code class="docutils literal notranslate"><span class="pre">copy-rectangle-as-kill</span></code>) es el equivalente de <code class="docutils literal notranslate"><span class="pre">M-w</span></code> para rectángulos: registra el rectángulo como el último rectángulo eliminado, sin borrar el texto del búfer.</p>
|
||
<p>Para borrar el último rectángulo eliminado, escriba <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">r</kbd><kbd class="kbd docutils literal notranslate">y</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">r</span> <span class="pre">y</span></code>, <code class="docutils literal notranslate"><span class="pre">yank-rectangle</span></code>). La primera línea del rectángulo se inserta en el punto, la segunda línea del rectángulo se inserta en la misma posición horizontal una línea verticalmente por debajo, y así sucesivamente. El número de líneas afectadas viene determinado por la altura del rectángulo guardado.</p>
|
||
<p>Por ejemplo, puede convertir dos listas de una columna en una lista de dos columnas matando una de las listas de una columna como un rectángulo y, a continuación, desplazándola al lado de la otra lista.</p>
|
||
<p>También puede copiar rectángulos dentro y fuera de registros con <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">r</kbd><kbd class="kbd docutils literal notranslate">r</kbd><kbd class="kbd docutils literal notranslate">r</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">r</span> <span class="pre">r</span> <span class="pre">r</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">r</kbd><kbd class="kbd docutils literal notranslate">i</kbd><kbd class="kbd docutils literal notranslate">r</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">r</span> <span class="pre">i</span> <span class="pre">r</span></code>). Consulte <a class="reference internal" href="14_Registros.html#id4"><span class="std std-ref">14.3 Guardar Rectángulos en Registros</span></a>.</p>
|
||
<p>Hay dos comandos que puede usar para hacer rectángulos en blanco: <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">r</kbd><kbd class="kbd docutils literal notranslate">c</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">r</span> <span class="pre">c</span></code>, <code class="docutils literal notranslate"><span class="pre">clear-rectangle</span></code>) borra el texto existente en el rectángulo-región, y <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">r</kbd><kbd class="kbd docutils literal notranslate">o</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">r</span> <span class="pre">o</span></code>, <code class="docutils literal notranslate"><span class="pre">open-rectangle</span></code>) inserta un rectángulo en blanco.</p>
|
||
<p><code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">delete-whitespace-rectangle</span></code> elimina los espacios en blanco horizontales a partir de una columna determinada. Esto se aplica a cada una de las líneas del rectángulo, y la columna viene especificada por el borde izquierdo del rectángulo. El borde derecho del rectángulo no afecta a este comando.</p>
|
||
<p>El comando <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">r</kbd><kbd class="kbd docutils literal notranslate">N</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">r</span> <span class="pre">N</span></code>, <code class="docutils literal notranslate"><span class="pre">rectangle-number-lines</span></code>) inserta números de línea a lo largo del borde izquierdo del rectángulo-región. Normalmente, la numeración comienza a partir de 1 (para la primera línea del rectángulo). Con un argumento prefijo, el comando pide un número a partir del cual empezar, y una cadena de formato con la que imprimir los números (ver <strong>Formato de Cadenas</strong> en el Manual de Referencia de Emacs Lisp).</p>
|
||
<p>El comando <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">r</kbd> <kbd class="kbd docutils literal notranslate">t</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">r</span> <span class="pre">t</span></code>, <code class="docutils literal notranslate"><span class="pre">string-rectangle</span></code>) reemplaza el contenido de una región-rectángulo con una cadena en cada línea. No es necesario que la anchura de la cadena sea la misma que la del rectángulo. Si la anchura de la cadena es menor, el texto después del rectángulo se desplaza a la izquierda; si la cadena es mayor que el rectángulo, el texto después del rectángulo se desplaza a la derecha.</p>
|
||
<p>El comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">string-insert-rectangle</span></code> es similar a <code class="docutils literal notranslate"><span class="pre">string-rectangle</span></code>, pero inserta la cadena en cada línea, desplazando el texto original a la derecha.</p>
|
||
<p>El comando <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">SPACE</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">SPC</span></code>, <code class="docutils literal notranslate"><span class="pre">rectangle-mark-mode</span></code>) alterna si se resalta la región-rectángulo o la región estándar (activando primero la región si es necesario). Cuando este modo está activado, los comandos que redimensionan la región (<code class="docutils literal notranslate"><span class="pre">C-f</span></code>, <code class="docutils literal notranslate"><span class="pre">C-n</span></code>, etc.) lo hacen de forma rectangular, y matar y desplazar operan sobre el rectángulo. Véase <a class="reference internal" href="#id1"><span class="std std-ref">13 Matar y Mover Texto</span></a>. El modo persiste sólo mientras la región está activa.</p>
|
||
<p>El rectángulo de la región sólo funciona cuando la marca está activa. En particular, cuando el modo Marca transitoria 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>), además de teclear <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">SPACE</kbd> deberá activar la marca.</p>
|
||
<p>A diferencia de la región estándar, la región-rectángulo puede tener sus esquinas extendidas más allá del final del búfer, o dentro de tramos de espacio en blanco en los que normalmente no puede entrar el punto, como en medio de un carácter <code class="docutils literal notranslate"><span class="pre">TAB</span></code>.</p>
|
||
<p>Cuando la región está activa (véase <a class="reference internal" href="12_LaMarca-y-LaRegion.html#id1"><span class="std std-ref">12 La marca y la región</span></a>) y en modo región rectangular (<code class="docutils literal notranslate"><span class="pre">rectangle-mark-mode</span></code>), <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-x</span></code> ejecuta el comando <code class="docutils literal notranslate"><span class="pre">rectangle-exchange-point-and-mark</span></code>, que realiza un ciclo entre las cuatro esquinas del rectángulo-región. Esto resulta útil si desea modificar las dimensiones de dicha región antes de invocar una operación sobre el texto marcado.</p>
|
||
</section>
|
||
<section id="enlaces-cua">
|
||
<h2>13.6 Enlaces CUA<a class="headerlink" href="#enlaces-cua" title="Link to this heading"></a></h2>
|
||
<p>El comando <code class="docutils literal notranslate"><span class="pre">M-x</span> <span class="pre">cua-mode</span></code> configura las combinaciones de teclas que son compatibles con el sistema de Acceso Común de Usuario (Common User Access, CUA) usado en muchas otras aplicaciones.</p>
|
||
<p>Cuando el modo CUA está activado, las teclas <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></code>), <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></code>), <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">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">z</kbd> (<code class="docutils literal notranslate"><span class="pre">C-z</span></code>) invocan comandos que cortan (<em>kill</em>), copian, pegan (<em>yank</em>) y deshacen (<em>undo</em>) respectivamente. Las teclas <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></code>) 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-c</span></code>) ejecutan cortar y copiar sólo si la región está activa. De lo contrario, siguen actuando como teclas de prefijo, de modo que los comandos estándar de Emacs 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">c</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-c</span></code>) siguen funcionando. Tenga en cuenta que esto significa que la variable mark-even-if-inactive no tiene efecto para <code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">y</span> <span class="pre">C-c</span></code> (vea <a class="reference internal" href="12_LaMarca-y-LaRegion.html#id6"><span class="std std-ref">12.3 Operar en la Región</span></a>).</p>
|
||
<p>Para introducir un comando Emacs 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">f</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-f</span></code>) mientras la marca está activa, use uno de los siguientes métodos: mantenga pulsada la tecla Mayúscula (<kbd class="kbd docutils literal notranslate">Shift</kbd>) junto con la tecla del prefijo, por ejemplo, <kbd class="kbd docutils literal notranslate">Shift</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">f</kbd> (<code class="docutils literal notranslate"><span class="pre">S-C-x</span> <span class="pre">C-f</span></code>), o teclee rápidamente la tecla del prefijo dos veces, por ejemplo, <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">f</kbd> (<code class="docutils literal notranslate"><span class="pre">C-x</span> <span class="pre">C-x</span> <span class="pre">C-f</span></code>).</p>
|
||
<p>Para desactivar la anulación de la vinculación estándar de Emacs por el modo CUA, manteniendo las otras características del modo CUA descritas a continuación, establezca la variable <code class="docutils literal notranslate"><span class="pre">cua-enable-cua-keys</span></code> a <code class="docutils literal notranslate"><span class="pre">nil</span></code>.</p>
|
||
<p>El modo CUA activa por defecto el modo Borrar-Selección (Delete-Selection mode) (véase <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>), de forma que el texto escrito sustituye a la región activa. Para utilizar CUA sin este comportamiento, establezca la variable <code class="docutils literal notranslate"><span class="pre">cua-delete-selection</span></code> en <code class="docutils literal notranslate"><span class="pre">nil</span></code>.</p>
|
||
<p>El modo CUA proporciona soporte mejorado para rectángulos con resaltado de rectángulo visible. Utilice <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">RETURN</kbd> (<code class="docutils literal notranslate"><span class="pre">C-RET</span></code>) para iniciar un rectángulo, extenderlo utilizando los comandos de movimiento, y cortarlo o copiarlo utilizando <code class="docutils literal notranslate"><span class="pre">C-x</span></code> o <code class="docutils literal notranslate"><span class="pre">C-c</span></code>. <code class="docutils literal notranslate"><span class="pre">RET</span></code> mueve el cursor a la siguiente esquina (en el sentido de las agujas del reloj) del rectángulo, para que pueda ampliarlo fácilmente en cualquier dirección. El texto normal que escriba se inserta a la izquierda o a la derecha de cada línea del rectángulo (en el mismo lado que el cursor).</p>
|
||
<p>Puede utilizar este soporte de rectángulo sin activar CUA llamando al comando <code class="docutils literal notranslate"><span class="pre">cua-rectangle-mark-mode</span></code>. También existe el comando estándar <code class="docutils literal notranslate"><span class="pre">rectangle-mark-mode</span></code>, véase <a class="reference internal" href="#id13"><span class="std std-ref">13.5 Rectángulos</span></a>.</p>
|
||
<p>Con CUA puede copiar fácilmente texto y rectángulos dentro y fuera de los registros proporcionando un prefijo numérico de un dígito a los comandos kill, copy y yank, por ejemplo, <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">1</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-1</span> <span class="pre">C-c</span></code>) copia la región en el registro <code class="docutils literal notranslate"><span class="pre">1</span></code>, y <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">2</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-2</span> <span class="pre">C-v</span></code>) yanks el contenido del registro <code class="docutils literal notranslate"><span class="pre">2</span></code>.</p>
|
||
<p>El modo CUA también dispone de una función de marca global que permite mover y copiar texto fácilmente entre búferes. Utilice <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">Shift</kbd>-<kbd class="kbd docutils literal notranslate">SPACE</kbd> (<code class="docutils literal notranslate"><span class="pre">C-S-SPC</span></code>) para activar o desactivar la marca global. Cuando dicha marca está activada, todo el texto que mate o copie se inserta automáticamente en ella, y el texto que escriba se inserta en esta (en la marca global) en lugar de en la posición actual.</p>
|
||
<p>Por ejemplo, para copiar palabras de varios búferes en una lista de palabras de un búfer determinado, establezca la marca global en el búfer de destino, luego navegue hasta cada una de las palabras que desee en la lista, márquela (por ejemplo, con <kbd class="kbd docutils literal notranslate">Shift</kbd>-<kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">f</kbd> (<code class="docutils literal notranslate"><span class="pre">S-M-f</span></code>)), cópiela en la lista con (<code class="docutils literal notranslate"><span class="pre">C-c</span></code>) o <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">w</kbd> (<code class="docutils literal notranslate"><span class="pre">M-w</span></code>), e inserte una nueva línea después de la palabra en la lista de destino pulsando <code class="docutils literal notranslate"><span class="pre">RET</span></code>.</p>
|
||
</section>
|
||
</section>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Pie de página">
|
||
<a href="12_LaMarca-y-LaRegion.html" class="btn btn-neutral float-left" title="12 La marca y la región" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Anterior</a>
|
||
<a href="14_Registros.html" class="btn btn-neutral float-right" title="14 Registros" accesskey="n" rel="next">Siguiente <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||
</div>
|
||
|
||
<hr/>
|
||
|
||
<div role="contentinfo">
|
||
<p>© Derechos de autor 2023, Tano.</p>
|
||
</div>
|
||
|
||
Compilado con <a href="https://www.sphinx-doc.org/">Sphinx</a> usando un
|
||
<a href="https://github.com/readthedocs/sphinx_rtd_theme">tema</a>
|
||
proporcionado por <a href="https://readthedocs.org">Read the Docs</a>.
|
||
|
||
|
||
</footer>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</div>
|
||
<script>
|
||
jQuery(function () {
|
||
SphinxRtdTheme.Navigation.enable(true);
|
||
});
|
||
</script>
|
||
|
||
</body>
|
||
</html> |