Sophie

Sophie

distrib > Mandriva > 10.0 > i586 > by-pkgid > 48e6004f7274ccc2095a5ab8f2460dd2 > files > 11

mandrake-doc-es-10.0-5.1.100mdk.noarch.rpm

<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>VI: el ancestro</title><meta name="generator" content="DocBook XSL Stylesheets V1.64.0"><link rel="home" href="index.html" title="Guía de Referencia"><link rel="up" href="text-editing.html" title="Capítulo 4. La edición de texto: Emacs y VI"><link rel="previous" href="ch04s01.html" title="Emacs"><link rel="next" href="ch04s03.html" title="Una última palabra..."></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">VI: el ancestro</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch04s01.html">Anterior</a> </td><th width="60%" align="center">Capítulo 4. La edición de texto: Emacs y VI</th><td width="20%" align="right"> <a accesskey="n" href="ch04s03.html">Siguiente</a></td></tr></table><hr></div><div class="sect1" lang="es"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2541373"></a>VI: el ancestro</h2></div></div><div></div></div><div class="abstract"><p class="title"><b>Resumen</b></p><p><a name="BId-text-editing-pa29"></a><a class="indexterm" name="BId-text-editing-it2"></a><span class="application">Vi</span>
     fue el primer editor de pantalla completa que existió. Es uno de
     los programas al que apuntan los detractores de <span class="application">UNIX</span>, pero
     también uno de los argumentos principales de sus defensores: si
     bien es complicado de aprender, también es una herramienta
     extremadamente potente una vez que uno se acostumbra a usarlo.
     Con unos pocos tecleos, un usuario de <span class="application">Vi</span> puede mover
     montañas y, aparte de <span class="application">Emacs</span>, pocos editores de texto
     pueden decir lo mismo.</p></div><p><a name="BId-text-editing-pa30"></a>La versión provista
   con <span class="application">Mandrakelinux</span> es de hecho, <span class="application">vim</span>, por <span class="foreignphrase"><i class="foreignphrase">VI
   iMproved</i></span> (VI Mejorado), pero lo llamaremos
   <span class="application">Vi</span> a lo largo de este capítulo.</p><div class="sect2" lang="es"><div class="titlepage"><div><div><h3 class="title"><a name="id2541484"></a>Modo de inserción,
    Modo comando, Modo ex...</h3></div></div><div></div></div><p><a name="BId-text-editing-pa31"></a>Primero, necesitamos iniciar
    <span class="application">Vi</span>, lo cual se hace exactamente como con <span class="application">Emacs</span>. Así
    que, volvamos a nuestros dos archivos e ingresemos:</p><a name="BId-text-editing-sc3"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">$ vi archivo1 archivo2</pre></td></tr></table><p><a name="BId-text-editing-pa32"></a>En este punto, Usted
    se encontrará frente a una ventana que se parece a la
    siguiente:</p><div class="figure"><a name="vi-1"></a><p class="title"><b>Figura 4.4. Situación inicial en VIM</b></p><div class="mediaobject" align="center"><img src="images/vi-1.png" align="middle" alt="Situación inicial en VIM"></div></div><p><a name="BId-text-editing-pa33"></a>Ahora Usted está en
     <a name="BId-text-editing-gt3" href="glossary.html#term-command-mode"><i class="glossterm">modo comando</i></a> frente al
     primer archivo abierto. En este modo, no puede insertar texto en
     un archivo. Para hacer esto, debe pasar a <a name="BId-text-editing-gt4" href="glossary.html#term-insert-mode"><i class="glossterm">modo
     inserción</i></a>.</p><p><a name="BIdNEW-text-editing-pa85"></a>Aquí tiene algunos
    atajos para insertar texto:</p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-text-editing-pa34"></a>
      <span><b class="keycap">a</b></span> e <span><b class="keycap">i</b></span>: para insertar texto
      antes y después del cursor, respectivamente (<span><b class="keycap">A</b></span>
      e <span><b class="keycap">I</b></span> insertan texto al final y al principio de
      la línea corriente);</p></li><li><p><a name="BId-text-editing-pa35"></a>
      <span><b class="keycap">o</b></span> y <span><b class="keycap">O</b></span>: para insertar texto
      debajo y por encima de la línea corriente.</p></li></ul></div><p><a name="BId-text-editing-pa36"></a>En modo de inserción,
    Usted verá aparecer la cadena <tt class="literal">--INSERT--</tt> en la
    base de la pantalla (de esta forma, Usted sabrá en que modo se
    encuentra). Este es el único modo que le permitirá insertar texto.
    Para volver al modo comando, presione la tecla
    <span><b class="keycap">Esc</b></span>.</p><p><a name="BId-text-editing-pa37"></a>En modo de inserción,
    puede usar las teclas <span><b class="keycap">Retroceso</b></span> y
    <span><b class="keycap">Supr</b></span> para borrar texto a medida que avanza. Para
    desplazarse por el texto, tanto en modo comando como en modo
    inserción, utilice las teclas de las flechas. También hay otras
    combinaciones de teclas en modo comando, que veremos más
    adelante.</p><p><a name="BId-text-editing-pa38"></a>Usted accede al modo
    <span><b class="command">ex</b></span> presionando la tecla <span><b class="keycap">:</b></span> en modo comando.
    En la base de la pantalla aparecerá <tt class="literal">:</tt>, y allí
    se posicionará el cursor. <span class="application">Vi</span> considerará todo lo que Usted
    ingrese subsecuentemente, hasta la tecla <span><b class="keycap">Intro</b></span>,
    como un comando <span><b class="command">ex</b></span>. Si borra el comando y los
    <tt class="literal">:</tt> que ingresó, volverá al modo comando y el
    cursor retornará a su posición original en el texto.</p><p><a name="BId-text-editing-pa39"></a>Para grabar los cambios hechos a un
    archivo, se ingresa la secuencia <b class="userinput"><tt>:w</tt></b> en modo
    comando. Si desea grabar el contenido del
    buffer en otro archivo, ingrese
    <b class="userinput"><tt>:w &lt;nombre_de_archivo&gt;</tt></b>
   </p></div><div class="sect2" lang="es"><div class="titlepage"><div><div><h3 class="title"><a name="id2541850"></a>Manipulación de los buffers</h3></div></div><div></div></div><p><a name="BId-text-editing-pa40"></a>Para moverse, en el
    mismo buffer, por entre los archivos cuyos nombres se pasaron en
    la línea de comandos, teclee <b class="userinput"><tt>:next</tt></b> para
    moverse al archivo siguiente y <b class="userinput"><tt>:prev</tt></b> para
    moverse al archivo previo. Puede usar <b class="userinput"><tt>:e
    &lt;nombre_de_archivo&gt;</tt></b> también, lo cual le permite
    tanto cambiar al archivo deseado, si es que ya está abierto, como
    también abrir otro archivo. También puede usar el
    completado.</p><p><a name="BId-text-editing-pa41"></a>Puede tener varios
    buffers visibles en la pantalla a
    la vez, como con <span class="application">Emacs</span>. Para esto, use el comando
    <b class="userinput"><tt>:split</tt></b>.</p><p><a name="BId-text-editing-pa42"></a>Para cambiar de buffer, ingrese
    <span><b class="keycap">Ctrl</b></span>-<span><b class="keycap">w</b></span>
    <span><b class="keycap">j</b></span> para ir al buffer de abajo o
    <span><b class="keycap">Ctrl</b></span>-<span><b class="keycap">w</b></span>
    <span><b class="keycap">k</b></span> para ir al de arriba. También puede usar las
    teclas de las flechas para arriba y para abajo, en lugar de
    <span><b class="keycap">j</b></span> o <span><b class="keycap">k</b></span>. El comando
    <b class="userinput"><tt>:close</tt></b> oculta un buffer, el comando
    <b class="userinput"><tt>:q</tt></b> lo cierra.</p><p><a name="BId-text-editing-pa43"></a>Debe tener presente
    que si intenta ocultar o cerrar un buffer sin guardar los cambios,
    el comando no se llevará a cabo y <span class="application">Vi</span> mostrará este
    mensaje:</p><p><a name="BId-text-editing-pa44"></a>
    <tt class="computeroutput">
     No write since last change (use ! to override)
    </tt>
   </p><p><a name="BId-text-editing-pa45"></a>(<span class="foreignphrase"><i class="foreignphrase">no se
     escribió desde el ultimo cambio (use <span><b class="keycap">!</b></span> para
     forzar el comando)</i></span>) En este caso, haga lo que se
     le dice e ingrese <b class="userinput"><tt>:q!</tt></b> o
     <b class="userinput"><tt>:close!</tt></b>.</p></div><div class="sect2" lang="es"><div class="titlepage"><div><div><h3 class="title"><a name="id2542069"></a>Edición de texto y comandos de
    desplazamiento</h3></div></div><div></div></div><p><a name="BId-text-editing-pa46"></a>Además de las teclas
    <span><b class="keycap">Retroceso</b></span> y <span><b class="keycap">Supr</b></span> en modo de
    edición, <span class="application">Vi</span> tiene muchos otros comandos para borrar,
    copiar, pegar, y reemplazar texto – en modo comando. Aquí,
    veremos algunos. Todos los comandos que se muestran aquí están, de
    hecho, separados en dos partes: la acción a realizar y su efecto.
    La acción puede ser:</p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-text-editing-pa47"></a>
      <span><b class="keycap">c</b></span>: para cambiar
      (<span class="foreignphrase"><i class="foreignphrase">Change</i></span>) o reemplazar; el editor
      borra el texto que se pide y vuelve al modo de inserción después
      de este comando;</p></li><li><p><a name="BId-text-editing-pa48"></a>
      <span><b class="keycap">d</b></span>: para borrar
      (<span class="foreignphrase"><i class="foreignphrase">Delete</i></span>);</p></li><li><p><a name="BId-text-editing-pa49"></a>
      <span><b class="keycap">y</b></span>: para copiar
      (<span class="foreignphrase"><i class="foreignphrase">Yank</i></span>). Lo veremos en la sección
      siguiente.</p></li><li><p><a name="BId-text-editing-pa50"></a>
      <span><b class="keycap">.</b></span>: repite la última acción.</p></li></ul></div><p><a name="BId-text-editing-pa51"></a>El efecto define al
    grupo de caracteres sobre los cuales actúa el comando.</p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-text-editing-pa52"></a>
      <span><b class="keycap">h</b></span>, <span><b class="keycap">j</b></span>, <span><b class="keycap">k</b></span>,
      <span><b class="keycap">l</b></span>: un caracter a la izquierda, abajo, arriba, a
      la derecha<sup>[<a name="id2542259" href="#ftn.id2542259">13</a>]</sup> respectivamente;</p></li><li><p><a name="BId-text-editing-pa54"></a>
      <span><b class="keycap">e</b></span>, <span><b class="keycap">b</b></span>, <span><b class="keycap">w</b></span>:
      hasta el final (respecto al comienzo) de la palabra corriente;
      del comienzo de la palabra siguiente;</p></li><li><p><a name="BId-text-editing-pa55"></a>
      <span><b class="keycap">^</b></span>, <span><b class="keycap">0</b></span>, <span><b class="keycap">$</b></span>:
      hasta el primer caracter no blanco de la línea corriente, hasta
      el comienzo de la línea corriente, hasta el final de la línea
      corriente;</p></li><li><p><a name="BId-text-editing-pa56"></a>
      <span><b class="keycap">f</b></span> <span><b class="keycap">&lt;x&gt;</b></span>: hasta la próxima
      ocurrencia del caracter <tt class="literal">&lt;x&gt;</tt>; por
      ejemplo, <span><b class="keycap">f</b></span> <span><b class="keycap">e</b></span> desplaza el
      cursor hasta la próxima ocurrencia del caracter
      <tt class="literal">e</tt>;</p></li><li><p><a name="BId-text-editing-pa57"></a>
      <b class="userinput"><tt>/&lt;cadena&gt;</tt></b>,
      <b class="userinput"><tt>?&lt;cadena&gt;</tt></b>: hasta la próxima
      ocurrencia de la cadena o expresión regular
      <b class="userinput"><tt>&lt;cadena&gt;</tt></b>, y lo mismo yendo hacia
      atrás en el archivo; por ejemplo, <b class="userinput"><tt>/pepe</tt></b>
      mueve el cursor hasta la próxima ocurrencia de la palabra
      <tt class="literal">pepe</tt>;</p></li><li><p><a name="BId-text-editing-pa58"></a>
      <span><b class="keycap">{</b></span>, <span><b class="keycap">}</b></span>: hasta el
      comienzo, hasta el final, del párrafo corriente;</p></li><li><p><a name="BId-text-editing-pa59"></a>
      <span><b class="keycap">G</b></span>, <span><b class="keycap">H</b></span>: hasta el final del
      archivo, hasta el comienzo de la pantalla.</p></li></ul></div><p><a name="BId-text-editing-pa60"></a>Cada uno de estos caracteres de efecto
    o comandos de movimiento puede estar precedido por un número de
    repetición. <span><b class="keycap">G</b></span> referencia al número de línea en el
    archivo. A partir de esto, Usted puede hacer toda clase de
    combinaciones.</p><p><a name="BId-text-editing-pa61"></a>Algunos ejemplos:</p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-text-editing-pa62"></a>
      <b class="userinput"><tt>6b</tt></b>: se mueve 6 palabras hacia
      atrás;</p></li><li><p><a name="BId-text-editing-pa63"></a>
      <b class="userinput"><tt>c8fk</tt></b>: borrar todo el texto hasta la
      octava ocurrencia del caracter <tt class="literal">k</tt> y luego
      pasar a modo de inserción;</p></li><li><p><a name="BId-text-editing-pa64"></a>
      <b class="userinput"><tt>91G</tt></b>: ir a la línea 91 del archivo;</p></li><li><p><a name="BId-text-editing-pa65"></a>
      <b class="userinput"><tt>d3$</tt></b>: borra hasta el final de la línea
      corriente más las dos líneas siguientes.</p></li></ul></div><p><a name="BIdNEW-text-editing-pa86"></a>Si bien muchos de
    estos comandos no son muy intuitivos, pero como siempre, el mejor
    método es practicarlos. Aunque puede ver que la expresión
    “<span class="quote">mover montañas con unas pocas teclas</span>” no es tan
    exagerada.</p></div><div class="sect2" lang="es"><div class="titlepage"><div><div><h3 class="title"><a name="id2542663"></a>Cortar, copiar, pegar</h3></div></div><div></div></div><p><a name="BId-text-editing-pa66"></a><span class="application">Vi</span> tiene un
    comando para copiar texto que ya hemos visto: el comando
    <span><b class="keycap">y</b></span>. Para cortar texto, simplemente use el comando
    <span><b class="keycap">d</b></span>. Hay 27 memorias para almacenar texto: una
    memoria anónima y 26 memorias que llevan el nombre de las 26
    letras minúsculas del alfabeto inglés.</p><p><a name="BId-text-editing-pa67"></a>Para usar la memoria
    anónima Usted ingresa el comando “<span class="quote">tal cual</span>”. Así, el
    comando <b class="userinput"><tt>y12w</tt></b> copia a la memoria anónima las
    12 palabras que están después del cursor<sup>[<a name="id2542731" href="#ftn.id2542731">14</a>]</sup>. Si Usted
    quiere cortar este área, use <b class="userinput"><tt>d12w</tt></b>.</p><p><a name="BId-text-editing-pa69"></a>Para usar una de las 26 memorias
    nombradas, ingrese la secuencia <b class="userinput"><tt>"&lt;x&gt;</tt></b>
    antes del comando, donde <b class="userinput"><tt>&lt;x&gt;</tt></b> da el
    nombre de la memoria. Entonces, para copiar las mismas 12 palabras
    en la memoria <span><b class="keycap">k</b></span>, Usted puede ingresar
    <b class="userinput"><tt>"ky12w</tt></b>, y <b class="userinput"><tt>"kd12w</tt></b>
    para cortarlas.</p><p><a name="BId-text-editing-pa70"></a>Para pegar el contenido de la memoria
    anónima, Usted usa los comandos <span><b class="keycap">p</b></span> o
    <span><b class="keycap">P</b></span> (por <span class="foreignphrase"><i class="foreignphrase">Paste</i></span>,
    <span class="foreignphrase"><i class="foreignphrase">Pegar</i></span>), para insertar texto después
    o antes del cursor, respectivamente. Para pegar el contenido de
    una memoria nombrada, use <b class="userinput"><tt>"&lt;x&gt;p</tt></b> o
    <b class="userinput"><tt>"&lt;x&gt;P</tt></b> de la misma forma (por ejemplo,
    <b class="userinput"><tt>"dp</tt></b> pegará el contenido de la memoria
    <b class="userinput"><tt>d</tt></b> después del cursor)</p><p><a name="BId-text-editing-pa71"></a>Veamos un
    ejemplo:</p><div class="figure"><a name="vi-2"></a><p class="title"><b>Figura 4.5. VIM, antes de copiar el
     bloque de texto</b></p><div class="mediaobject" align="center"><img src="images/vi-2.png" align="middle" alt="VIM, antes de copiar el bloque de texto"></div></div><p><a name="BId-text-editing-pa72"></a>Para efectuar esta acción,
    nosotros:</p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-text-editing-pa73"></a>volveremos a copiar las primeras 6
      palabras de la oración en la memoria <span><b class="keycap">r</b></span> (por
      ejemplo): <b class="userinput"><tt>"ry6w</tt></b>
      <sup>[<a name="id2542939" href="#ftn.id2542939">15</a>]</sup>;</p></li><li><p><a name="BId-text-editing-pa75"></a>pasaremos al buffer
      <tt class="filename">archivo2</tt>, que está ubicado abajo:
      <span><b class="keycap">Ctrl</b></span>-<span><b class="keycap">w</b></span>
      <span><b class="keycap">j</b></span>;</p></li><li><p><a name="BId-text-editing-pa76"></a>pegaremos el contenido de la
      memoria <span><b class="keycap">r</b></span> antes del cursor:
      <b class="userinput"><tt>"rp</tt></b>.</p></li></ul></div><p><a name="BId-text-editing-pa77"></a>Obtenemos el resultado esperado,
     como se muestra en <a href="ch04s02.html#vi-3" title="Figura 4.6. VIM, después de copiar un
     bloque de texto">Figura 4.6, “VIM, después de copiar un
     bloque de texto”</a>.</p><div class="figure"><a name="vi-3"></a><p class="title"><b>Figura 4.6. VIM, después de copiar un
     bloque de texto</b></p><div class="mediaobject" align="center"><img src="images/vi-3.png" align="middle" alt="VIM, después de copiar un bloque de texto"></div></div><p><a name="BId-text-editing-pa78"></a>La búsqueda de texto es muy
    simple: en modo comando, Usted simplemente ingresa
    <span><b class="keycap">/</b></span> seguida de la cadena a buscar, y luego presiona
    la tecla <span><b class="keycap">Intro</b></span>. Por ejemplo,
    <b class="userinput"><tt>/fiesta</tt></b> buscará la cadena
    <tt class="literal">fiesta</tt> desde la posición corriente del cursor.
    Presionar <span><b class="keycap">n</b></span> lo lleva a la próxima ocurrencia, y
    si llega al final del archivo, la búsqueda comenzará nuevamente
    por el principio. Para iniciar una búsqueda hacia atrás, use
    <span><b class="keycap">?</b></span> en vez de <span><b class="keycap">/</b></span>.</p></div><div class="sect2" lang="es"><div class="titlepage"><div><div><h3 class="title"><a name="id2543148"></a>Salir de VI</h3></div></div><div></div></div><p><a name="BId-text-editing-pa79"></a>El comando para
    salir, es <b class="userinput"><tt>:q</tt></b> (de hecho, este comando cierra
    el buffer activo, como hemos visto, pero si es el único buffer
    presente, saldrá de <span class="application">Vi</span>). Hay un atajo: la mayoría de las
    veces, Usted edita un archivo solo. Entonces, para salir
    utilizará:</p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-text-editing-pa80"></a>
      <b class="userinput"><tt>:wq</tt></b> para guardar los cambios y salir (una
      solución más rápida es <b class="userinput"><tt>ZZ</tt></b>), o</p></li><li><p><a name="BId-text-editing-pa81"></a>
      <b class="userinput"><tt>:q!</tt></b> para salir sin grabar.</p></li></ul></div><p><a name="BId-text-editing-pa82"></a>Habrá notado que si tiene varios
    buffers, <b class="userinput"><tt>:wq</tt></b>
    escribirá el buffer activo y luego
    lo cerrará.</p></div><div class="footnotes"><br><hr width="100" align="left"><div class="footnote"><p><sup>[<a name="ftn.id2542259" href="#id2542259">13</a>] </sup>Un atajo
      para <span><b class="keycap">d</b></span> <span><b class="keycap">l</b></span> (borrar un caracter
      hacia adelante) es <span><b class="keycap">x</b></span>; un atajo para
      <span><b class="keycap">d</b></span> <span><b class="keycap">h</b></span> es <span><b class="keycap">X</b></span>;
      <span><b class="keycap">d</b></span> <span><b class="keycap">d</b></span> borra la línea
      corriente.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2542731" href="#id2542731">14</a>] </sup>Pero sólo si el cursor está posicionado
    ¡al comienzo de la primer palabra!</p></div><div class="footnote"><p><sup>[<a name="ftn.id2542939" href="#id2542939">15</a>] </sup>
	<b class="userinput"><tt>y6w</tt></b> significa literalmente: “<span class="quote">
	 <span class="foreignphrase"><i class="foreignphrase">Yank 6 words</i></span>
	 </span>”.</p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch04s01.html">Anterior</a> </td><td width="20%" align="center"><a accesskey="u" href="text-editing.html">Subir</a></td><td width="40%" align="right"> <a accesskey="n" href="ch04s03.html">Siguiente</a></td></tr><tr><td width="40%" align="left" valign="top">Emacs </td><td width="20%" align="center"><a accesskey="h" href="index.html">Inicio</a></td><td width="40%" align="right" valign="top"> Una última palabra...</td></tr></table></div></body></html>